Operator catalog

August 11, 2026 ยท View on GitHub

This catalog projects the current Rust API, CUDA providers, and recorded evidence. Source decides what exists. Evidence decides what passed. The roadmap does not change either state.

State model

StateMeaning
currentThe product source implements the stated contract.
experimentalSource exists, but promotion gates remain open.
requalificationA source, contract, provider, or ownership change occurred after the last record.
plannedThe roadmap admits the work. No public module or provider exists.

Graph, performance, engine, and serving evidence remain separate from these states.

Framework lifecycle

Every admitted operator converges on one lifecycle:

Spec -> Provider -> Algorithm -> Plan -> Operands -> CommandScope -> Completion

The source still uses *Args for some invocation types. Framework migration renames them to *Operands without forwarding aliases. Target names in this document do not claim that migration is complete.

Family summary

FamilyStateAdmitted or next contract
attentionCurrentSingle decode, paged decode, ragged prefill, and paged prefill
gemmCurrent and experimentalcuBLASLt BF16 dense is current. Native SM90a M=1 GEMV is experimental.
kv_cacheRequalificationFused RoPE plus paged append with exclusive target pages
normalizationRequalificationF32, FP16, and BF16 RMSNorm
positionRequalificationBF16 D128 NeoX RoPE with explicit I32 positions
activationPlannedSwiGLU or another engine-observed gated activation
samplingPlannedLogits processing, Top-K, Top-P, Min-P, logprobs, and deterministic RNG
speculationPlannedDraft verification and token compaction
quantizationPlannedScale, packing, conversion, and dequantization
moePlannedRouting, permutation, grouped-GEMM inputs, and combine
communicationPlannedMeasured tensor-parallel or expert-parallel collectives

The project does not create an empty namespace for a planned family.

Namespace migration

Implemented domainCurrent public areaFinal family
Decode and prefillattentionattention
Fused paged appendattention::paged_append plus CUDA ropekv_cache::paged_append
Dense BF16 GEMMgemmgemm, then gemm::dense when another GEMM contract exists
RMSNormrms_normnormalization::rms_norm
Standard RoPEropeposition::rope

The migration moves source directly. It adds no compatibility module.

Current and experimental operators

OperatorContract and algorithmSource stateEvidence boundary
RMSNormContiguous F32, FP16, and BF16. Scalar and packed algorithms.Current source under rms_norm; family migration pendingCurrent R1 H20 correctness, lifecycle, and sanitizer for the permanent runner; no standalone Graph.
Dense BF16 GEMM, vendorContiguous D=A*W^T, BF16 storage, F32 accumulation, explicit CublasLtHeuristicCurrentCurrent R1 H20 correctness, RMSNorm-to-GEMM Graph, and sanitizer.
Dense BF16 GEMM, nativeSame Spec, explicit OxideSm90SimtGemvM1N16K64, zero workspaceExperimentalCurrent R1 H20 correctness, five Graph shapes, and sanitizer. SASS, matched performance, and engine gates remain open.
Single decodeBF16 NHD D128, direct MHA, MQA, and GQACurrentCurrent R1 H20 correctness, lifecycle, and sanitizer. No Graph or current performance claim.
Single decode split-KExplicit partitions and caller-owned F32 workspaceCurrentCurrent R1 runner covers declared MQA and GQA shapes plus sanitizer. MHA, Graph, and current performance remain open.
Paged batch decodeBF16 NHD or HND D128, page size 16. Direct MHA and eight-warp MQA or GQA.CurrentCurrent R1 H20 correctness, rejection Graph, simulated-engine boundary, and sanitizer. Valid-output Graph and performance remain open.
Ragged causal prefillBF16 NHD D128, bottom-right causal mask. Direct, eight-warp, sixteen-warp, and tiled GQA4.CurrentCurrent R1 H20 correctness, tiled GQA4 Graph, and sanitizer for declared runner cases.
Paged causal prefillBF16 NHD D128, page size 16. Caller selects direct, eight-warp, or sixteen-warp.CurrentCurrent R1 H20 correctness, valid-output and rejection Graph cases, and sanitizer for declared runner cases.
Standard RoPEBF16 NHD D128, NeoX split-half, explicit I32 positionsCurrent source under rope; family migration pendingCurrent R1 H20 correctness and sanitizer; no standalone RoPE Graph.
Fused RoPE plus paged appendBF16 NHD D128, page size 16, one through 64 tokens, exclusive target pagesCurrentCurrent R1 H20 correctness, six-token valid-output Graph, rejection Graph, and sanitizer.

Attention plan policy

Plan creation fixes one algorithm.

