Skip to main content

register_default_fused_kernels

Function register_default_fused_kernels 

Source
pub fn register_default_fused_kernels(r: &mut FusedKernelRegistry)
Expand description

Phase 7.6 step 6 — register the always-built fused-op kernels into the crate::fused::FusedKernelRegistry. Called by crate::fused::default_kernel_registry; kept here so the crate-private CPU dispatch wrappers stay co-located with their registration.

Today’s coverage. Three audited: true FKC contracts are IMPORTED at the top (contract-sourced, replacing the deleted hand-written register_fused! entries); the attention family + deferred NF4 stay hand-written:

  • linear-quant (register_cpu_linear_quant_fused_from_contract) — 13 impls: FUSED_LINEAR (4) + QMATMUL (1) + INPLACE_AFFINE (4) + FUSED_SOFTMAX_CROSS_ENTROPY (4). The 5th section NF4_MATMUL is registrable: false (AFFINE_BLOCK consumer-ahead) → stays hand-written.
  • norm-softmax (register_cpu_norm_softmax_fused_from_contract) — 32 impls: SOFTMAX_LAST_DIM / RMS_NORM_LAST_DIM / LAYER_NORM_LAST_DIM (+ their _BACKWARD) + REDUCE_MAX_TO_BACKWARD + POWI_BACKWARD (8 sections × 4 dtypes).
  • conv-rope (register_cpu_conv_rope_fused_from_contract) — 32 impls: ROPE (4) + CONV2D (8, no-bias|with-bias) + CONV_TRANSPOSE2D (8, no-bias|with-bias — bias operand WIDENED into the contract) + CAUSAL_CONV1D (4) + SELECTIVE_SCAN (4, bundle) + SSD_CHUNK_SCAN (4, bundle).
  • hand-written below: FLASH_ATTN (8) + FLASH_ATTN_BACKWARD_{Q,K,V} (24) + PAGED_ATTN (8) + NF4_MATMUL (3).

Total: 120 CPU BackendImpls registered across all 24 registered fused ops. The architecture v1.0 §05 bit-stable coverage commitment is now compiler-enforced for the full fused-op set (no KNOWN_GAPS allowlist in the step-7 lint).

Backend crates (fuel-cuda-backend, fuel-vulkan-backend) extend by composing against the registry from their own startup paths or via the step-9 binding-table refactor.