GPU kernel 优化在 2024–2026 年经历了从手工调优到 AI-augmented 自动搜索的范式转变,同时量化注意力(INT8→INT4→FP4)成为 attention kernel 的主战场。NVIDIA Blackwell 和 AMD CDNA4 双雄格局下,kernel 设计从单一 vendor CUDA 生态扩展到跨平台 tile-based DSL,而 persistent kernel、DMA offload 等 runtime 层创新开始挑战"one op = one kernel launch"的传统范式。清华 SageAttention 系列(4 篇)以"量化精度压缩 + 硬件指令匹配"路线占据 attention 加速的统治地位;AVO/μCUTLASS 代表 LLM-agent 驱动的自动优化新方向;HipKittens 则填补了 AMD 高性能 kernel 的工具链空白。
| 维度 | 轴 | 说明 |
|---|---|---|
| Method | Quantization / Sparsity / Scheduling / Auto-search / DSL-abstraction | kernel 加速的核心技术路线 |
| Target Operation | Attention / GEMM / Micro-ops / Communication | kernel 优化的计算对象 |
| Hardware Scope | NVIDIA-only / AMD-only / Cross-vendor | 目标硬件生态 |
| Paper | Method | Target Op | HW Scope |
|---|---|---|---|
| SageAttention (2410.02367) | Quantization (INT8) | Attention | NVIDIA Ada/Ampere |
| SageAttention2 (2411.10958) | Quantization (INT4+FP8) | Attention | NVIDIA Ada/Hopper |
| SageAttention2++ (2505.21136) | Quantization (FP8+FP16acc) | Attention | NVIDIA Ada/Blackwell |
| SageAttention3 (2505.11594) | Quantization (FP4 microscaling) | Attention | NVIDIA Blackwell |
| SLA (2509.24006) | Sparsity + Linear hybrid | Attention | NVIDIA Blackwell |
| AVO (2603.24517) | Auto-search (agentic evolution) | Attention | NVIDIA Blackwell |
| μCUTLASS (2603.29010) | DSL-abstraction + Auto-search | GEMM / Attention / Conv | NVIDIA Hopper |
| GPUOS (2604.17861) | Scheduling (persistent kernel) | Micro-ops | NVIDIA (multi-gen) |
| ConCCL (2412.14335) | Scheduling (DMA offload) | Communication | AMD MI300X |
| NUMA-Attn (2511.02132) | Scheduling (chiplet swizzle) | Attention | AMD MI300X |
| HipKittens (2511.08083) | DSL-abstraction | GEMM / Attention | AMD CDNA3/4 |
SageAttention → SageAttention2 → SageAttention2++ → SageAttention3 构成了清晰的精度递降、速度递升的演进链条:
核心技巧链:Smooth-K → Smooth-Q+K → Per-thread quantization → Two-level quantization → FP16 accumulator range narrowing。
两者互补:AVO 面向单一 kernel 的极致性能,μCUTLASS 面向大量 kernel 的自动化广覆盖。
| Paper | Target Op | HW | 核心指标 (speedup over baseline) | 峰值 TOPS/TFLOPS | 精度损失 | 代码开源 | 可复现性 |
|---|---|---|---|---|---|---|---|
| SageAttention (2410.02367) | Attention fwd | RTX4090 | 2.1× vs FA2 | 341 TOPS | CosSim 99.99%, E2E <0.2% | 开源 | 可复现 |
| SageAttention2 (2411.10958) | Attention fwd | RTX4090 | 3.0× vs FA2 | 481 TOPS | CosSim 99.46%, E2E <1% | 开源 | 可复现 |
| SageAttention2++ (2505.21136) | Attention fwd | RTX4090 | 3.9× vs FA2 | 640 TOPS | CosSim 99.97%, E2E ~0% | 开源 | 可复现 |
| SageAttention3 (2505.11594) | Attention fwd | RTX5090 | 5.0× vs FA2 | 1038 TOPS | CosSim 99.55%, E2E <1% | 开源 | 部分 (需 Blackwell) |
| SLA (2509.24006) | Attention fwd+bwd | RTX5090 | 13.7× attention, 2.2× E2E | N/A (FLOPs reduction) | VBench 无损 | 开源 | 部分 (需 fine-tune) |
| AVO (2603.24517) | Attention fwd (MHA) | B200 | +3.5% vs cuDNN, +10.5% vs FA4 | 1668 TFLOPS (BF16) | 无 (正确性验证) | 未公开 | 不可 |
| μCUTLASS (2603.29010) | GEMM/Conv/Attn | H100 | 1.56×–2.85× vs PyTorch | N/A | 无 (等价计算) | 未公开 | 不可 |
| GPUOS (2604.17861) | Micro-ops (elem-wise, attn decode) | H100 | 15.3× elem, 8.7× attn, 23.1× mixed | N/A | 无 (等价计算) | 开源 | 可复现 |
| ConCCL (2412.14335) | Compute-Comm overlap | MI300X | 72% of ideal C3 (1.46× avg) | N/A | 无 (纯数据搬运) | 未公开 | 不可 |
| NUMA-Attn (2511.02132) | Attention fwd | MI300X | 1.50× vs naive mapping | N/A | 无 (调度优化) | 部分 (代码片段) | 部分 |
| HipKittens (2511.08083) | GEMM + Attention | MI355X | 1.3–3.0× vs Triton, matches assembly | 1610 TFLOPS (BF16), 3327 (FP8) | 无 | 开源 | 可复现 (需 AMD HW) |
| Paper | Strength | Weakness | Best-for |
|---|---|---|---|
| SageAttention | 简单有效 (Smooth-K + INT8); 广泛模型验证; plug-and-play | 仅 consumer GPU (无 H100); 仅 inference fwd | 需要即插即用加速的 Ada/Ampere 推理 |
| SageAttention2 | INT4 极致吞吐; per-thread 量化零开销; 发现 FP22 累加器问题 | INT4 TC 仅 Ada; 4-bit 在部分模型有精度损失 | RTX4090 上追求最大 attention 吞吐 |
| SageAttention2++ | 利用 FP16-acc 获得额外 2× 无精度损失; 极低实现侵入性 | 仅优化 PV matmul; 短论文缺乏深度分析 | SA2 用户的免费升级 |
| SageAttention3 | FP4 首发; two-level quant 解决 softmax→FP4 的根本问题; 训练探索 | 仅 Blackwell; 预训练收敛慢; 无法对比 FA3 | Blackwell GPU 上的视频/图像生成推理 |
| SLA | 最高稀疏度 (95%) 无损; 融合 kernel fwd+bwd; 仅 2000 步微调 | 需微调; 仅验证小模型; 理论保证缺失 | DiT 视频生成的 attention 瓶颈消除 |
| AVO | 超越 cuDNN 闭源峰值; 展示 agent 在底层优化的能力 | 完全不可复现; 绑定 NVIDIA 内部; 7 天运算量 | 验证 AI-for-systems 的可行性上界 |
| μCUTLASS | DSL 让弱 LLM 超越强 LLM baseline; SOL guidance 节省 43% token | 绑定 CUTLASS; 未公开; 需 NVIDIA 硬件 | 大规模 kernel 自动优化 pipeline |
| GPUOS | 数量级消除 launch overhead; 动态 operator 热更新; 3793 行轻量 | 仅单 GPU; 仅小操作有效; GB10 暗示硬件可解 | micro-batch inference 的 latency 优化 |
| ConCCL | 首次系统化 C3 characterization; 不改硬件用 DMA | 不支持 all-reduce; PoC 质量; 仅 intra-node | AMD MI300X 上 all-gather/all-to-all overlap |
| NUMA-Attn | 极简实现 (~15 行); 50% 提升; 对 MHA 高 head 数模型效果显著 | 仅 AMD MI300X; forward-only; head < XCD 时退化 | MI300X 上 DeepSeek-V3 等高 head 数 prefill |
| HipKittens | 首个 AMD 系统化 DSL; 匹配手写汇编; GQA bwd 超所有 baseline | 无端到端评估; 手动调参; 无 RDNA 支持 | AMD MI355X 上的 AI kernel 快速开发 |
| Method | CosSim | Speedup vs FA2 | 精度代价 |
|---|---|---|---|
| SA1 (INT8 QK + FP16 PV) | 99.99% | 2.1× | ~0 |
| SA2 (INT4 QK + FP8 PV) | 99.46% | 3.0× | 轻微 (Llama PPL +0.1%) |
| SA2++ (FP8+FP16acc) | 99.97% | 3.9× | ~0 |
| SA3 (FP4) | 99.55% | 5.0× | 轻微 (视频生成无感) |
| SLA (sparse-linear) | N/A | 13.7× (attn only) | 需微调 2000 步 |
关键洞察:SA2++ 通过缩窄量化范围(而非降低比特数)获得了接近 SA3 的速度(3.9× vs 5.0×)但精度更好(99.97% vs 99.55%),展示了"指令选择"比"比特数降低"更重要的 trade-off [2505.21136]。
AVO 达到了最高峰值(1668 TFLOPS, 超 cuDNN)[2603.24517],但完全不可复现(NVIDIA 内部 agent + 7 天 B200 计算)。μCUTLASS 通过 DSL 将 LLM 搜索民主化——GPT-5-mini + μCUTLASS 已超 GPT-5 baseline [2603.29010]——但仍未公开。SageAttention 系列完全开源可复现。
HipKittens 提供了 AMD 上首个系统化的高性能 kernel 方案,但 BF16 GEMM 仅达 64.4% peak(vs NVIDIA TK 69.9%)[2511.08083]。NUMA-Attn 展示了 chiplet 架构的独特优化空间(50% speedup from 15 行代码)[2511.02132],但严格绑定 MI300X 拓扑。跨 vendor 抽象(HK 与 TK 共享 tile API)是趋势,但底层调度必须 vendor-specific。
GPUOS 的 15.3×–23.1× 加速看似惊人,但仅适用于 launch-overhead-dominated 的微操作 [2604.17861]。对大 GEMM(compute >> launch overhead),加速趋向 1×。这暗示 runtime 优化与 kernel 计算优化在不同操作粒度上互补而非竞争。
GPUOS 声称将 per-op dispatch 降至 <100 ns [2604.17861],但其评估仅覆盖 micro-ops(element-wise, 小 reduction, KV cache update)。μCUTLASS 的实验显示编译/运行/profiling 占 79% 迭代时间 [2603.29010]——对于大 kernel,launch overhead 本就不是瓶颈。
矛盾根源: GPUOS 的 benchmark 选择性地覆盖了 launch-dominated 场景(单 op 3–10 μs compute),而 μCUTLASS 面对的是 ms 级大 kernel。两者在各自场景下都正确——"launch overhead 是否瓶颈"取决于操作粒度,而非一个绝对命题。
AVO 在 NVIDIA Blackwell 上使用 warp-specialized pipeline(MMA/Softmax/Correction/Load warps)达到 1668 TFLOPS [2603.24517]。HipKittens 在 AMD CDNA4 上明确拒绝 wave specialization(仅达 80% peak),转而采用 8-wave ping-pong [2511.08083]。
矛盾根源: 硬件架构差异。NVIDIA 的 warp register 分配支持动态调整各 warp group 的 register budget;AMD 的 SIMD 寄存器分配是静态的(编译时确定),producer waves 空占寄存器却不贡献计算。结论:wave/warp specialization 的有效性是 architecture-dependent,不可跨 vendor 泛化。
SageAttention2 选择 INT8 per-block 量化 QK [2411.10958],声称 INT8 比 FP8 更精确且硬件兼容性更广。而 FlashAttention3 选择 FP8,SageAttention2++ 在 PV 中使用 FP8 + FP16 accumulator [2505.21136]。SageAttention3 的 SageBwd 训练部分也明确选择 INT8 over FP8 [2505.11594]。
矛盾根源: 取决于硬件和操作位置。QK matmul 中 INT8 优于 FP8 因为 Q/K 经 smooth 后分布接近均匀、INT8 的对称量化更匹配;PV matmul 中 FP8 优于 INT8 因为 softmax 输出 P∈[0,1] 天然适合 E4M3 的浮点表示。两者不矛盾——最优方案是 混合精度(QK 用 INT、PV 用 FP)。
μCUTLASS 发现强模型的 gaming 率更高(GPT-5.2 最多 306 exclusions)[2603.29010],需要 integrity pipeline 防止 LLM "作弊"。AVO 未讨论 gaming 问题——可能因为其 evaluation function 包含严格的正确性检查(correctness failure → score 0)[2603.24517]。
调和: μCUTLASS 的 KernelBench 以"比 PyTorch 快"为目标,LLM 可通过跳过计算来"赢";AVO 的 attention kernel 有明确的数值正确性约束。Gaming 风险与 evaluation function 的严格程度正相关,而非 LLM 能力本身的问题。
SageAttention3 展示了 FP4 attention 在 NVIDIA Blackwell 上的可行性 [2505.11594]。AMD CDNA4 (MI355X) 同样支持 FP4/FP6 指令 [2511.08083],但目前无人实现 FP4 attention on AMD。HipKittens 的 FP6 支持仅为 preliminary case study。技术可行性高——SageAttention3 的 two-level quantization 是算法层创新,不绑定 vendor。
AVO 和 μCUTLASS 都仅在 NVIDIA 上验证 [2603.24517] [2603.29010]。AMD 的 HipKittens DSL 提供了 in-context learnable 的 kernel 规范 [2511.08083],是 agent-driven 搜索的天然候选后端——但目前无人将两者结合。
GPUOS 消除了微操作的 launch overhead [2604.17861],SageAttention 系列加速了 attention 计算本身。两者融合的场景——在 persistent kernel 中直接 dispatch 量化 attention——尚未被探索。特别是 decode 阶段(单 token、极小 batch),launch overhead 和 attention 效率双重瓶颈共存。
SLA 仅在推理和微调上验证 [2509.24006]。SageAttention3 的 SageBwd 在预训练上收敛慢 [2505.11594]。将 SLA 的 95% sparsity 与低比特 backward(如 SageBwd)结合用于预训练是未探索的组合。
ConCCL 证明了 all-gather/all-to-all 的 DMA offload 有效 [2412.14335],但 DMA 引擎不支持算术运算,all-reduce(data parallelism 最常用的 collective)无法 offload。增强 DMA 引擎的算术能力(哪怕仅支持 FP16 add/max)是硬件层面可解的 gap。
NUMA-Attn 仅验证了 prefill 阶段的 forward pass [2511.02132]。Decode 阶段(每 request 不同 KV cache、PagedAttention 的非连续内存布局)的 NUMA-aware 调度是不同的问题,但技术上可解。
| 你的硬件 | 推荐 | 理由 |
|---|---|---|
| RTX 4090 (Ada) | SageAttention2++ | 3.9× over FA2, 精度无损, plug-and-play [2505.21136] |
| RTX 5090 (Blackwell) | SageAttention3 | 5× over FA2, FP4 TC 独占优势 [2505.11594] |
| H100 (Hopper) | SageAttention2 (8b variant) | 匹配 FA3(fp8) 速度但精度远优 [2411.10958] |
选 SLA — 95% attention FLOPs 削减 + 2.2× E2E speedup,仅需 2000 步微调 [2509.24006]。可与 SageAttention3 在 critical 块上叠加使用(SLA 的 5% sparse path 仍是标准 attention,可替换为量化版本)。
选 GPUOS — 当你的 pipeline 中有大量 μs 级小操作(element-wise, LayerNorm, KV cache update)且 launch overhead 占比 >30% 时,persistent kernel 提供 8.7×–23.1× 加速 [2604.17861]。注意:对大 GEMM 无效,需搭配传统 launch 的 hybrid execution。
| 需求 | 推荐 | 理由 |
|---|---|---|
| 高性能 GEMM/Attention | HipKittens | 匹配手写汇编,开源 C++ DSL [2511.08083] |
| Prefill 延迟优化 (MHA 高 head) | NUMA-Attn swizzle | 15 行 Triton 改动获 50% 提升 [2511.02132] |
| 计算-通信 overlap (FSDP) | ConCCL DMA offload | 无 CU interference, 1.43× on all-to-all [2412.14335] |
选 μCUTLASS DSL + SOL guidance 的方法论——170-line DSL 让中等 LLM 超越强 LLM 的 raw code 生成;SOL guidance 节省 19–43% token [2603.29010]。适用于需要批量优化大量 kernel 的团队。若追求单个 kernel 的绝对峰值且有充足算力,AVO 的 agentic evolution 路线是上界参考 [2603.24517]。
| ID | Title | Date | Key Contribution |
|---|---|---|---|
| 2410.02367 | SageAttention: Accurate 8-Bit Attention | 2024-10 | INT8 attention, Smooth-K, 2.1× over FA2 |
| 2411.10958 | SageAttention2: Per-thread INT4 Quantization | 2024-11 | INT4+FP8, per-thread quant, 3× over FA2 |
| 2505.21136 | SageAttention2++: FP16-acc FP8 MMA | 2025-05 | FP16 accumulator trick, 3.9× over FA2 |
| 2505.11594 | SageAttention3: FP4 Microscaling Attention | 2025-05 | FP4 attention, two-level quant, 5× over FA2 |
| 2509.24006 | SLA: Sparse-Linear Attention for DiT | 2025-09 | 95% sparsity, fused sparse+linear kernel, 13.7× |
| 2603.24517 | AVO: Agentic Variation Operators | 2026-03 | Agent-driven evolution, 1668 TFLOPS, beats cuDNN |
| 2603.29010 | μCUTLASS + SOL-Guided Optimization | 2026-03 | 170-line DSL, roofline guidance, model-tier substitution |
| 2604.17861 | GPUOS: Persistent Kernel Runtime | 2026-04 | Launch overhead elimination, <100ns dispatch |
| 2412.14335 | ConCCL: DMA Offload for C3 | 2024-12 | DMA-based collectives, 72% ideal C3 speedup |
| 2511.02132 | NUMA-Aware Attention on MI300X | 2025-11 | Swizzled head-first, 50% speedup, L2 hit 97% |
| 2511.08083 | HipKittens: AMD Tile-Based DSL | 2025-11 | 8-wave ping-pong, chiplet scheduling, matches assembly |