返回 大语言模型 思维导图
中文·English
大语言模型ID: flashattention

FlashAttention

🎯核心定义
FlashAttention 是 IO 感知的精确注意力实现:把 QKTQ K^T 分块 (tiling) 放进 SRAM 计算,配合 online softmax 维护运行最大值 mim_i 与归一化因子 lil_i(合并新块时递归缩放:mnew=max(m,mlocal)m_{new} = max(m, m_{local})),前向不把 O(n2)O(n^2) 注意力矩阵写回 HBM,反向用重算而非存储;动机是 HBM 与 SRAM 的带宽差距约 10-20 倍(A100: 40GB HBM vs 约 108KB SRAM)。
💡使用场景
大模型训练与推理的事实标准实现(PyTorch SDPA、NVIDIA FA2/FA3、DeepSeek/Meta 训练栈),序列越长收益越大,长上下文训练几乎必用。
解决的核心痛点
标准实现把注意力矩阵反复写读 HBM,IO 成为主要瓶颈;分块 + 重算把 HBM 访问从 O(n2d)O(n^2 d) 降到 O(n2d2M)O(\frac{n^2 d^2}{M})(MM 为 SRAM 大小),速度提升 2-4 倍、显存从 O(n2)O(n^2) 降到 O(n)O(n),且结果与标准 softmax 逐位一致(不是近似)。
🎯5 个高频面试考点 (Exam Points)
1
为什么说 attention 是 memory-bound?HBM 与 SRAM 的带宽/容量差距?
2
online softmax 如何合并分块统计量?(运行最大值 m 与归一化因子 l 的递归公式)
3
反向传播为什么重算而不存储?显存从 O(n2)O(n^2) 降到多少?
4
FlashAttention-2 相比 v1 改进了什么?(省略中间矩阵、减少非矩阵运算、约 2×)?
5
FlashAttention 为什么是精确的?与稀疏/低秩注意力有什么本质区别?
📖 关联深度指南:📄 transformer-architecture
更新于 2026-08-12
🎯
检验攻克程度:针对「FlashAttention」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点归一化 Pre-LN/RMSNorm下一个知识点指令微调 SFT

🔗 更多 大语言模型 知识点卡片

Agent 与工具调用对齐税与偏好数据缩放点积注意力注意力变体 MHA/MQA/GQA