---
title: "FlashAttention"
source: "https://systems-analysis.info/wiki/FlashAttention"
wiki: "systems-analysis.info/wiki"
article: "FlashAttention"
language: "ru"
categories:
  - "Категория:Russian"
  - "Категория:Большие языковые модели"
  - "Категория:Машинное обучение"
revision_id: 98
wiki_created_at: 2026-09-06T21:54:58Z
wiki_modified_at: 2026-09-06T21:54:58Z
downloaded_at: 2026-09-07T22:17:24Z
---

# FlashAttention

**FlashAttention** — это революционный алгоритм вычисления механизма внимания (attention), разработанный для значительного ускорения обучения и инференса [больших языковых моделей (LLM)](https://systems-analysis.info/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8 "Большие языковые модели") при сохранении полной точности вычислений. Алгоритм был впервые представлен в 2022 году командой исследователей из Стэнфордского университета под руководством **Три Дао** (Tri Dao)<sup>[\[1\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-arxiv_main-1)</sup>.

Ключевая идея FlashAttention заключается в реорганизации вычислений с учётом иерархии памяти GPU, что позволяет минимизировать количество обращений к медленной памяти и устранить главное узкое место стандартного механизма внимания.

## Проблематика стандартного внимания

Стандартный механизм самовнимания в трансформерах вычисляется по формуле: $\text{Attention}(Q,K,V) = \text{softmax}\left( \frac{QK^{T}}{\sqrt{d_{k}}} \right)V$ где Q, K, V — это матрицы запросов, ключей и значений.

Основная проблема этого подхода — **квадратичная сложность** по времени и памяти (O(N²)) относительно длины последовательности N<sup>[\[1\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-arxiv_main-1)</sup>. При наивной реализации необходимо вычислять и хранить в памяти GPU полную матрицу внимания **S** размером N×N, что приводит к двум критическим проблемам:

1.  **Большое потребление памяти**: Хранение матрицы N×N становится невозможным при работе с длинными контекстами.
2.  **Операции ввода-вывода (IO)**: Главным узким местом является не количество арифметических операций, а постоянные обращения к медленной памяти GPU.

### Иерархия памяти GPU

Для понимания проблемы важно различать два типа памяти в GPU (на примере NVIDIA A100):

- **SRAM** (статическая память): Быстрая внутрикристаллическая память малого объёма (~20 МБ) с огромной пропускной способностью (до **19 ТБ/с**).
- **HBM** (высокопропускная память): Медленная память большого объёма (40–80 ГБ) с гораздо меньшей пропускной способностью (около **1.5 ТБ/с**)<sup>[\[2\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-openreview_fa1-2)</sup>.

Эта асимметрия делает стандартный алгоритм внимания **ограниченным пропускной способностью памяти** (memory-bound), так как он постоянно читает и записывает большие матрицы из медленной HBM, что и является главным источником задержек.

## Ключевые инновации FlashAttention

FlashAttention является **IO-осведомлённым** (IO-aware) алгоритмом, который решает проблему путём минимизации обращений к HBM. Это достигается за счёт трёх основных техник.

### Тайлинг и блочная обработка

Вместо обработки всей матрицы целиком, FlashAttention разбивает входные матрицы Q, K, V на небольшие блоки (**тайлы**), которые помещаются в быструю SRAM. Алгоритм последовательно загружает эти блоки, выполняет для них все вычисления внимания и обновляет конечный результат, **не сохраняя полную матрицу внимания** в медленной HBM<sup>[\[1\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-arxiv_main-1)</sup>.

### Онлайн-вычисление Softmax

Ключевым техническим прорывом стало "онлайн" вычисление Softmax. Стандартный Softmax требует знания всех элементов входного вектора для нормализации. FlashAttention использует модифицированный алгоритм, который позволяет вычислять Softmax по частям. Он поддерживает два промежуточных значения (текущий максимум и сумму экспонент), которые обновляются по мере обработки новых блоков, что позволяет получить точный результат без доступа ко всей матрице сразу<sup>[\[2\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-openreview_fa1-2)</sup>.

### Слияние операций в одно ядро CUDA

Все операции внимания (матричное умножение QKᵀ, маскирование, Softmax, умножение на V) объединены в **единое слитое ядро CUDA** (fused kernel). Это кардинально сокращает количество операций чтения/записи в HBM: вместо многократных проходов по всей матрице алгоритм загружает блок в SRAM один раз, выполняет все вычисления и записывает только конечный результат.

## Теоретическая и практическая эффективность

### Сложность и оптимальность

FlashAttention снижает потребление памяти с O(N²) до **O(N)**, что обеспечивает линейное масштабирование. Было доказано, что IO-сложность алгоритма является **теоретически оптимальной** для вычисления внимания в двухуровневой иерархии памяти, то есть быстрее выполнить точное внимание невозможно без изменения аппаратной части<sup>[\[3\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-ieee_spectrum_2022-3)</sup>.

### Эмпирические результаты

Первая версия FlashAttention продемонстрировала значительные улучшения:

- **Ускорение**:
  - [BERT](https://systems-analysis.info/wiki/BERT "BERT")-large (длина 512): **15%** ускорение обучения.
  - GPT-2 (длина 1K): **3-кратное** ускорение.
  - Задачи Long-Range Arena (1K-4K): **2.4-кратное** ускорение<sup>[\[1\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-arxiv_main-1)</sup>.
- **Экономия памяти**: До **20-кратной** экономии памяти по сравнению с точными базовыми реализациями.
- **Улучшение качества моделей**: Благодаря возможности работать с более длинными контекстами, FlashAttention не только не теряет, но и улучшает качество моделей. Например, [перплексия](https://systems-analysis.info/wiki/%D0%9F%D0%B5%D1%80%D0%BF%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%8F "Перплексия") GPT-2 улучшилась на 0.7 пункта, а точность в задачах классификации длинных документов выросла на 6.4 пункта<sup>[\[1\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-arxiv_main-1)</sup>.

## Эволюция и дальнейшие разработки

Успех FlashAttention положил начало целой серии аппаратно-ориентированных алгоритмов.

### FlashAttention-2 (2023)

Вторая версия была нацелена на более полное использование ресурсов GPU. В оригинальном FlashAttention эффективность на NVIDIA A100 составляла лишь 25–40% от максимума. FlashAttention-2 ввела улучшения в параллелизации вычислений, что позволило<sup>[\[4\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-tridao_flash2-4)</sup>:

- Достичь **двукратного** ускорения по сравнению с первой версией.
- Увеличить утилизацию GPU до **50–73%** от теоретического максимума.
- Расширить поддержку до голов внимания размером 256, а также для архитектур Multi-Query Attention (MQA).

### FlashAttention-3 (2024)

Третья версия была оптимизирована специально для архитектуры GPU **NVIDIA Hopper (H100)**<sup>[\[5\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-pytorch_blog_fa3-5)</sup>. Она использует новые аппаратные возможности, такие как **асинхронность Tensor Cores** и поддержку **FP8**, что позволило:

- Достичь ещё **1.5–2-кратного** ускорения по сравнению с [FlashAttention-2](https://systems-analysis.info/wiki/FlashAttention-2 "FlashAttention-2").
- Достичь производительности до **740 TFLOPS** на FP16 и близко к **1.2 PFLOPS** на FP8.

### Специализированные решения

Идеи FlashAttention были развиты в других проектах:

- **FlashInfer** (2025): Настраиваемый движок внимания, оптимизированный специально для задач инференса LLM. Он фокусируется на эффективной работе с KV-кэшем в режиме потоковой генерации<sup>[\[6\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-arxiv_flashinfer-6)</sup>.
- **FlashMLA** (2024): Реализация внимания со сжатием контекстного кэша (*latent attention*), позволяющая экономить память на очень длинных последовательностях с минимальной потерей информации<sup>[\[7\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-github_flashmla-7)</sup>.

## Влияние на индустрию и экосистему

FlashAttention стал фундаментальным прорывом и быстро превратился в **стандарт индустрии** для эффективного обучения и инференса LLM. Он был интегрирован в ключевые библиотеки, такие как PyTorch и Hugging Face, и используется в большинстве крупных языковых моделей ([LLaMA](https://systems-analysis.info/wiki/LLaMA "LLaMA"), MPT, [Falcon](https://systems-analysis.info/wiki/Falcon "Falcon"), [Claude](https://systems-analysis.info/wiki/Claude "Claude") и др.).

Именно FlashAttention и его последующие версии сыграли решающую роль в увеличении **[контекстных окон](https://systems-analysis.info/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BD%D0%BE%D0%B5_%D0%BE%D0%BA%D0%BD%D0%BE "Контекстное окно")** языковых моделей: с 2–4 тыс. [токенов](https://systems-analysis.info/wiki/%D0%A2%D0%BE%D0%BA%D0%B5%D0%BD "Токен") (GPT-3) до 128 тыс. токенов (GPT-4) и даже до миллионов токенов в экспериментальных моделях<sup>[\[8\]](https://systems-analysis.info/wiki/FlashAttention#cite_note-medium_evolution-8)</sup>. Алгоритм устранил одно из главных препятствий на пути масштабирования трансформеров, открыв новые возможности для приложений ИИ, от анализа длинных документов до мультимодального понимания.

## См. также

- [FlashAttention-3](https://systems-analysis.info/wiki/FlashAttention-3 "FlashAttention-3")
- [BERT](https://systems-analysis.info/wiki/BERT "BERT")
- [Архитектуры LLM](https://systems-analysis.info/wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D1%8B_LLM "Архитектуры LLM")
- [Перплексия](https://systems-analysis.info/wiki/%D0%9F%D0%B5%D1%80%D0%BF%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%8F "Перплексия")
- [Большие языковые модели](https://systems-analysis.info/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8 "Большие языковые модели")

## Ссылки

- <a href="https://github.com/Dao-AILab/flash-attention" class="external text" rel="nofollow">Официальный репозиторий FlashAttention на GitHub</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>.
- 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>.
- 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>.
- Hong, K. 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>.
- 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>.
- 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. (2025). *FlashMask: Efficient and Rich Mask Extension of FlashAttention*. <a href="https://openreview.net/forum?id=wUtXB43Chi" class="external text" rel="nofollow">OpenReview wUtXB43Chi</a>.
- Dao, T. et al. (2022). *FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness* (OpenReview version). <a href="https://openreview.net/forum?id=H4DqfPSibmx" class="external text" rel="nofollow">OpenReview H4DqfPSibmx</a>.
- Gholami, A. et al. (2024). *FlashAttention on a Napkin: A Diagrammatic Approach to Deep Learning IO-Awareness*. <a href="https://openreview.net/forum?id=pF2ukh7HxA" class="external text" rel="nofollow">OpenReview pF2ukh7HxA</a>.

## Примечания

1.  <span id="cite_note-arxiv_main-1">↑ <sup>[1,0](https://systems-analysis.info/wiki/FlashAttention#cite_ref-arxiv_main_1-0)</sup> <sup>[1,1](https://systems-analysis.info/wiki/FlashAttention#cite_ref-arxiv_main_1-1)</sup> <sup>[1,2](https://systems-analysis.info/wiki/FlashAttention#cite_ref-arxiv_main_1-2)</sup> <sup>[1,3](https://systems-analysis.info/wiki/FlashAttention#cite_ref-arxiv_main_1-3)</sup> <sup>[1,4](https://systems-analysis.info/wiki/FlashAttention#cite_ref-arxiv_main_1-4)</sup> Дао, Три, и др. «FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness». *arXiv:2205.14135* \[cs.LG\], 28 мая 2022 г. <a href="https://arxiv.org/abs/2205.14135" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-openreview_fa1-2">↑ <sup>[2,0](https://systems-analysis.info/wiki/FlashAttention#cite_ref-openreview_fa1_2-0)</sup> <sup>[2,1](https://systems-analysis.info/wiki/FlashAttention#cite_ref-openreview_fa1_2-1)</sup> Дао, Три, и др. «FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness». *OpenReview*. <a href="https://openreview.net/pdf?id=H4DqfPSibmx" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-ieee_spectrum_2022-3">[↑](https://systems-analysis.info/wiki/FlashAttention#cite_ref-ieee_spectrum_2022_3-0) «We're Training AI Twice as Fast This Year as Last». *IEEE Spectrum*. <a href="https://spectrum.ieee.org/mlperf-rankings-2022" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-tridao_flash2-4">[↑](https://systems-analysis.info/wiki/FlashAttention#cite_ref-tridao_flash2_4-0) Дао, Три. «FlashAttention-2». *tridao.me*. <a href="https://tridao.me/publications/flash2/flash2.pdf" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-pytorch_blog_fa3-5">[↑](https://systems-analysis.info/wiki/FlashAttention#cite_ref-pytorch_blog_fa3_5-0) «FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision». *PyTorch Blog*. <a href="https://pytorch.org/blog/flashattention-3/" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-arxiv_flashinfer-6">[↑](https://systems-analysis.info/wiki/FlashAttention#cite_ref-arxiv_flashinfer_6-0) «\[2501.01005\] FlashInfer: Efficient and Customizable Attention Engine for LLM Inference Serving». *arXiv*. <a href="https://arxiv.org/abs/2501.01005" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-github_flashmla-7">[↑](https://systems-analysis.info/wiki/FlashAttention#cite_ref-github_flashmla_7-0) «GitHub - deepseek-ai/FlashMLA: FlashMLA: Efficient MLA decoding kernels». *GitHub*. <a href="https://github.com/deepseek-ai/FlashMLA" class="external autonumber" rel="nofollow">[7]</a></span>
8.  <span id="cite_note-medium_evolution-8">[↑](https://systems-analysis.info/wiki/FlashAttention#cite_ref-medium_evolution_8-0) «The Evolution of Flash Attention: Revolutionizing Transformer Efficiency». *Medium*. <a href="https://medium.com/@sailakkshmiallada/the-evolution-of-flash-attention-revolutionizing-transformer-efficiency-8a039918d507" class="external autonumber" rel="nofollow">[8]</a></span>
