AstrAI/csrc/kernels
ViperEkura e9b03f4fca perf: apply cp.async, XOR swizzle, pre-scaled Q to decode MMA kernel
Decode MMA kernel previously used scalar global→shared loads with
LD=HEAD_DIM+8 padding and per-tile scale multiply. This commit brings it
in line with the prefill MMA kernel (which already had these optimizations):

- cp.async K/V loads (bypasses registers, halves load instructions)
- XOR swizzle: LD=HEAD_DIM instead of HEAD_DIM+8 (zero waste smem)
- Pre-scale Q during load (removes per-tile scale multiply in softmax)
- Clean up prefill MMA kernel comments (no code change)

~2x speedup on decode (0.47ms→0.24ms at seq_len=512)
2026-07-08 16:15:14 +08:00
..
gqa_common.cuh fix: correct prefill mask index, unify GQA kernel interface 2026-07-06 17:21:23 +08:00
gqa_decode_attn.cu perf: apply cp.async, XOR swizzle, pre-scaled Q to decode MMA kernel 2026-07-08 16:15:14 +08:00
gqa_decode_attn.cuh fix: correct prefill mask index, unify GQA kernel interface 2026-07-06 17:21:23 +08:00
gqa_decode_attn_mma.cuh perf: apply cp.async, XOR swizzle, pre-scaled Q to decode MMA kernel 2026-07-08 16:15:14 +08:00
gqa_mma_utils.cuh feat: support HEAD_DIM=32 and split extension into loader/ops 2026-07-08 14:14:11 +08:00
gqa_prefill_attn.cu perf: apply cp.async, XOR swizzle, pre-scaled Q to decode MMA kernel 2026-07-08 16:15:14 +08:00
gqa_prefill_attn.cuh feat: tensor-core mma prefill with build-time dispatch 2026-07-06 20:33:24 +08:00
gqa_prefill_attn_mma.cuh perf: apply cp.async, XOR swizzle, pre-scaled Q to decode MMA kernel 2026-07-08 16:15:14 +08:00