Repolode
Dao-AILab

Dao-AILab/flash-attention

FlashAttention 官方实现,一种节省显存的精确注意力计算内核,用于 GPU 上 Transformer 模型的训练与推理。

Star
25,163
Fork
3,175
未关闭 Issue
1,382
最近提交
11小时前

这是什么?

FlashAttention 是一个用于 Transformer 模型的精确注意力实现,可以降低 GPU 显存占用并加快注意力计算。标准注意力的显存随序列长度呈平方增长,而 FlashAttention 在得到相同结果的同时,显存随序列长度线性增长,因此能在 GPU 上处理更长的序列。

仓库包含面向 NVIDIA CUDA(Ampere、Ada、Hopper 架构 GPU)和 AMD ROCm 的 FlashAttention-2,面向 Hopper GPU 的 FlashAttention-3,以及使用 CuTeDSL 编写、面向 Hopper 与 Blackwell GPU 的 FlashAttention-4。Python 接口涵盖普通注意力、变长序列、打包 QKV 以及 KV cache 推理,并支持 causal mask、滑动窗口注意力、ALiBi、MQA/GQA、dropout 和 softcapping。

通过 pip 安装,需要 PyTorch 以及 CUDA 或 ROCm 工具包,主要支持 Linux 平台。

核心功能

  • 01以精确方式计算注意力,显存占用随序列长度线性增长。
  • 02支持 causal mask、滑动窗口局部注意力和 ALiBi。
  • 03通过 KV 头数少于 Q 头数的方式支持 MQA 和 GQA。
  • 04提供分页 KV cache,以及用于增量解码的原地 KV cache 更新。
  • 05为 NVIDIA GPU 提供 CUDA 版本,为 AMD GPU 提供 Triton 与 CK 后端。

适用场景

  • 在 A100 或 H100 等 NVIDIA GPU 上训练长序列的大型 Transformer 语言模型。
  • 结合增量解码与分页 KV cache 进行 LLM 推理服务。
  • 通过 ROCm 后端在 AMD Instinct GPU 上运行注意力计算。

快速上手

  1. 1

    安装构建依赖:packaging、psutil 和 ninja

  2. 2

    从 PyPI 安装 FlashAttention

    pip install flash-attn --no-build-isolation

使用前须知

  • 官方仅支持 Linux;Windows 编译测试尚不充分。
  • 需要 CUDA 或 ROCm 工具包以及受支持的 GPU,CUDA 下如 Ampere、Ada 或 Hopper。
  • 从源码编译可能很慢且占用大量内存,若未使用 ninja 或限制并行任务数更是如此。

标签

常见问题

flash-attention 是什么?
FlashAttention 官方实现,一种节省显存的精确注意力计算内核,用于 GPU 上 Transformer 模型的训练与推理。 FlashAttention 是一个用于 Transformer 模型的精确注意力实现,可以降低 GPU 显存占用并加快注意力计算。标准注意力的显存随序列长度呈平方增长,而 FlashAttention 在得到相同结果的同时,显存随序列长度线性增长,因此能在 GPU 上处理更长的序列。
flash-attention 可以免费使用吗?用的什么许可证?
flash-attention 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
flash-attention 还在维护吗?
活跃维护中。flash-attention 最近一次提交是在 2026年10月20日。
flash-attention 适合用来做什么?
在 A100 或 H100 等 NVIDIA GPU 上训练长序列的大型 Transformer 语言模型。 结合增量解码与分页 KV cache 进行 LLM 推理服务。 通过 ROCm 后端在 AMD Instinct GPU 上运行注意力计算。
flash-attention 怎么安装和运行?
安装构建依赖:packaging、psutil 和 ninja 从 PyPI 安装 FlashAttention: pip install flash-attn --no-build-isolation
在哪里获取 flash-attention?
源代码和安装说明在 GitHub 上:https://github.com/Dao-AILab/flash-attention

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目