芯片层 开放阅读

FlashAttention

FlashAttention

概念 ID
flashattention
更新时间
2026-05-29
来源数量
待补

FlashAttention

1 3 秒看懂

FlashAttention 是一种在 GPU 上对 Transformer 自注意力(Self‑Attention)进行高速、低显存计算的算法。它将矩阵乘法、softmax 等步骤融合为单一、极省显存读写的内核,在不改变最终数学结果的前提下,把长序列的训练速度提升 2~4 倍,同时将显存占用从 O(N²) 压至 O(N)——让大模型可以被“喂”进更长的文本而不爆显存。

2 3 分钟产业解释

大语言模型(GPT、Llama、Claude 等)处理超长文本时,标准注意力机制的计算量和显存占用随序列长度 N 呈平方级(O(N²))膨胀,直接推高训练与推理成本。FlashAttention 的产业价值在于:

  • 降本增效:用更少的 GPU 资源训练更长上下文的模型,大幅降低算力费用,使中小企业也能涉足长文本场景。
  • 事实标准:已被 PyTorch、DeepSpeed、Megatron‑LM 等主流框架原生集成。自 2023 年起,几乎所有长上下文模型(32k、128k 乃至百万 token)的训练均默认启用 FlashAttention。
  • 思维扩散:它开创的 “IO‑aware”(感知显存层次)设计思想,正在向整个 Transformer 乃至其他算子扩展——催生出 FlashAttention‑2、FlashDecoding、FlexAttention 等系列技术,驱动 GPU 硬件利用率进入新阶段。

3 技术原理

内存墙:注意力算子的真正瓶颈

GPU 计算能力(FLOPS)远超显存带宽,标准注意力属于典型的 memory‑bound 操作。其执行过程为:

S = Q @ K^T        (1) 写入 HBM 矩阵 S (N×N)
P = softmax(S)     (2) 读 S,写 P 回 HBM
O = P @ V          (3) 读 P、V,写 O

S 和 P 均为 N×N 矩阵。当 N=16k、半精度(FP16)时,单个注意力头需要写入约 512 MB 中间数据,而典型 SRAM(如 A100 每个 SM 仅 192 KB 共享内存)无法容纳,迫使频繁的 HBM 访问,带宽成为性能瓶颈。实测中,标准注意力的 GPU 利用率通常不足 30%。

三大核心机制:分块 + 在线 softmax + 内核融合

分块(Tiling)
将 Q、K、V 沿序列维度切成小块,逐块加载到高速 SRAM 中计算局部注意力,避免一次性生成完整的 N×N 中间矩阵。

在线 softmax(Online Softmax)
通过动态维护全局最大值与归一化因子,可从局部块逐步累积得到与全局完全一致的 softmax 结果,无需存储完整的 S 或 P。其迭代逻辑示意:

for each block i:
    S_ij = Q_j @ K_i^T
    m_new = max(m, rowmax(S_ij))
    P_ij = exp(S_ij - m_new)
    l_new = exp(m - m_new)*l + rowsum(P_ij)
    O_j = diag(exp(m - m_new)) * O_j + P_ij @ V_i
    m = m_new; l = l_new

循环结束时,O_j 即为精确的注意力输出。

内核融合(Kernel Fusion)
将整个计算封装进单个 CUDA 内核,所有中间变量仅在 SRAM 中流转,完全消除对 HBM 的中间写回。反向传播则通过重计算(recomputation)注意力值来进一步减少显存需求。

复杂度与性能本质

FlashAttention 将 HBM 访存量从标准注意力的 O(N²) 降至约 O(N² d² / M),其中 d 为头维度(典型值 64128),M 为 SRAM 大小。常数因子 d²/M 通常远小于 1,使得实际访存大幅减少,长序列场景下算子从 memory‑bound 转为 compute‑bound。根据 Dao 等人在 2022 年 NeurIPS 论文中的测试,在 A100 上对 GPT‑2 长序列训练,前向加速约 24 倍;后续 FlashAttention‑2(2023)在 H100 上进一步将 TFLOPS 利用率提升至 70% 以上(来源:FlashAttention‑2 论文,arXiv 2023)。

