Dao-AILab/flash-attention
Fast and memory-efficient exact attention
What it solves
FlashAttention 是为了让 Transformer 中的 attention 机制变得更快、更节省内存。它解决了内存和时间随序列长度呈二次方增长的缩放问题,这通常会减慢 LLM 在处理长序列时的速度。
How it works
它实现了一种 IO-aware 的精确 attention 算法,可以减少 GPU 高带宽内存与其片上 SRAM 之间的内存读写次数。该项目提供了多个版本 (FlashAttention-2, 3, and 4) 进行增强优化,以适应不同的 GPU 架构,包括 NVIDIA Ampere, Ada, Hopper, and Blackwell, 以及通过通过 Triton 和 Composable Kernel 后端支持 AMD ROCm。
Who it’s for
它主要针对的是正在构建或训练大语言模型的 AI 研究员与工程师,他们需要针对现代 GPU 优化 attention 层,以获得更高的吞吐量与更低的内存使用量。 n
Highlights
- Multi-GPU Architecture Support: 针对 NVIDIA (包括 H100/B200) 和 AMD (MI200/MI300) 硬件的优化内核 (kernels)。
- Inference Optimizations: 包括
flash_attn_with_kvcache以实现高效的增量解码和原位 (in-place) KV cache 更新。 - Advanced Attention Variants: 支援 causal masking, sliding window local attention, 以及 ALiBi (attention with linear bias)。
- Flexible Head Configurations: 支援 Multi-Query Attention (MQA) 和 Grouped-Query Attention (GQA)。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch