Source/Packages

Realization.Nvidia.SM86.StallCompaction

packages/realizations/cooperative/nvidia-sm86/src/Realization/Nvidia/SM86/StallCompaction.alpha

329 lines36 declarations18.9 KiBSHA-256 97ebc43fe4f1

def · lines 282–284

sm86MaskBit

Full file
HMMA.16816 is fixed latency on SM86 (Accelerator.SM86.Operands. sm86TensorLatencyCycles: sources read at issue, a dependent product or read of the result 24 cycles later), and the tiled products schedule it so. The older kernels instead give every product a write barrier and wait for each whole k-slice before the next, draining the tensor pipe. This rewrites the products that write a barrier named in `freed` (a wait mask) to the fixed-latency form and removes every wait on those barriers, so the stall compactor and the fixed-latency checker order the products and their readers instead. Nothing but tensor products may write a freed barrier: another writer keeps its barrier but loses the waits, and SM86.Scoreboard refuses the result, which the caller must check.
282def sm86MaskBit =
283  (lambda unrestricted mask : Nat . (lambda unrestricted bit : Nat .
284    (naturalModuloUnchecked (naturalDivideUnchecked mask bit) 2)))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.