FlashAttention 动效 03

把 GPU 喂饱:FA1 → FA2 的并行与工作划分

FA1 只沿 batch×heads 切分任务;FA2 把序列维度也切开。下面每个小方块代表 A100 的一个 SM(共 108 个),点亮的就是有活干的。

SM 占用(≤108 个)

一个线程块内,4 个 warp 怎么分工

少做非 matmul 运算:FA1 每处理一块都要把输出除以 ℓ 再缩放;FA2 保留未归一化的 Õ,只在最后除一次 ℓ。
FA1
每块 2 次逐元素
FA2
每块 1 次 · 末尾 1 次除