OperatorCurrent selectionCurrent Graph boundary
Paged decodeMHA selects direct. MQA and GQA select eight-warp token parallelism.Current rejection-only invalid-page Graph; no valid-output Graph
Ragged prefillAverage KV length below 64 selects direct. Long MQA selects sixteen warps. Other long cases select eight warps. Long GQA4 can select tiled split-eight.Current tiled long-GQA4 valid-output Graph
Paged prefillCaller selects direct, eight-warp, or sixteen-warp. Contract checks reject unsupported combinations.Current direct GQA4 valid-output Graph and invalid-page rejection Graph

Ragged selection uses batch-average KV length. It has no request grouping or persistent tuning database. Enqueue does not change the chosen algorithm.

Dense GEMM providers

Both providers use one Bf16DenseGemmSpec, plan type, operands type, command path, completion, and Graph path.

ProviderAlgorithmStateRole
CublasLtCublasLtHeuristicCurrentGeneral vendor BF16 dense baseline
OxideOxideSm90SimtGemvM1N16K64ExperimentalNative cuda-oxide M=1 algorithm for H20 sm_90a

GemmPlanner accepts explicit provider selection. Unsupported native shapes return a planning error. Enqueue does not switch to cuBLASLt.

The native algorithm admits this exact contract:

  • M=1
  • N % 16 = 0
  • K % 64 = 0
  • contiguous row-major BF16 D=A*W^T
  • no post-operation
  • four-byte alignment
  • zero workspace
  • H20 with an sm_90a artifact

One untimed Qwen2.5-1.5B census recorded 1,184 matching calls across five logical shapes. They represent 87.574% of calls and 16.708% of FLOPs in that single-request workload. This census is workload evidence, not performance evidence.

The experimental contract defines both baselines, promotion gates, and stop conditions.

Workspace ownership

Each plan declares exact workspace bytes and alignment. The caller allocates and binds that workspace through operands. A provider cannot allocate hidden workspace during enqueue.

Split-K attention owns caller-visible F32 partial state. Token-parallel paged attention uses block-local state and needs no caller workspace. The native M=1 GEMV plan declares zero workspace.

Page-table ownership

Paged attention and paged append receive page tables as operands. The engine or KV pager owns allocation, sharing, copy-on-write, eviction, and remapping.

Paged attention accepts shared read-only physical pages. Paged append requires reference count one for every target page. The caller keeps the validated page table and reference-count snapshot stable through completion.

The append operator does not allocate pages, copy shared tails, or remap requests.

Dynamic metadata

Paged decode, paged prefill, and fused append validate device metadata on the CUDA stream. A semantic rejection returns a typed completion error, preserves outputs, and returns checked bindings. It does not poison the queue or Graph.

Architecture support

ArchitectureStateAdmitted boundary
sm_90aCurrent first targetH20-specific native artifacts and provider gates
sm_100aPlannedSeparate Blackwell algorithms and evidence
sm_120PlannedSeparate consumer Blackwell algorithms and evidence

No architecture target inherits qualification from another target. TMA, WGMMA, and tcgen05 matrix operations require named algorithms and independent evidence.

Engine interop

The source accepts leased external regions and an engine-owned CUDA stream for direct single decode and NHD or HND paged decode. A simulated-engine H20 gate covers bounded in-flight work, typed rejection, stream order, and lease retention.

Historical Mistral.rs records show one Qwen decode path, provider hits, matching selected token strings, and no adapter-issued device copy. Those source pairs use the former project name. They do not qualify renamed source, general model coverage, production recovery, or performance.

Planned contracts

FamilyAdmission inputFirst required proof
AttentionMeasured engine shape and mask contractHost reference and one named CUDA algorithm
KV cachePager ownership protocolCopy-on-write and metadata-lifetime proof before device code
GEMMWorkload census and both baselinesOne exact dense, grouped, or quantized contract
NormalizationModel call site absent from current RMSNormNumerical contract and independent reference
PositionModel layout or dimension demandPosition semantics and reference vectors
ActivationMeasured unfused engine callStandalone reference before any fusion experiment
SamplingExact distribution and RNG state contractDeterministic replay and statistical test plan
SpeculationEngine draft/target state machineAccepted-token and RNG commit semantics
QuantizationModel format and quality budgetScale ownership, packing format, and error bound
MoEEngine routing traceStable routing, permutation, and combine contract
CommunicationMeasured distributed workloadCollective ordering, failure, topology, and baseline contract

Admission rule

Every new contract records its call site, tensors, numerical limit, provider, algorithm, hardware, metric, and stop condition. Unsupported combinations return errors. A planned row does not authorize an empty API or source module.