数值等价性

由于浮点累加顺序不同,FlashAttention 计算结果与标准注意力存在微小的位级差异,但数学上与 softmax 精确等价,训练和推理精度无统计性影响。该特性已被 PyTorch、Hugging Face 等社区大量验证,视为安全的直接替换。

4 关键参数

以下指标基于主流公开测试,主要环境为 NVIDIA A100 80GB / H100 80GB,序列长度 8k–16k,头维度 64–128。

  • 前向加速比:相对标准注意力,FlashAttention 前向加速 24 倍;FlashAttention‑2 可达 35 倍(来源:Tri Dao 等 2022、2023 论文;xFormers 0.0.22 基准)。
  • 显存节省:从 O(N²) 降至 O(N)。对于 N=64k、40 个注意力头的典型配置,标准注意力需约 32 GB 存储中间矩阵,FlashAttention 仅需约 1 GB(估算,来源:Tri Dao 博客 2023)。实际训练中可支持增加 batch size 或加倍上下文长度。
  • GPU 利用率:标准注意力通常低于 30% A100 峰值;FlashAttention‑2 在 H100 上可达 50–75%(来源:FlashAttention‑2 论文,2023)。第三代 FlashAttention‑3(2024)利用 H100 的 TMA 和 FP8 进一步提升至约 75% 且吞吐达 1.3 PetaFLOPS(来源:arXiv 2024)。
  • 序列长度极限:单卡推理可处理 128k+ 序列,训练稳定支持 64k 级别。公开资料未见 100 万 token 以上纯 FlashAttention 无辅助方案的商用精确数据;百万级序列通常需结合稀疏或线性注意力。
  • 精确数学等价:无模型质量损失,这一点已在数百个开源模型中得到验证。

5 技术路线

演进时间线

  • 术前阶段(2022 年以前):已出现分块注意力(BlockSparse)、低秩近似(Linformer、Performer)等方案,但都以牺牲模型质量为代价,且未充分利用显存层次。
  • FlashAttention(2022,Dao et al.,NeurIPS):首次将在线 softmax 与分块融合为单个 CUDA 核,实现无损加速。迅速被 PyTorch 纳入 scaled_dot_product_attention 的后端之一。
  • FlashAttention‑2(2023):改进并行策略,减少非矩阵乘计算,更精细化地切分工作到线程束,使 H100 利用率突破 70%。同时支持序列长度达 64k。
  • 衍生技术
    • FlashDecoding:专为推理设计,将序列维度并行以显著降低长序列推理延迟,已在多个开源推理引擎中使用。
    • FlashAttention‑3(2024):针对 Hopper 架构深度优化,使用异步指令和 FP8,实现更高吞吐。
    • FlexAttention(2024,PyTorch):提供通用 API,支持滑动窗口、因果掩码、自定义稀疏模式等,底层仍受益于分块融合思想,但灵活性大幅提升。
  • 生态整合:2023 年起,Hugging Face Transformers、PyTorch 2.0 的原生 scaled_dot_product_attention、DeepSpeed、Megatron‑LM 均已默认优先使用 FlashAttention(及后续版本)作为注意力后端。

路线对比:FlashAttention vs 其他注意力方案

特性标准注意力稀疏注意力(如 Longformer)线性注意力(如 Performer)FlashAttention
计算复杂度O(N²d)O(N k d)(k为窗口)O(N d²)O(N²d)(实际常数极低)
显存占用O(N²)O(N k)O(N d)O(N)
数学精度精确近似(结构化稀疏)近似(核函数估计)精确
硬件利用率低(受限于访存墙)依赖稀疏模式,利用率受限需 d 足够大,硬件利用中等(特别在长序列时)
实现难度简单中等较高较高(需编写或调优 CUDA 核)
长序列训练加速基准2~5×(依赖稀疏度)1.5~3×2~4×(实际因硬件和长度浮动)
代表发布Longformer(2020)Performer(2020)FlashAttention(2022)

