feat: paged decode attention with split-KV (scalar + MMA)

- PagedAttentionParams merged into attn_common.h
- Scalar variant: warp-per-query-head split-KV, resolves page table per-position for the K/V shared-memory tile load
- MMA variant (sm_80+): tensor-core head-packing with cp.async, single page-table lookup per tile (BC=32 fits within page_size>=32)
- Standalone test: 14 cases across head_dim 32/64/128/256, GQA, multi-batch, both paths verified against CPU reference
This commit is contained in:
2026-07-11 18:14:51 +08:00
parent 2c0b5d0b5e
commit 89ece26c25
6 changed files with 775 additions and 1 deletions
+1
View File
@@ -45,3 +45,4 @@ def register(name: str, sources: list[str] | None = None, **kwargs):
register("attn_decode")
register("attn_prefill")
register("attn_paged_decode")