每代优化了什么、目标硬件、关键瓶颈转移一览
| 维度 | FlashAttention-1 | FlashAttention-2 | FlashAttention-3 | FlashAttention-4 |
|---|---|---|---|---|
| 年份 / 论文 | 2022 (arXiv:2205.14135) | 2023 (arXiv:2307.08691) | 2024 (arXiv:2407.08608) | 2026 (arXiv:2603.05451) |
| 目标 GPU | Volta / Turing / Ampere | Ampere (A100, A6000) | Hopper (H100, H200) | Blackwell (B200, GB200) |
| 核心主题 | IO-aware tiling + online softmax + recomputation | 更好并行度与工作划分 | 异步执行 + 低精度 | 算法与 kernel pipeline 协同设计 |
| 主要瓶颈 | HBM 读写量(S/P 矩阵 materialization) | 非 matmul 开销、warp 空闲、循环顺序 | Tensor Core 利用率低、softmax bubble、同步等待 | 非 matmul 单元(exp/SFU)跟不上 Tensor Core;共享内存带宽不对称 |
| 关键硬件特性 | Shared memory, Tensor Core | Shared memory, Tensor Core | TMA, WGMMA, async MMA, FP8 | TMEM, 2-CTA MMA, fully async MMA |
| 峰值性能(代表性数字) | —(基准) | ~225 TFLOP/s (A100, 50–73%) | 740–840 TFLOP/s (H100, 75–85%); FP8 ~1.2 PFLOP/s | ~1,613 TFLOP/s (B200, 71%) |
| 相对上一代加速 | — | ~2× | 1.5–2× | 1.3× vs cuDNN 9.13; 2.7× vs Triton |
| 精度 | FP16 / BF16 | FP16 / BF16 | FP16/BF16 + FP8(block quant + incoherent processing) | FP16 / BF16(论文聚焦 BF16) |
工程影响:把 attention 从 memory-bound 变成 compute-bound,开启长上下文训练可能。
工程影响:A100 上达到 50–73% 峰值算力;成为工业界默认 attention 实现。
工程影响:H100 上 Tensor Core 利用率从 FA-2 的 ~35% 提升到 75–85%;FP8 推理接近 1.2 PFLOP/s。
工程影响:B200 上 71% 峰值算力,超越 cuDNN 9.13 和 Triton;把非对称硬件缩放作为核心设计约束。
| 资源 | 吞吐(ops/clock/SM) | tile 周期数 | 是否瓶颈 |
|---|---|---|---|
| MMA(BF16) | 8192(Hopper 4096 的 2×) | 1024 | — |
| exp 单元(MUFU) | 16(不变) | 1024 | 前向瓶颈 |
| 共享内存读 | 128 B(不变) | 768 / 3328(后向) | 后向瓶颈 |
FA-4 三招对应三个子瓶颈:① 软仿真 exp(FMA 多项式与 MUFU 并行)+ 条件 rescale 抬 exp 有效吞吐;② TMEM 累加器 + 2-CTA MMA 减 smem 流量;③ LPT 调度改善负载均衡。
FA-1 解决的是 "HBM 读写太多";
FA-2 解决的是 "并行度不够、非 matmul 开销";
FA-3 解决的是 "Tensor Core 利用率低、内存延迟暴露";
FA-4 解决的是 "Tensor Core 越来越快,但 exp/SFU/共享内存带宽没同步提升"。