FlashAttention-4: Algorithm and Kernel Pipelining Co-Design for Asymmetric Hardware Scaling

本文针对 Blackwell 架构(如 B200)中张量核心与其他功能单元性能扩展不对称的挑战,通过算法与内核流水线协同设计提出了 FlashAttention-4,利用全异步 MMA 操作、软件模拟指数函数及新型内存访问策略,在显著提升推理效率的同时,采用 CuTe-DSL 实现了编译速度与表达能力的双重突破。

Ted Zadouri, Markus Hoehnerbach, Jay Shah, Timmy Liu, Vijay Thakkar, Tri Dao

发布于 2026-03-06
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 FlashAttention-4 的新技术,它就像是为最新一代超级计算机(NVIDIA Blackwell 芯片)量身定做的“超级加速器”。

为了让你轻松理解,我们可以把人工智能(AI)的推理过程想象成一家超级繁忙的餐厅,而FlashAttention就是这家餐厅的主厨团队

1. 背景:餐厅遇到了什么新麻烦?

以前的餐厅(Hopper 芯片,如 H100)里,切菜和炒菜(矩阵乘法,即 AI 的核心计算)的厨师非常厉害,速度很快。但是,餐厅的传菜员(内存带宽)和调料师(指数运算单元)速度没怎么变。

现在,餐厅升级到了Blackwell 芯片(如 B200)

  • 新变化:切菜和炒菜的厨师(Tensor Core)速度直接翻倍了!
  • 新问题:但是,传菜员和调料师还是老样子,甚至更慢了。
  • 结果:厨师炒得再快,菜也端不出去,或者调料跟不上,导致整个厨房堵住了。这就是论文里说的"非对称硬件扩展"带来的瓶颈。

2. FlashAttention-4 的三大绝招

为了解决这个“厨师快、传菜慢”的问题,FlashAttention-4 的主厨团队(作者们)想出了三个绝妙的办法:

绝招一:重新设计流水线(异步流水线)

  • 以前的做法:厨师炒好一盘菜,必须等传菜员把盘子端走,才能炒下一盘。
  • FlashAttention-4 的做法:他们引入了**“异步”机制。厨师炒好一盘菜后,直接放在一个特殊的传送带(Tensor Memory)**上,然后立刻开始炒下一盘,完全不用等传菜员。
  • 比喻:就像在厨房里装了一个自动传送带。厨师只管疯狂炒菜,把菜放在传送带上,传送带自己会运走。这样厨师就再也不用停下来等,效率极大提升。

绝招二:用“土法”代替“高科技”(软件模拟指数运算)

  • 问题:做一道菜(Softmax 算法)需要加一种特殊的“魔法调料”(指数运算)。以前这个调料必须用昂贵的“魔法机器”(硬件指数单元)来加,但这个机器太慢了,而且一次只能加一点点。
  • FlashAttention-4 的做法:既然魔法机器太慢,主厨们决定自己用普通工具(FMA 单元)来模拟加调料。虽然步骤稍微多了一点点,但因为普通工具人手多、速度快,整体效率反而更高。
  • 比喻:就像以前必须等唯一的“特级调酒师”来调酒,现在主厨发现,让一群普通的“学徒”用简单的配方快速调酒,虽然每个人调得简单点,但总量上快多了。

绝招三:双人协作与“去重”(2-CTA 模式与减少原子操作)

  • 问题:在计算反向传播(相当于餐厅复盘,检查哪里做错了)时,两个厨师经常需要同时往同一个记账本上写数字(原子操作),这会导致排队和冲突。
  • FlashAttention-4 的做法
    1. 双人组:让两个厨师(CTA)组成一个小组,共用一个更大的记账本(Tensor Memory),减少去公共仓库(共享内存)拿东西的次数。
    2. 智能记账:如果两个厨师要记的数字差别不大,就暂时不记,等最后统一算总账。这大大减少了大家排队去“前台”(全局内存)登记的次数。
  • 比喻:以前两个厨师都要跑到大厅去同一个收银台结账,经常撞在一起。现在他们直接在小厨房里把账算好,最后只派一个人去大厅交一次总账,省去了很多路费和排队时间。

3. 一个意想不到的惊喜:用 Python 写“魔法咒语”

以前的 FlashAttention 是用 C++ 写的,就像是用古老的羊皮卷写食谱,虽然强大,但写起来非常慢,改一个词都要等很久(编译时间长)。

FlashAttention-4 完全用 Python 和一种叫 CuTe-DSL 的新语言重写。

  • 比喻:这就像是从“手写羊皮卷”升级到了“现代文字处理软件”。
  • 效果:写代码的速度快了 20 到 30 倍!这意味着研究人员可以像搭积木一样,快速尝试新的想法,而不用花几天时间去编译代码。

4. 最终成果:餐厅跑起来了!

在 Blackwell 芯片(B200)上测试,FlashAttention-4 的表现令人惊叹:

  • 比官方自带的库(cuDNN)快 1.3 倍
  • 比流行的开源方案(Triton)快 2.7 倍
  • 它几乎榨干了芯片 71% 的性能,达到了每秒 1613 TFLOPs 的恐怖速度。

总结

FlashAttention-4 的核心思想就是:不要盲目追求计算速度的提升,而要聪明地解决“木桶效应”中最短的那块板。

它通过重新设计工作流程用软件弥补硬件短板优化团队协作,让新一代的 AI 芯片不再因为“传菜慢”而浪费算力。同时,它让开发过程变得像搭积木一样简单,让全世界的 AI 研究者都能更快地做出更聪明的模型。

这就好比,以前我们只关心怎么把刀磨得更快,现在 FlashAttention-4 告诉我们:只要把传菜路线理顺,哪怕刀还是原来的刀,整个餐厅的出餐速度也能翻倍!