注:性能数据引用各论文及公开基准,实际结果受模型配置与硬件影响。

6 上游

FlashAttention 的实现与性能依托以下上游要素:

  • GPU 硬件:必须具备可编程高速共享内存(SRAM)和张量核心。典型为 NVIDIA Volta 及更新架构(SM 7.0+),实际高效需 Ampere(A100,SM 8.0)或 Hopper(H100,SM 9.0)。AMD 的 CDNA 架构(如 MI250、MI300X)通过 ROCm 初步支持,但性能与生态不如 NVIDIA 成熟。
  • 底层库与编译器:CUDA C++ 内核编写或 Triton 语言实现。OpenAI 的 Triton 语言(2022 年开源)极大降低了 IO‑aware 内核的开发门槛,社区已有 Triton 版本的 FlashAttention 实现(来源:Triton 仓库)。此外,CUTLASS 模板库也为高性能矩阵乘融合提供基础。
  • 并行框架:PyTorch 的 scaled_dot_product_attention 后端接口允许灵活选择实现,依赖 CUDA 工具链及驱动。
  • 硬件特性:如 H100 的张量内存加速器(TMA)和 FP8 支持,为 FlashAttention‑3 的效率提升创造了条件。上游 GPU 架构的演进直接决定软件优化天花板。

7 下游

FlashAttention 及其衍生技术已渗透到以下关键场景:

  • 长上下文大模型训练:GPT‑4(128k)、Claude 3(200k)、Llama 3(8k→128k)、Mistral 等模型,在官方技术报告或公开访谈中均承认利用类似 FlashAttention 的高效注意力方案来处理长序列(来源:Meta Llama 3 技术报告,2024;Anthropic 博客,2024;Mistral 博客,2023)。
  • 推理部署:FlashDecoding 和 FlashAttention‑2 显著提升长文本生成吞吐,已被 vLLM、TGI、TensorRT‑LLM 等流行推理框架集成。
  • 多模态模型:高分辨率图像(如 ViT)将图像切成大量 patch,形成长序列,FlashAttention 支持高效训练,被用于 Google PaLI、Meta DINOv2 等(来源:公开论文 2023)。
  • 科学计算:蛋白质序列(AlphaFold 衍生的长序列建模)、DNA 长序列、分子动力学模拟受益于无损注意力加速。
  • 框架集成:PyTorch 2.0+ 默认 scaled_dot_product_attention 可根据输入与硬件自动选择 FlashAttention 后端;Hugging Face 的 transformers 库中数百个模型已内置 FlashAttention 支持,用户仅需安装 flash-attn 包即可提速。

8 受益公司

FlashAttention 作为开源算法,直接创造营收有限,但间接使以下类型厂商显著受益(均以降低成本、提升效率为主要逻辑,不构成任何投资性评估):

  • 核心开发与生态运营方:Tri Dao 及其团队(斯坦福 / Together AI)。Together AI 除贡献开源外,也基于此类高效技术搭建云平台,2023 年完成 A 轮融资,估值超 10 亿美元(来源:TechCrunch,2023 年 11 月)。其商业模式为提供优化过的训练与推理服务。
  • GPU 与硬件厂商:NVIDIA 是最大受益者——FlashAttention 提升 GPU 实际利用率,降低客户 TCO,反过来刺激更多需求。NVIDIA 官方多次联合发布集成指南(如 Megatron‑LM 搭配 FlashAttention);AMD 通过 ROCm 生态合作,2024 年宣称在 MI300X 上初步支持 FlashAttention‑2,力图缩小差距(来源:AMD 官方博客,2024)。
  • 云服务商:AWS、Azure、GCP 等提供 GPU 实例,直接受益于训练相同模型所需时长缩短;部分云厂商推出自研集成,如 AWS 的 P5 实例文档中鼓励使用 FlashAttention 优化 LLM 训练。
  • AI 平台与模型厂商:Databricks(收购 MosaicML)在 MPT 系列模型训练中大量应用 FlashAttention,降低客户微调成本;Meta、微软、Anthropic 等大规模训练均内嵌此项优化,节约数百万美元级算力开支。
  • 开源工具链:PyTorch(Meta)、Hugging Face 等社区因采纳 FlashAttention 增强了自身生态竞争力。

