How a family races its candidates: the priority band that orders a round, and the autotune a
family builds its candidates into (Autotune), measured against the problem’s roofline
(Roofline).
How a call runs, as a tree of plans: a routine, a step and then a plan, a list of plans tried in
order, or an autotune table. Each is a Plan, so each nests in the others.
Bytes one coalesced memory transaction moves on the GPUs cubek has met: 128 on CUDA, HIP,
Metal and Vulkan hardware alike, at wave32 and wave64. A property of the memory system, not of
the plane width that fetches through it.
Bytes of a box’s inner row the TMA engine copies at full speed: shorter rows land as many more,
smaller requests. A measurement rather than a derivation, the engine’s speed being the
device’s: on the RTX PRO 6000 a stage landed in 32-byte rows copies about 40% slower than the
same stage in 64-byte rows (the NVFP4 product with no contraction, Qwen3-4B’s down projection
at 2048 rows, 126 against 89 µs). The step rule cuts a stage the engine fills to it
(MatmulStep::filled_by_tma in cubek-matmul).
32-bit registers one unit addresses before a kernel spills to memory: NVIDIA’s 255. The NVFP4
settings read it, which a device offers only with NVIDIA’s block-scaled instruction, and a unit’s
register block unrolls no more cells than it.
The ranking of a device’s fragment contractions: an iterator over one of cubecl’s
MatmulFeatures sets (cmma, mma), narrowed and ordered the way a routine picks from it.
The fragment contractions cubek’s own transport over the matrix intrinsics (mma) runs on
hw: the runtime’s mma set, and its block-scaled instructions over NVFP4, e2m1 operands
under an e4m3 scale every NVFP4_BLOCK values of k, which the transport runs on the
stored words as they lie.