在RTX GPU上探索FlashAttention-3/4优化
摘要
本文探讨了FlashAttention-3/4优化是否对RTX GPU有益,得出结论:由于消费级显卡的硬件限制,FA-2已是天花板。
我很好奇FA-3/4的优化是否能在RTX GPU上发挥作用。vLLM/SGLang的注意力机制在消费级显卡上回退到FA-2(FA-3和FA-4仅限数据中心),因此我想知道是否还有性能提升空间,于是从头重建了注意力内核。该内核达到了与FA-2相同的性能(在RTX5090上,batch=1, heads=8, seq_len=4096, head_dim=64时为206微秒),但遗憾的是,FA-3/4的优化在消费级显卡上要么不适用,要么没有帮助。看来FA-2就是天花板了。总结一下:更快的张量核心指令(WGMMA)是FA-3背后的主要杠杆,但RTX GPU并不支持。TMA(张量内存加速器)在sm_120(RTX 5XXX)上可用。理论上它有帮助(LSU减少),但数据传输并非瓶颈,因此最终数值几乎没有变化。Warp特化也可用,但它主要是一种调度优化,即有助于消除流水线气泡并更好地利用张量核心,但缺少异步张量核心指令。结果是负面的:213微秒对比206微秒。在FA-4中,他们还使用FMA指令模拟了exp函数,因为B200上的张量核心速度极快,整个流水线变成了SFU(特殊函数单元)受限。RTX 5090是张量核心受限,因此这项优化也无意义。事实上,即使使用更快的exp2f替代expf进行softmax这种常规优化,数值也纹丝不动。我还尝试了一些可能在消费级芯片上起效的其他优化,例如更深的流水线和寄存器乒乓。但没有成功。由于整个流水线是张量流水线受限,我相信FA-2就是天花板,任何有意义的杠杆都需要牺牲一些精度来利用更快、更低精度的张量核心。请注意,这是对常规注意力机制的探索,它主导了预填充和计算受限阶段。针对大型KV缓存的解码则是另一个内存受限的故事,其中split-KV/Flash-Decoding比上述任何优化都更重要。完整文章:https://riftstack.ai/research/learning-flashattention-the-hard-way-part-2 Github:github.com/cloudrift-ai/emmy
相似文章
@levidiamode: GPU编程第158/365天——我觉得我大致理解了FlashAttention 2、3和4前向传播的高级区别…
作者记录了学习GPU编程的进展,重点在于理解FlashAttention 2、3和4前向传播的高级区别,并列出了需要进一步探索的几个底层概念。
有人在他们的 V100 上使用 Flash Attention 2 (ai-bond) 吗?性能如何?
一位用户对 Flash Attention 2 的 V100 兼容端口进行了基准测试,报告称相比默认的 PyTorch 注意力机制,速度提升了 3 到 17 倍,内存减少了高达 94%。
@Alacritic_Super: 如果你认真对待LLM推理,学习FlashAttention。它是现代…背后最重要的优化之一。
一条推文推荐在LLM推理中学习FlashAttention,强调其在优化GPU内存流量和加速注意力机制方面的重要性,并附有FlashAttention、FlashAttention-2和FlashAttention-3的GitHub仓库和论文链接。
[基准测试] RTX 5090上的DFlash推测解码与KV缓存压缩 — 3.26倍加速
在 RTX 5090 上对 DFlash 推测解码结合 KV 缓存压缩进行的基准测试显示,针对 Qwen3.6-27B 模型最高可实现 3.26 倍加速,且困惑度下降极小,其中 q4_0/turbo4 提供了最佳平衡。
@superalesha: 别急着埋葬RTX 3090,先读完这个!@UnslothAI本周发布了qwen3.6-35b的两个新4位量化版本。我花了…
对Qwen3.6-35B在RTX 3090上的nvfp4、nvfp4-fast和AWQ 4位量化进行了基准测试,结果显示性能相近,而MTP头技巧将吞吐量提升了41%。