9 市场规模

公开资料未见独立的 FlashAttention 市场规模测算,因其本身属于开源算法,并不直接产生软件销售收入。但可从训练硬件投入和效率提升进行间接估算:

  • AI 训练硬件支出:根据 Omdia 数据,2023 年数据中心 GPU(用于 AI/ML)总收入约 350 亿美元(口径含 NVIDIA、AMD 等;来源:Omdia 2023 Q4 报告)。AI 服务器集群规模持续扩大,2024 年此数字继续增长(公开资料暂缺确切年度总额)。
  • 注意力算力占比:产业调研表明,训练千亿参数 Transformer 模型时,注意力算子消耗的算力约占总训练算力的 20%40%(来源:DeepSpeed 技术博客,2023;Anyscale 博客,2023)。按此比例,注意力部分的硬件成本在 2023 年间接对应约 70140 亿美元的大型训练集群投入。
  • 节省效应:FlashAttention 可将注意力子模块的时间缩短 50%~70%(来源:FlashAttention‑2 论文),从而将总训练时间减少 10%~30%。以 2023 年主流 A100 云租赁价约 2 美元/卡/小时估算,一个消耗 1 万块 A100 训练三个月的项目(约 6480 万卡时,花费约 1.3 亿美元),采用 FlashAttention 后可节省约 1300 万~3900 万美元。多家大模型公司在 2023–2024 年公开的技术报告中均提及因采用高效注意力机制而“显著缩减训练预算”(具体金额未统一披露)。
  • 推理市场:随着长上下文推理需求爆发,FlashDecoding 等技术节省的推理成本同样可观。IDC 预计 2027 年全球 AI 推理市场将达数百亿美元,高效注意力有望持续摊薄单位成本。但暂无针对性的市场细分数据。

综上,FlashAttention 的直接价值隐含在节省的 GPU 时长中,可粗略视作每年为行业节省数亿至数十亿美元级别的训练成本。此估算基于公开价格和提速比例,仅供参考。

10 玩家对比

目前实现注意力高效计算的主要“玩家”包括开源实现、框架内置后端及商业优化库。此处对比各方定位与特点(不构成任何推荐):

玩家主体主要实现硬件支持集成程度性能特征
FlashAttention (FA/FA2)Tri Dao / Together AICUDA 核(官方仓库)NVIDIA Ampere/Hopper 最优;Turing/Volta部分支持;AMD MI系列初步支持PyTorch、Transformers、DeepSpeed 均可直接调用极致优化,A100/H100 上 TFLOPS 利用率最高,长序列前向 3~5× 加速
PyTorch SDPAMetaC++/CUDA 后端可选(含 FlashAttention、Math、Efficient)兼容多种 NVIDIA GPU,自动调度PyTorch 原生,使用极简;torch.compile 可进一步优化自动选择最佳实现;在支持设备上调用 FlashAttention 可获得同等加速,否则回退到性能次优实现
xFormers memory_efficient_attentionMetaCUDA 核 + 部分 Triton 实现广泛 NVIDIA GPU;部分支持 AMD需额外安装,与Transformers对接较早实现融合注意力,性能接近 FA;支持丰富掩码类型,但吞吐略低于 FA2
Triton FlashAttention社区/OpenAITriton 语言实现硬件上需 Triton 编译器支持,运行于 NVIDIA GPU可灵活修改,实验便利性能通常为手写 CUDA 的 80‑95%,但胜在易移植和定制
AMD ROCm FlashAttentionAMD/社区基于 flash-attention 仓库的 HIP 移植AMD Instinct MI200/MI300ROCm 生态初步整合2024 年中期初步达到可用水平,部分模型训练吞吐低于同等级 NVIDIA GPU(来源:AMD 社区基准,2024)
商业推理引擎(如 TensorRT‑LLM)NVIDIA插件形式集成 FlashAttention/FlashDecodingNVIDIA H100/L40S 等专为推理优化,需模型转换推理延迟极低,支持动态批处理,专有闭源部分优化

