- Double-buffered KV (STAGES=2) for D<=128: next tile cp.async overlaps current tile MMA compute, hiding global load latency - Q loaded directly from global into mma A-operand registers, removing sQ staging and prologue syncwarp - Predicated cp.async unifies full and partial tile paths, eliminating scalar fallback branch - STAGES=1 fallback for D=256 (double-buffer would exceed smem budget) - Applied to both contiguous and paged decode MMA kernels - ~1.27x average speedup on L20 (sm_89), zero precision loss |
||
|---|---|---|
| .. | ||
| kernels | ||
| tests | ||
| __init__.py | ||
| build.py | ||