You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cuda): pin turbo4 cooperative warp-collectives to WARP_SIZE (gfx803 corruption)
The mt_paged_attention turbo4 scatter/decode/tile kernels and the set-rows
turbo4 quant kernel are written for 32-lane warps (WARP_SIZE=32,
DECODE_NUM_WARPS=NUM_THREADS/32, lane=tid%32). They issued bare 3-arg
__shfl_*_sync, which the HIP shim maps to width=warpSize. On gfx803 (GCN)
warpSize=64, so two logical 32-lane warps share one 64-wide hardware wave:
* scatter/set-rows nibble pack: __shfl_sync(.., my_nibble, lane^1) read the
partner from the wrong half of the wave for threads 32-63/96-127,
corrupting ~25% of packed K/V nibbles.
* decode/tile dequant: __shfl_sync(.., norm_f, 0) broadcast lane-0s norm
0 commit comments