注:性能表现为综合 2023–2024 年公开基准和社区反馈,不同场景(训练、推理、序列长度)会有差异。

11 风险

  • 硬件演进削弱优势:未来 GPU 若大幅增加 SRAM 容量或引入专用注意力引擎(如 H200 的更大显存带宽、B200 的新特性),IO‑aware 软件优化的相对收益可能收窄。不过,目前硬件趋势仍以算力增长快于显存带宽,内存墙问题预计将持续存在(来源:NVIDIA 路线图,2024)。
  • CUDA 生态依赖:核心实现高度绑定 CUDA,跨平台(AMD、Intel 等)移植性能不佳或滞后。虽然 Triton 版本可缓解,但极致性能仍依赖手工 CUDA 优化,构成对 NVIDIA 生态的单点依赖。
  • 替代算法竞争:线性注意力、状态空间模型(如 Mamba)等新锐架构试图在计算复杂度上实现 O(N) 或 O(N d) 突破,若它们在模型质量上达到可接受水平,则对平方级注意力核心算子的需求将下降。2024 年 Mamba‑2 等研究引发关注(来源:arXiv 2024),但短期内替换主流 Transformer 的概率尚不明朗。
  • 实现复杂度与验证成本:定制 CUDA 核维护成本高,新硬件适配慢;用户若需插入自定义掩码或稀疏模式,可能需要理解深层实现,增加工程开销。FlexAttention 和 PyTorch 框架的抽象虽在改善,但生态仍处于快速迭代期。
  • 数值差异的潜在尾部风险:虽然主流验证未发现模型质量问题,但极个别情况(如低精度 FP8 训练配合特定初始化)可能出现非预期的数值行为,需要额外监控。
  • 供应链风险:严重依赖 NVIDIA 工具链和硬件供应;如遇出口管制或产能瓶颈,下游用户无法自由替换为其他硬件平台(若 FlashAttention 不支持)。

12 误读纠偏

  1. “FlashAttention 是近似算法,会降低模型精度”
    错。 它与标准注意力数学上精确等价(softmax 结果一致),浮点累加顺序不同引入的差异无统计影响,不会降低模型损失与下游任务指标。大量训练实践已反复验证。
  2. “只用于训练,推理没用”
    误解。 最初面向训练,但 FlashAttention‑2 及 FlashDecoding 显著优化了长序列推理吞吐。在 vLLM 等框架中,开启 FlashAttention 后长文本生成延迟可降低 30%~50%(来源:vLLM 文档,2023)。
  3. “用了 FlashAttention 就不再有 O(N²) 困扰”
    部分正确。 显存降至 O(N),但计算复杂度理论上仍是 O(N²)。当序列极长(百万 token 级),纯注意力计算本身可能成为耗时瓶颈,仍需结合稀疏化或线性注意力。
  4. “任何 GPU 都能完美运行”
    不准确。 需较新的 GPU 架构(Compute Capability 7.5 以上,部分功能需 8.0+)。老款 V100 在特定实现下性能提升有限,且可能不支持最新版本。
  5. “与标准注意力结果完全比特一致”
    错误。 因为累加顺序不同,会有极微小的位级差异。但数值误差通常在 dropout、量化的背景噪声范围内,不影响训练稳定性。
  6. “统一替代所有注意力,无需其他技术”
    过于简化。 FlashAttention 主要针对密集注意力,对于极稀疏模式或非标准掩码,可能需要 FlexAttention 或其他定制实现。它是一块关键拼图,但不是唯一解。

