AstrAI/csrc
ViperEkura 69fecaf387 perf: double-buffer KV pipeline and Q direct-to-register in decode
- 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
2026-07-12 14:14:54 +08:00
..
kernels perf: double-buffer KV pipeline and Q direct-to-register in decode 2026-07-12 14:14:54 +08:00
tests perf: double-buffer KV pipeline and Q direct-to-register in decode 2026-07-12 14:14:54 +08:00
__init__.py feat: add optional CUDA kernel system (csrc/) + fused GQA decode attention 2026-07-06 12:09:58 +08:00
build.py feat: paged decode attention with split-KV (scalar + MMA) 2026-07-11 18:14:51 +08:00