🟣 Flash Attention:一个数学技巧把内存省 5 倍

Tri Dao 2022 年的一篇论文, 没改 Attention 的数学, 也没让模型变更聪明, 却让全行业训练 / 推理一夜之间快 2-4 倍。 这就是 Flash Attention。

🟣 AI 深度派专栏 · 第 S2-06 期 📅 2026年9月26日 ✍️ 小敏说 AI

💡 本文要点:本文用人话讲清 Flash Attention 的核心思想——重排计算顺序、用 SRAM 而不是 HBM、Online Softmax,以及它如何成为”事实标准”。


🎯 本文导读

  • 🔹 朴素 Attention 的内存瓶颈
  • 🔹 GPU 内存层级速览
  • 🔹 Flash Attention 的核心三招
  • 🔹 三代演进
  • 🔹 它为什么是”基础设施级”突破

一、🧱 朴素 Attention 的内存瓶颈

标准 Attention 公式:

S = Q × K^T          # 形状 [N, N]
P = softmax(S)       # 还是 [N, N]
O = P × V            # 形状 [N, d]

问题:中间矩阵 S 和 P 大小都是 N²。 当 N = 8192:S 占 256 MB(FP16),N=64K 时就 ≈ 16 GB。

💬 关键观点:Attention 慢,不是因为算得多,是因为”搬来搬去”。


二、📐 GPU 内存层级(关键背景)

GPU 不是只有”显存”,是分层的:

层级 容量 速度
HBM(显存) 80GB 较慢(3 TB/s)
SRAM(片上) 几 MB / SM 超快(几十 TB/s)
Register 几十 KB 最快

朴素 Attention 反复把 N² 大矩阵在 HBM ↔ 计算单元 间搬运——搬运耗时 > 计算耗时。


三、💡 Flash Attention 的三招

招式 1:分块(Tiling)

把 Q、K、V 切成小块(如 64×64),一次只处理一小块——块小到能塞进 SRAM。

招式 2:在 SRAM 里算完

每块的 Attention 全在 SRAM 里完成,不落地 HBM。

招式 3:Online Softmax

朴素 Softmax 需要看到一整行才能算。Flash Attention 用一个数学等价变换,让 Softmax 可以增量计算:

每来一块,更新 (running_max, running_sum, output)
最后一块算完时,结果完全等价于"一整行算 Softmax"

🎯 一句话总结:Flash Attention = 用分块 + Online Softmax,把”N² 中间矩阵”完全去掉。


四、📊 效果

指标 朴素 Flash Attention
HBM 读写 O(N²) O(N)
显存占用 O(N²) O(N)
速度 1× 2-4×
数学结果 — 完全等价(无精度损失)

⚠️ 重要点:Flash Attention 不是近似算法——它给出完全相同的数值结果,只是计算更聪明。


五、🪜 三代演进

版本 关键突破 加速比
FlashAttention v1 (2022) 分块 + Online Softmax 2-4×
FlashAttention v2 (2023) 更好并行 + 减少非矩阵乘 再快 ~2×
FlashAttention v3 (2024) 用 H100 异步特性(TMA、WGMMA) 在 H100 上再快 1.5-2×

每一代都建立在新一代 GPU 架构上。


六、🌐 它的”基础设施级”意义

Flash Attention 出来后:

影响 描述
训练成本 一夜降 2-4×
上下文窗口 16K → 128K → 1M 才有了可能
集成进框架 PyTorch 2.0 自带、HuggingFace 默认开
所有 LLM 都用 GPT-4 / Claude / Llama / DeepSeek 都基于它

💬 关键观点:Flash Attention 是”那种一旦出现,再也回不去”的工程突破。


七、🤝 配套技术

技术 作用
Flash Attention 加速 Attention 本身
KV Cache 复用过去的 K/V
PagedAttention 像虚拟内存管理 KV Cache
Flash Decoding 长上下文推理优化

八、❌ 常见误区

误区 真相
❌ Flash Attention 损精度 ✅ 完全等价
❌ 它是新算法 ✅ 是 IO 感知的实现
❌ 只有 Nvidia 卡能用 ✅ AMD、华为都已支持
❌ 自己写代码会更快 ✅ 已是行业基础设施,没必要重造

九、🎁 给非工程读者的”FA 心法”

🔑 大模型瓶颈不是"算",是"搬"
🔑 FA 把中间矩阵彻底消除
🔑 它让长上下文从"理论可行"变成"商业可跑"
🔑 同样的 GPU,开 FA = 1.5-2 张卡的算力

📮 今日话题:你听过的另一个”看似小、却撑起整个行业”的工程突破是什么?

🔮 下一篇预告:s2ep07《Speculative Decoding:小模型猜、大模型审》


🟣 本系列是「小敏说 AI · AI 深度派专栏」第 S2-06 期。 关注公众号 小敏说 AI,回复「深度派」领取第二季合集。