13 最新事件

  • 2024 年 7 月:PyTorch 引入 FlexAttention
    PyTorch 2.4 版本发布 FlexAttention API,允许用户在 Python 层面定义任意注意力掩码(滑动窗口、因果、双向混合等),底层利用 FlashAttention 式的分块融合内核来自动编译高效实现。这大幅降低了定制注意力优化的门槛(来源:PyTorch 官方博客,2024 年 7 月)。
  • 2024 年 8 月:FlashAttention‑3 发布
    Tri Dao 团队在 arXiv 公开 FlashAttention‑3,专门针对 NVIDIA H100/H800 的 Hopper 架构。利用张量内存加速器(TMA)和异步指令,将 FP16 前向计算效率提升至 H100 理论峰值的约 75%,峰值吞吐量超过 1.3 PetaFLOPS/s,且原生支持 FP8 训练。相比 FlashAttention‑2,在 16k 序列上端到端训练吞吐提升最高达 1.5~2 倍(来源:arXiv:2407.xxxxx,2024)。
  • 2024 年 9 月:AMD MI300X 上的进展
    AMD 发布 ROCm 6.0,宣布与 Tri Dao 合作,在 MI300X 上初步实现对 FlashAttention‑2 的支持,并公布若干基准。在 Llama 2 70B 推理中,使用该实现的长序列吞吐能力有所提升,但仍落后于同代 H100(来源:AMD 社区博客,2024 年 9 月)。
  • 2024 年第四季度:长上下文模型集中发布
    Anthropic Claude 3.5 Sonnet/Opus(200k)、Google Gemini 1.5 Pro(1M token 上下文)等模型将超长上下文推向商用。这些模型的技术报告中均提及高效注意力实现(如 FlashAttention)的关键作用(来源:各家公司官方公告,2024 年下半年)。
  • 2025 年初:FlashAttention 成为 PyTorch 默认 SDPA 后端默认推荐
    自 PyTorch 2.5 起,对于满足条件的输入和 GPU,scaled_dot_product_attention 默认优先选择 FlashAttention 内核,进一步巩固事实标准地位(来源:PyTorch 2.5 release notes,2024 年 10 月)。

14 跟踪指标

  • 开源采用:GitHub 仓库 Dao-AILab/flash-attention 的 star 数、issue 活跃度、版本发布频率;PyTorch 的 torch.backends.cuda.sdp_kernel 中 FlashAttention 默认开启情况。
  • 框架集成深度:Hugging Face Transformers 中标注为“可使用 FlashAttention 加速”的模型数量(2024 年底已覆盖 GPT、Llama、Falcon、Mistral、BLOOM 等 50+ 架构);vLLM、TGI 等推理引擎的默认注意力实现路径。
  • 性能基准:MLPerf Training 及 Inference 榜单中,LLM 模型使用的注意力实现类型;独立机构(如 LMSys、Epoch AI)发布的标准化长序列训练/推理吞吐基准(N=8k, 32k, 64k)上 FlashAttention 的提升倍率。
  • 长上下文支持:各大模型发布的上下文窗口长度(如 32k、128k、200k、1M),以及技术报告中是否明确提及采用 FlashAttention 或衍生技术。
  • 硬件支持:NVIDIA cuDNN 及 CUDA 工具包中是否直接包含 FlashAttention 内核;AMD ROCm 对 FlashAttention‑2/3 的支持版本与实现性能差距。
  • 学术引用与衍生:FlashAttention 论文(NeurIPS 2022)累计引用数;FlashAttention‑2、‑3 论文的发表及引用;基于 Triton 等语言的复现/改进项目活跃度。
  • 成本节省案例:公开的云厂商或模型公司关于节省训练 GPU‑小时的具体数据(需注意区分宣传与实际审计数据)。
  • 新硬件适配:Intel Gaudi、SambaNova 等非 GPU 架构是否推出类似 IO‑aware 注意力实现。

15 信源

  • Dao, T. et al. “FlashAttention: Fast and Memory‑E
source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型