FlashAttention 动效 03
把 GPU 喂饱:FA1 → FA2 的并行与工作划分
FA1 只沿 batch×heads 切分任务;FA2 把序列维度也切开。下面每个小方块代表 A100 的一个 SM(共 108 个),点亮的就是有活干的。
FlashAttention
FlashAttention-2
batch×heads
序列长度 N
SM 占用(≤108 个)
一个线程块内,4 个 warp 怎么分工
少做非 matmul 运算:
FA1 每处理一块都要把输出除以 ℓ 再缩放;FA2 保留未归一化的 Õ,只在最后除一次 ℓ。
FA1
每块 2 次逐元素
FA2
每块 1 次 · 末尾 1 次除