Capability reference

Every operation in the catalog, against every backend: which element types it accepts, which memory layouts, which ranks, and whether it runs a dedicated kernel or is composed from others.

What a row here does and does not mean

A row is a capability declaration, not a test result. It says what this build of Incin would run if the device were present — the registry is queried from the same declaration that generates this page, and every advertised operation must also satisfy the compile-time Execute<O> contract.

It is not evidence that the kernel is correct. The runtime suites exercise representative and boundary behaviour; they do not execute every dtype, layout, rank and training boundary shown below. Closing that gap is tracked as open work rather than claimed as done — see issue #83, a CPU-oracle conformance harness for advertised capabilities.

The distinction is why this page exists. A support matrix that cannot tell you which half you are reading is the kind of claim nobody checks.

Declared operations173
CPU suite1725 passed · 0 failed
CUDA hardware suite90 passed
Device testedGTX 1650 SUPER · sm_75
Feature powerset800 combos clean
Per-operation conformanceopen · #83
Element types one step per element type, 1 to 9 of nine. Every bar on the page is drawn against all nine, so a longer or greener bar is always more support — on any row, for any backend.
composed — this backend runs the operation by combining other operations it supports, rather than with a kernel written for it. It executes and is correct; it costs more. the most any backend reaches for this operation, marked only where some backend reaches further than the one shown — not advertised on this backend

Select a row for the element types, layouts, rank and training boundary each backend advertises, the public entry point, and a worked example.

Rule categories

Eight rules per backend are registered against a category rather than a named operation. They are listed separately because mapping them onto member operations would invent a claim the generated document does not make.

BackendCategoryElement types LayoutsRankTrainingImpl

Reviewed public surface

Every public item, per crate, from the checked-in baselines in docs/public-api/. CI diffs these on a pinned nightly, so an unintended addition fails the build rather than shipping.

Reading a row

Element types are the dtypes the rule covers. A dtype absent from every rule for an operation is refused by the registry — which is what lets a planner ask before it allocates, rather than discovering it from a trait method that errors at run time.

Layouts are LayoutClass values. contiguous is dense row-major; strided means the kernel handles a non-dense view without a copy. The gap between CPU and CUDA here is real, and a kernel that exists while its row says contiguous is unreachable through the public API.

Rank is the tensor rank the rule accepts; any is an unbounded rule. Training says whether the rule also covers the backward pass — a rule marked no still runs under inference.

Generated by tools/build-api-site-data.py from docs/capabilities.md, which is itself generated from the registrations in crates/incin-backends/src/capability/tables.rs. Nothing on this page is maintained by hand.