---
title: "FlashAttention-2 — 闪电注意力-2"
source: "https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2"
wiki: "systems-analysis.info/int"
article: "FlashAttention-2_—_闪电注意力-2"
language: "zh"
categories:
  - "Category:Chinese"
  - "Category:Large language models"
  - "Category:Machine learning"
revision_id: 2219
wiki_created_at: 2026-09-06T23:00:30Z
wiki_modified_at: 2026-09-06T23:00:30Z
downloaded_at: 2026-09-07T22:49:54Z
---

# FlashAttention-2 — 闪电注意力-2

**FlashAttention-2** 是一种先进算法，用于计算大语言模型 (LLM)中的注意力机制 (attention)。该算法由 **Tri Dao** 及斯坦福大学的研究人员开发，于2023年7月发布<sup>[\[1\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_main-1)</sup>。其核心目标是通过更有效地利用 GPU 硬件资源，显著加速 Transformer 模型的训练和推理，同时保持与标准注意力机制的计算结果完全一致，即**无精度损失**。

FlashAttention-2 是同一团队在2022年推出的 **FlashAttention** 算法的逻辑延续。新版本解决了前代版本中存在的 GPU 加载不完全的问题，与第一版相比实现了近两倍的速度提升。

## 背景：Transformer 中的注意力问题

标准的自注意力 (self-attention) 机制是处理 Transformer 中长文本序列时的瓶颈。其计算复杂度和内存消耗随序列长度 (N) 呈**平方级** (O(N²)) 增长，这严重限制了 LLM 的最大上下文长度和可扩展性<sup>[\[1\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_main-1)</sup>。

为解决此问题，2022年推出了 **FlashAttention** 算法<sup>[\[2\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-huggingface_optim-2)</sup>。其核心思想包括：

- **GPU 内存层次结构感知 (IO-awareness)**：该算法最大限度地减少了慢速 GPU 内存 (HBM) 与高速片上静态内存 (SRAM) 之间昂贵的读写操作。
- **分块处理 (tiling)**：将计算分解为小块（tiles），这些块在高速 SRAM 中处理，从而避免在内存中实例化完整的注意力矩阵。

这使得内存消耗实现了**线性**增长 (O(N))，并比标准实现提速2-4倍<sup>[\[2\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-huggingface_optim-2)</sup>。FlashAttention 得到广泛应用，并推动了具有显著增加上下文长度的模型的发展，例如从2-4千个 token (GPT-3) 增加到128千 (GPT-4) 甚至更多<sup>[\[3\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-tridao_blog_fa3-3)</sup>。例如，在 **Falcon-40B** 模型中，使用 FlashAttention 使其推理速度比 GPT-3 快3倍，整体生成性能快5倍<sup>[\[4\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-e2e_analysis-4)</sup>。

## FlashAttention-2 的开发与目标

尽管取得了成功，第一版 FlashAttention 并未完全利用 GPU 的计算资源。在 **NVIDIA A100** 显卡上，性能仅达到理论峰值 (FLOPs/s) 的 **25–40%**<sup>[\[1\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_main-1)</sup>。主要原因是流式多处理器 (Streaming Multiprocessors) 的负载不理想以及对共享内存的冗余操作<sup>[\[5\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-openreview_fa2-5)</sup>。

**FlashAttention-2** 的目标是通过更高效的并行化和最小化辅助操作来进一步加速计算。该算法使用底层库 **NVIDIA CUTLASS 3.x** 的原语完全重写，以实现最高性能<sup>[\[6\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-hazyresearch_blog-6)</sup>。

## 技术架构与工作原理

FlashAttention-2 引入了三项关键改进，以提高并行性和效率<sup>[\[1\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_main-1)</sup>：

### 1. 最小化非矩阵运算

该算法减少了非矩阵乘法 (non-matmul FLOPs) 的浮点运算数量。由于 GPU 的张量核心 (tensor cores) 专为矩阵运算 (GEMM) 优化，执行速度可快达16倍，这一变更使得大部分时间都能利用 GPU 最高效的计算单元。

### 2. 改进并行性

在最初的 FlashAttention 中，单个注意力头的计算没有并行化，导致在长序列和小批量大小的情况下出现闲置。FlashAttention-2 引入了**块间并行化**：现在，单个注意力头的计算被分配到 GPU 的不同流式多处理器上，从而显著提高了它们的负载。

### 3. 优化块内工作划分

在单个计算块的层面上，工作在线程束 (warps) 之间进行了重新分配，以减少通过共享内存 (shared memory) 的数据交换。这减少了 Softmax 归一化所需的冗余读写操作。

## 性能与效率

得益于架构上的改进，FlashAttention-2 展现出显著的性能提升：

- **两倍加速**：该算法的运行速度大约是第一版 FlashAttention 的**2倍**<sup>[\[1\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_main-1)</sup>。
- **高 GPU 利用率**：在 **NVIDIA A100** GPU 上，达到了理论最大吞吐量 (TFLOPs) 的 **50–73%**，接近于优化的矩阵乘法运算 (GEMM) 的效率<sup>[\[1\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_main-1)</sup>。
- **创纪录的计算速度**：
  - 在 **A100** GPU 上，GPT 类型模型的端到端训练循环中，速度高达 **225 TFLOP/s**，相当于72%的计算单元利用率。相比之下，在相同条件下，标准注意力的 GPU 负载低于100 TFLOP/s<sup>[\[7\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_pdf-7)</sup>。
  - 在 **H100** GPU 上，性能达到 **335 TFLOP/s**<sup>[\[7\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_pdf-7)</sup>。

这样的性能提升使得，例如，训练一个上下文窗口为 **16k** token 的模型所需的时间，与之前训练 **8k** token 窗口的时间相同<sup>[\[5\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-openreview_fa2-5)</sup>。重要的是，该算法保持了**精确性**和确定性，因此其应用不会影响模型的预测质量<sup>[\[8\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-raschka_blog-8)</sup>。

## 应用与生态系统集成

FlashAttention-2 迅速成为 LLM 生态系统中的标准工具。它已被集成到许多流行的框架和库中：

- **PyTorch**：原生支持。
- **Hugging Face Transformers**：加载模型时通过 \`attn_implementation="flash_attention_2"\` 参数启用<sup>[\[9\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-linkedin_younes-9)</sup>。与数十种架构（如 GPT、Llama、Falcon、BERT 等）兼容<sup>[\[10\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-huggingface_gpu_infer-10)</sup>。
- **TensorRT-LLM**, **xFormers** 和 **Triton**：该算法也为这些平台实现，确保了其广泛应用<sup>[\[7\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_pdf-7)</sup>。

这种集成使得 FlashAttention-2 可以轻松地与量化 (GPTQ, QLoRA) 和高效微调 (PEFT) 等其他优化方法结合使用<sup>[\[9\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-linkedin_younes-9)</sup>。

## 与后续版本的比较

### FlashAttention-3 - FlashAttention-3

注意力优化的研究仍在继续。2024年7月，Tri Dao 推出了 **FlashAttention-3**，旨在利用 **NVIDIA Hopper** 架构 (H100/H200) GPU 的能力。其关键创新包括<sup>[\[3\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-tridao_blog_fa3-3)</sup>：

- **支持 FP8**：使用8位浮点计算以进一步加速。
- **异步操作**：更有效地利用 GPU 的异步功能。

在 H100 GPU 上，FlashAttention-3 比 FlashAttention-2 提速 **1.5–2倍**，性能高达 **740 TFLOP/s**（理论峰值的75%）<sup>[\[11\]](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_note-arxiv_fa3-11)</sup>。

## 参考文献

- Dao, T. (2023). *FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning*. <a href="https://arxiv.org/abs/2307.08691" class="external text" rel="nofollow">arXiv:2307.08691</a>.
- Dao, T. et al. (2022). *FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness*. <a href="https://arxiv.org/abs/2205.14135" class="external text" rel="nofollow">arXiv:2205.14135</a>.
- Shah, J. et al. (2024). *FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision*. <a href="https://arxiv.org/abs/2407.08608" class="external text" rel="nofollow">arXiv:2407.08608</a>.
- Kwon, W. et al. (2023). *Efficient Memory Management for Large Language Model Serving with PagedAttention*. <a href="https://arxiv.org/abs/2309.06180" class="external text" rel="nofollow">arXiv:2309.06180</a>.
- Ye, Z. et al. (2025). *FlashInfer: Efficient and Customizable Attention Engine for LLM Inference Serving*. <a href="https://arxiv.org/abs/2501.01005" class="external text" rel="nofollow">arXiv:2501.01005</a>.
- Chen, Y. et al. (2023). *FlashDecoding++: Faster Large Language Model Inference on GPUs*. <a href="https://arxiv.org/abs/2311.01282" class="external text" rel="nofollow">arXiv:2311.01282</a>.
- Liu, Y. et al. (2024). *FastAttention: Extending FlashAttention-2 to NPUs and Low-Resource GPUs*. <a href="https://openreview.net/forum?id=76NYyOrnfk" class="external text" rel="nofollow">OpenReview: 76NYyOrnfk</a>.
- Dege, P. et al. (2025). *FlashMLA-ETAP: Efficient Transpose Attention Pipeline for Accelerating MLA Inference on NVIDIA H20 GPUs*. <a href="https://arxiv.org/abs/2506.01969" class="external text" rel="nofollow">arXiv:2506.01969</a>.
- Wang, G. et al. (2024). *FlashMask: Efficient and Rich Mask Extension of FlashAttention*. <a href="https://openreview.net/forum?id=rog0J435OO" class="external text" rel="nofollow">OpenReview: rog0J435OO</a>.
- Abbott, V.; Zardini, G. (2025). *FlashAttention on a Napkin: A Diagrammatic Approach to Deep Learning IO-Awareness*. <a href="https://arxiv.org/abs/2412.03317" class="external text" rel="nofollow">arXiv:2412.03317</a>.

## 注释

1.  <span id="cite_note-arxiv_main-1">↑ <sup>[1.0](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_main_1-0)</sup> <sup>[1.1](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_main_1-1)</sup> <sup>[1.2](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_main_1-2)</sup> <sup>[1.3](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_main_1-3)</sup> <sup>[1.4](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_main_1-4)</sup> <sup>[1.5](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_main_1-5)</sup> Dao, Tri. "FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning". *arXiv:2307.08691* \[cs.LG\], 2023年7月17日. <a href="https://arxiv.org/abs/2307.08691" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-huggingface_optim-2">↑ <sup>[2.0](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-huggingface_optim_2-0)</sup> <sup>[2.1](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-huggingface_optim_2-1)</sup> “Optimizing LLMs for Speed and Memory”. *Hugging Face Documentation*. <a href="https://huggingface.co/docs/transformers/v4.42.0/en/llm_tutorial_optimization" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-tridao_blog_fa3-3">↑ <sup>[3.0](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-tridao_blog_fa3_3-0)</sup> <sup>[3.1](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-tridao_blog_fa3_3-1)</sup> Dao, Tri. “FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision”. *Tri Dao's Blog*. <a href="https://tridao.me/blog/2024/flash3/" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-e2e_analysis-4">[↑](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-e2e_analysis_4-0) “FlashAttention vs FlashAttention-2 - an Analysis”. *E2E Networks Blog*. <a href="https://www.e2enetworks.com/blog/shades-of-attention-flashattention-vs-flashattention-2-a-comprehensive-study" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-openreview_fa2-5">↑ <sup>[5.0](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-openreview_fa2_5-0)</sup> <sup>[5.1](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-openreview_fa2_5-1)</sup> “FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning”. *OpenReview*. <a href="https://openreview.net/forum?id=mZn2Xyh9Ec" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-hazyresearch_blog-6">[↑](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-hazyresearch_blog_6-0) “FlashAttention-2”. *Hazy Research, Stanford University*. <a href="https://hazyresearch.stanford.edu/blog/2023-07-17-flash2" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-arxiv_pdf-7">↑ <sup>[7.0](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_pdf_7-0)</sup> <sup>[7.1](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_pdf_7-1)</sup> <sup>[7.2](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_pdf_7-2)</sup> Dao, Tri. “FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning” (PDF). *arXiv:2307.08691*. <a href="https://arxiv.org/pdf/2307.08691.pdf" class="external autonumber" rel="nofollow">[7]</a></span>
8.  <span id="cite_note-raschka_blog-8">[↑](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-raschka_blog_8-0) Raschka, Sebastian. “Llama 2 and FlashAttention 2”. *Ahead of AI Magazine*. <a href="https://magazine.sebastianraschka.com/p/research-highlights-in-three-sentences" class="external autonumber" rel="nofollow">[8]</a></span>
9.  <span id="cite_note-linkedin_younes-9">↑ <sup>[9.0](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-linkedin_younes_9-0)</sup> <sup>[9.1](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-linkedin_younes_9-1)</sup> Belkada, Younes. “Faster and more memory efficient models with Flash Attention 2!”. *LinkedIn*. <a href="https://www.linkedin.com/posts/younes-belkada-b1a903145_flashattention-llms-activity-7112061650106474496-1dzz" class="external autonumber" rel="nofollow">[9]</a></span>
10. <span id="cite_note-huggingface_gpu_infer-10">[↑](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-huggingface_gpu_infer_10-0) “GPU inference”. *Hugging Face Documentation*. <a href="https://huggingface.co/docs/transformers/v4.39.0/perf_infer_gpu_one" class="external autonumber" rel="nofollow">[10]</a></span>
11. <span id="cite_note-arxiv_fa3-11">[↑](https://systems-analysis.info/int/FlashAttention-2_%E2%80%94_%E9%97%AA%E7%94%B5%E6%B3%A8%E6%84%8F%E5%8A%9B-2#cite_ref-arxiv_fa3_11-0) Dao, Tri, et al. “FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision”. *arXiv:2407.08608* \[cs.LG\], 2024年7月11日. <a href="https://arxiv.org/abs/2407.08608" class="external autonumber" rel="nofollow">[11]</a></span>
