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
- 项目