Dao-AILab/flash-attention

Fast and memory-efficient exact attention

解决的问题

FlashAttention 优化了 Transformer 模型中的注意力机制,使其更快且更节省内存。它解决了标准注意力运算中高内存与计算开销的问题,具体做法是减少数据在不同 GPU 内存类型之间传输的次数(IO-awareness)。

运作原理

它实现了一种专门的缩放点积注意力(scaled dot product attention)版本,将内存访问降至最低。该项目提供了多个版本(FlashAttention, FlashAttention-2, 3, 和 4),针对不同的 GPU 架构进行了优化,包括 NVIDIA (Ampere, Ada, Hopper, Blackwell) 和 AMD (ROCm)。它支持因果遮罩(causal masking)、滑动窗口局部注意力(sliding window local attention)以及多查询/分组查询注意力(MQA/GQA)等进阶功能。

适用对象

专为机器学习工程师与研究人员设计,他们在训练或部署大型语言模型(LLMs)时,需要最大化 GPU 吞吐量并减少注意力阶段的内存消耗。

特色亮点

  • 多 GPU 架构支持:针对 NVIDIA Hopper (H100) 和 Blackwell (B200) GPU 以及 AMD ROCm 兼容 GPU 优化的核心。
  • 内存效率:减少 IO 开销以加速前向与反向传播。
  • 推理优化:包含支持 KV 缓存的增量解码专用函数。
  • 灵活的注意力模式:支持因果遮罩、ALiBi 斜率与滑动窗口注意力。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目