Expand description
2026-09-28: The fuser: cover a circuit’s nodes with rule groups for one mode and row count.
Greedy and deterministic. Rules are tried by priority (highest first, then id), and each
rule scans the nodes in execution order; a node joins at most one group. A rule is skipped
when its mode or rows do not apply, a kernel is absent, a capability is missing, a policy
setting it names differs, or its differs lever is not opted in.
Owner: metrale-circuit. Invariants:
- Every node of the mode’s section ends in exactly one group, or
fusereturnsFuseError::Uncovered; no node is left to an implicit kernel. - A policy must state every setting any rule reads (
FuseError::PolicyMissing). - The plan is a pure function of its inputs;
FusionPlan::digestchanges exactly when what the plan runs changes (seecrate::digest).
Structs§
- Available
Kernels - 2026-09-28: The kernels and capabilities a target provides (the boot probe’s answer).
- Fusion
Plan - 2026-09-28: The fused plan of one circuit for one mode and row count.
- Group
- 2026-09-28: One launch group.
- Policy
- 2026-09-28: What the recipe decides: opt-in levers for
differsrules, and the settings (kv_cache_dtype,row_tiers, …) thatwhenclauses read.
Enums§
- Edge
State - 2026-09-28: Whether an edge is written to memory or stays inside one kernel.
- Fuse
Error - 2026-09-28: Why no plan was produced.
Functions§
- fuse
- 2026-09-28: Fuse
circuitformodeatrowspadded rows. Averify_batchplan needs a row table:fuse_table. - fuse_
table - 2026-09-30: Fuse
circuitfor a batched verify oftable. - group_
io - 2026-09-28: The edges a group reads from outside itself and the ones it writes, in edge order. Used by the renderers and the buffer planner.
- section_
of - 2026-09-28: The section a mode runs.