晶片層 開放閱讀

FlashAttention

FlashAttention

概念 ID
flashattention
更新時間
2026-05-29
來源數量
待補

FlashAttention

1 3 秒看懂

FlashAttention 是一種在 GPU 上對 Transformer 自注意力(Self‑Attention)進行高速、低視訊記憶體計算的演算法。它將矩陣乘法、softmax 等步驟融合為單一、極省視訊記憶體讀寫的核心,在不改變最終數學結果的前提下,把長序列的訓練速度提升 2~4 倍,同時將視訊記憶體佔用從 O(N²) 壓至 O(N)——讓大型模型可以被“喂”進更長的文本而不爆視訊記憶體。

2 3 分鐘產業解釋

大語言模型(GPT、Llama、Claude 等)處理超長文本時,標準注意力機制的計算量和視訊記憶體佔用隨序列長度 N 呈平方級(O(N²))膨脹,直接推高訓練與推論成本。FlashAttention 的產業價值在於:

  • 降本增效:用更少的 GPU 資源訓練更長上下文的模型,大幅降低算力費用,使中小企業也能涉足長文本場景。
  • 事實標準:已被 PyTorch、DeepSpeed、Megatron‑LM 等主流架構原生整合。自 2023 年起,幾乎所有長上下文模型(32k、128k 乃至百萬 token)的訓練均預設啟用 FlashAttention。
  • 思維擴散:它開創的 “IO‑aware”(感知視訊記憶體層次)設計思想,正在向整個 Transformer 乃至其他運算元擴充套件——催生出 FlashAttention‑2、FlashDecoding、FlexAttention 等系列技術,驅動 GPU 硬體利用率進入新階段。

3 技術原理

記憶體牆:注意力運算元的真正瓶頸

GPU 計算能力(FLOPS)遠超視訊記憶體頻寬,標準注意力屬於典型的 memory‑bound 操作。其執行過程為:

S = Q @ K^T        (1) 寫入 HBM 矩陣 S (N×N)
P = softmax(S)     (2) 讀 S,寫 P 回 HBM
O = P @ V          (3) 讀 P、V,寫 O

S 和 P 均為 N×N 矩陣。當 N=16k、半精度(FP16)時,單個注意力頭需要寫入約 512 MB 中間資料,而典型 SRAM(如 A100 每個 SM 僅 192 KB 共享記憶體)無法容納,迫使頻繁的 HBM 訪問,頻寬成為效能瓶頸。實測中,標準注意力的 GPU 利用率通常不足 30%。

三大核心機制:分塊 + 線上 softmax + 核心融合

分塊(Tiling)
將 Q、K、V 沿序列維度切成小塊,逐塊載入到高速 SRAM 中計算區域性注意力,避免一次性生成完整的 N×N 中間矩陣。

線上 softmax(Online Softmax)
通過動態維護全域性最大值與歸一化因子,可從區域性塊逐步累積得到與全域性完全一致的 softmax 結果,無需儲存完整的 S 或 P。其迭代邏輯示意:

for each block i:
    S_ij = Q_j @ K_i^T
    m_new = max(m, rowmax(S_ij))
    P_ij = exp(S_ij - m_new)
    l_new = exp(m - m_new)*l + rowsum(P_ij)
    O_j = diag(exp(m - m_new)) * O_j + P_ij @ V_i
    m = m_new; l = l_new

迴圈結束時,O_j 即為精確的注意力輸出。

核心融合(Kernel Fusion)
將整個計算封裝進單個 CUDA 核心,所有中間變數僅在 SRAM 中流轉,完全消除對 HBM 的中間寫回。反向傳播則通過重計算(recomputation)注意力值來進一步減少視訊記憶體需求。

複雜度與效能本質

FlashAttention 將 HBM 訪存量從標準注意力的 O(N²) 降至約 O(N² d² / M),其中 d 為頭維度(典型值 64128),M 為 SRAM 大小。常數因子 d²/M 通常遠小於 1,使得實際訪存大幅減少,長序列場景下運算元從 memory‑bound 轉為 compute‑bound。根據 Dao 等人在 2022 年 NeurIPS 論文中的測試,在 A100 上對 GPT‑2 長序列訓練,前向加速約 24 倍;後續 FlashAttention‑2(2023)在 H100 上進一步將 TFLOPS 利用率提升至 70% 以上(來源:FlashAttention‑2 論文,arXiv 2023)。

數值等價性

由於浮點累加順序不同,FlashAttention 計算結果與標準注意力存在微小的位級差異,但數學上與 softmax 精確等價,訓練和推論精度無統計性影響。該特性已被 PyTorch、Hugging Face 等社群大量驗證,視為安全的直接替換。

4 關鍵引數

以下指標基於主流公開測試,主要環境為 NVIDIA A100 80GB / H100 80GB,序列長度 8k–16k,頭維度 64–128。

  • 前向加速比:相對標準注意力,FlashAttention 前向加速 24 倍;FlashAttention‑2 可達 35 倍(來源:Tri Dao 等 2022、2023 論文;xFormers 0.0.22 基準)。
  • 視訊記憶體節省:從 O(N²) 降至 O(N)。對於 N=64k、40 個注意力頭的典型配置,標準注意力需約 32 GB 儲存中間矩陣,FlashAttention 僅需約 1 GB(估算,來源:Tri Dao 部落格 2023)。實際訓練中可支援增加 batch size 或加倍上下文長度。
  • GPU 利用率:標準注意力通常低於 30% A100 峰值;FlashAttention‑2 在 H100 上可達 50–75%(來源:FlashAttention‑2 論文,2023)。第三代 FlashAttention‑3(2024)利用 H100 的 TMA 和 FP8 進一步提升至約 75% 且吞吐達 1.3 PetaFLOPS(來源:arXiv 2024)。
  • 序列長度極限:單卡推論可處理 128k+ 序列,訓練穩定支援 64k 級別。公開資料未見 100 萬 token 以上純 FlashAttention 無輔助方案的商用精確資料;百萬級序列通常需結合稀疏或線性注意力。
  • 精確數學等價:無模型質量損失,這一點已在數百個開源模型中得到驗證。

5 技術路線

演進時間線

  • 術前階段(2022 年以前):已出現分塊注意力(BlockSparse)、低秩近似(Linformer、Performer)等方案,但都以犧牲模型質量為代價,且未充分利用視訊記憶體層次。
  • FlashAttention(2022,Dao et al.,NeurIPS):首次將線上 softmax 與分塊融合為單個 CUDA 核,實現無損加速。迅速被 PyTorch 納入 scaled_dot_product_attention 的後端之一。
  • FlashAttention‑2(2023):改進並行策略,減少非矩陣乘計算,更精細化地切分工作到執行緒束,使 H100 利用率突破 70%。同時支援序列長度達 64k。
  • 衍生技術
    • FlashDecoding:專為推論設計,將序列維度並行以顯著降低長序列推論延遲,已在多個開源推論引擎中使用。
    • FlashAttention‑3(2024):針對 Hopper 架構深度最佳化,使用非同步指令和 FP8,實現更高吞吐。
    • FlexAttention(2024,PyTorch):提供通用 API,支援滑動視窗、因果掩碼、自定義稀疏模式等,底層仍受益於分塊融合思想,但靈活性大幅提升。
  • 生態整合:2023 年起,Hugging Face Transformers、PyTorch 2.0 的原生 scaled_dot_product_attention、DeepSpeed、Megatron‑LM 均已預設優先使用 FlashAttention(及後續版本)作為注意力後端。

路線對比:FlashAttention vs 其他注意力方案

特性標準注意力稀疏注意力(如 Longformer)線性注意力(如 Performer)FlashAttention
計算複雜度O(N²d)O(N k d)(k為視窗)O(N d²)O(N²d)(實際常數極低)
視訊記憶體佔用O(N²)O(N k)O(N d)O(N)
數學精度精確近似(結構化稀疏)近似(核函式估計)精確
硬體利用率低(受限於訪存牆)依賴稀疏模式,利用率受限需 d 足夠大,硬體利用中等(特別在長序列時)
實現難度簡單中等較高較高(需編寫或調優 CUDA 核)
長序列訓練加速基準2~5×(依賴稀疏度)1.5~3×2~4×(實際因硬體和長度浮動)
代表釋出Longformer(2020)Performer(2020)FlashAttention(2022)

注:效能資料引用各論文及公開基準,實際結果受模型配置與硬體影響。

6 上游

FlashAttention 的實現與效能依託以下上游要素:

  • GPU 硬體:必須具備可程式設計高速共享記憶體(SRAM)和張量核心。典型為 NVIDIA Volta 及更新架構(SM 7.0+),實際高效需 Ampere(A100,SM 8.0)或 Hopper(H100,SM 9.0)。AMD 的 CDNA 架構(如 MI250、MI300X)通過 ROCm 初步支援,但效能與生態不如 NVIDIA 成熟。
  • 底層庫與編譯器:CUDA C++ 核心編寫或 Triton 語言實現。OpenAI 的 Triton 語言(2022 年開源)極大降低了 IO‑aware 核心的開發門檻,社群已有 Triton 版本的 FlashAttention 實現(來源:Triton 倉庫)。此外,CUTLASS 模板庫也為高效能矩陣乘融合提供基礎。
  • 並行架構:PyTorch 的 scaled_dot_product_attention 後端介面允許靈活選擇實現,依賴 CUDA 工具鏈及驅動。
  • 硬體特性:如 H100 的張量記憶體加速器(TMA)和 FP8 支援,為 FlashAttention‑3 的效率提升創造了條件。上游 GPU 架構的演進直接決定軟體最佳化天花板。

7 下游

FlashAttention 及其衍生技術已滲透到以下關鍵場景:

  • 長上下文大型模型訓練:GPT‑4(128k)、Claude 3(200k)、Llama 3(8k→128k)、Mistral 等模型,在官方技術報告或公開訪談中均承認利用類似 FlashAttention 的高效注意力方案來處理長序列(來源:Meta Llama 3 技術報告,2024;Anthropic 部落格,2024;Mistral 部落格,2023)。
  • 推論部署:FlashDecoding 和 FlashAttention‑2 顯著提升長文本生成吞吐,已被 vLLM、TGI、TensorRT‑LLM 等流行推論架構整合。
  • 多模態模型:高解析度影像(如 ViT)將影像切成大量 patch,形成長序列,FlashAttention 支援高效訓練,被用於 Google PaLI、Meta DINOv2 等(來源:公開論文 2023)。
  • 科學計算:蛋白質序列(AlphaFold 衍生的長序列建模)、DNA 長序列、分子動力學模擬受益於無損注意力加速。
  • 架構整合:PyTorch 2.0+ 預設 scaled_dot_product_attention 可根據輸入與硬體自動選擇 FlashAttention 後端;Hugging Face 的 transformers 庫中數百個模型已內建 FlashAttention 支援,使用者僅需安裝 flash-attn 包即可提速。

8 受益公司

FlashAttention 作為開源演算法,直接創造營收有限,但間接使以下型別廠商顯著受益(均以降低成本、提升效率為主要邏輯,不構成任何投資性評估):

  • 核心開發與生態運營方:Tri Dao 及其團隊(斯坦福 / Together AI)。Together AI 除貢獻開源外,也基於此類高效技術搭建雲端平台,2023 年完成 A 輪融資,估值超 10 億美元(來源:TechCrunch,2023 年 11 月)。其商業模式為提供最佳化過的訓練與推論服務。
  • GPU 與硬體廠商:NVIDIA 是最大受益者——FlashAttention 提升 GPU 實際利用率,降低客戶 TCO,反過來刺激更多需求。NVIDIA 官方多次聯合釋出整合指南(如 Megatron‑LM 搭配 FlashAttention);AMD 通過 ROCm 生態合作,2024 年宣稱在 MI300X 上初步支援 FlashAttention‑2,力圖縮小差距(來源:AMD 官方部落格,2024)。
  • 雲端服務商:AWS、Azure、GCP 等提供 GPU 例項,直接受益於訓練相同模型所需時長縮短;部分雲端廠商推出自研整合,如 AWS 的 P5 例項文件中鼓勵使用 FlashAttention 最佳化 LLM 訓練。
  • AI 平台與模型廠商:Databricks(收購 MosaicML)在 MPT 系列模型訓練中大量應用 FlashAttention,降低客戶微調成本;Meta、微軟、Anthropic 等大規模訓練均內嵌此項最佳化,節約數百萬美元級算力開支。
  • 開源工具鏈:PyTorch(Meta)、Hugging Face 等社群因採納 FlashAttention 增強了自身生態競爭力。

9 市場規模

公開資料未見獨立的 FlashAttention 市場規模測算,因其本身屬於開源演算法,並不直接產生軟體銷售營收。但可從訓練硬體投入和效率提升進行間接估算:

  • AI 訓練硬體支出:根據 Omdia 資料,2023 年資料中心 GPU(用於 AI/ML)總營收約 350 億美元(口徑含 NVIDIA、AMD 等;來源:Omdia 2023 Q4 報告)。AI 伺服器叢集規模持續擴大,2024 年此數字繼續增長(公開資料暫缺確切年度總額)。
  • 注意力算力佔比:產業調研表明,訓練千億引數 Transformer 模型時,注意力運算元消耗的算力約佔總訓練算力的 20%40%(來源:DeepSpeed 技術部落格,2023;Anyscale 部落格,2023)。按此比例,注意力部分的硬體成本在 2023 年間接對應約 70140 億美元的大型訓練叢集投入。
  • 節省效應:FlashAttention 可將注意力子模組的時間縮短 50%~70%(來源:FlashAttention‑2 論文),從而將總訓練時間減少 10%~30%。以 2023 年主流 A100 雲端租賃價約 2 美元/卡/小時估算,一個消耗 1 萬塊 A100 訓練三個月的專案(約 6480 萬卡時,花費約 1.3 億美元),採用 FlashAttention 後可節省約 1300 萬~3900 萬美元。多家大型模型公司在 2023–2024 年公開的技術報告中均提及因採用高效注意力機制而“顯著縮減訓練預算”(具體金額未統一揭露)。
  • 推論市場:隨著長上下文推論需求爆發,FlashDecoding 等技術節省的推論成本同樣可觀。IDC 預計 2027 年全球 AI 推論市場將達數百億美元,高效注意力有望持續攤薄單位成本。但暫無針對性的市場細分資料。

綜上,FlashAttention 的直接價值隱含在節省的 GPU 時長中,可粗略視作每年為行業節省數億至數十億美元級別的訓練成本。此估算基於公開價格和提速比例,僅供參考。

10 玩家對比

目前實現注意力高效計算的主要“玩家”包括開源實現、架構內建後端及商業最佳化庫。此處對比各方定位與特點(不構成任何推薦):

玩家主體主要實現硬體支援整合程度效能特徵
FlashAttention (FA/FA2)Tri Dao / Together AICUDA 核(官方倉庫)NVIDIA Ampere/Hopper 最優;Turing/Volta部分支援;AMD MI系列初步支援PyTorch、Transformers、DeepSpeed 均可直接呼叫極致最佳化,A100/H100 上 TFLOPS 利用率最高,長序列前向 3~5× 加速
PyTorch SDPAMetaC++/CUDA 後端可選(含 FlashAttention、Math、Efficient)相容多種 NVIDIA GPU,自動排程PyTorch 原生,使用極簡;torch.compile 可進一步最佳化自動選擇最佳實現;在支援裝置上呼叫 FlashAttention 可獲得同等加速,否則回退到效能次優實現
xFormers memory_efficient_attentionMetaCUDA 核 + 部分 Triton 實現廣泛 NVIDIA GPU;部分支援 AMD需額外安裝,與Transformers對接較早實現融合注意力,效能接近 FA;支援豐富掩碼型別,但吞吐略低於 FA2
Triton FlashAttention社群/OpenAITriton 語言實現硬體上需 Triton 編譯器支援,運行於 NVIDIA GPU可靈活修改,實驗便利效能通常為手寫 CUDA 的 80‑95%,但勝在易移植和定製
AMD ROCm FlashAttentionAMD/社群基於 flash-attention 倉庫的 HIP 移植AMD Instinct MI200/MI300ROCm 生態初步整合2024 年中期初步達到可用水平,部分模型訓練吞吐低於同等級 NVIDIA GPU(來源:AMD 社群基準,2024)
商業推論引擎(如 TensorRT‑LLM)NVIDIA外掛形式整合 FlashAttention/FlashDecodingNVIDIA H100/L40S 等專為推論最佳化,需模型轉換推論延遲極低,支援動態批處理,專有閉源部分最佳化

注:效能表現為綜合 2023–2024 年公開基準和社群反饋,不同場景(訓練、推論、序列長度)會有差異。

11 風險

  • 硬體演進削弱優勢:未來 GPU 若大幅增加 SRAM 容量或引入專用注意力引擎(如 H200 的更大視訊記憶體頻寬、B200 的新特性),IO‑aware 軟體最佳化的相對收益可能收窄。不過,目前硬體趨勢仍以算力增長快於視訊記憶體頻寬,記憶體牆問題預計將持續存在(來源:NVIDIA 路線圖,2024)。
  • CUDA 生態依賴:核心實現高度繫結 CUDA,跨平台(AMD、Intel 等)移植效能不佳或滯後。雖然 Triton 版本可緩解,但極致效能仍依賴手工 CUDA 最佳化,構成對 NVIDIA 生態的單點依賴。
  • 替代演算法競爭:線性注意力、狀態空間模型(如 Mamba)等新銳架構試圖在計算複雜度上實現 O(N) 或 O(N d) 突破,若它們在模型質量上達到可接受水平,則對平方級注意力核心運算元的需求將下降。2024 年 Mamba‑2 等研究引發關注(來源:arXiv 2024),但短期內替換主流 Transformer 的機率尚不明朗。
  • 實現複雜度與驗證成本:定製 CUDA 核維護成本高,新硬體適配慢;使用者若需插入自定義掩碼或稀疏模式,可能需要理解深層實現,增加工程開銷。FlexAttention 和 PyTorch 架構的抽象雖在改善,但生態仍處於快速迭代期。
  • 數值差異的潛在尾部風險:雖然主流驗證未發現模型質量問題,但極個別情況(如低精度 FP8 訓練配合特定初始化)可能出現非預期的數值行為,需要額外監控。
  • 供應鏈風險:嚴重依賴 NVIDIA 工具鏈和硬體供應;如遇出口管制或產能瓶頸,下游使用者無法自由替換為其他硬體平台(若 FlashAttention 不支援)。

12 誤讀糾偏

  1. “FlashAttention 是近似演算法,會降低模型精度”
    錯。 它與標準注意力數學上精確等價(softmax 結果一致),浮點累加順序不同引入的差異無統計影響,不會降低模型損失與下游任務指標。大量訓練實踐已反覆驗證。
  2. “只用於訓練,推論沒用”
    誤解。 最初面向訓練,但 FlashAttention‑2 及 FlashDecoding 顯著優化了長序列推論吞吐。在 vLLM 等架構中,開啟 FlashAttention 後長文本生成延遲可降低 30%~50%(來源:vLLM 文件,2023)。
  3. “用了 FlashAttention 就不再有 O(N²) 困擾”
    部分正確。 視訊記憶體降至 O(N),但計算複雜度理論上仍是 O(N²)。當序列極長(百萬 token 級),純注意力計算本身可能成為耗時瓶頸,仍需結合稀疏化或線性注意力。
  4. “任何 GPU 都能完美執行”
    不準確。 需較新的 GPU 架構(Compute Capability 7.5 以上,部分功能需 8.0+)。老款 V100 在特定實現下效能提升有限,且可能不支援最新版本。
  5. “與標準注意力結果完全位元一致”
    錯誤。 因為累加順序不同,會有極微小的位級差異。但數值誤差通常在 dropout、量化的背景噪聲範圍內,不影響訓練穩定性。
  6. “統一替代所有注意力,無需其他技術”
    過於簡化。 FlashAttention 主要針對密集註意力,對於極稀疏模式或非標準掩碼,可能需要 FlexAttention 或其他定製實現。它是一塊關鍵拼圖,但不是唯一解。

13 最新事件

  • 2024 年 7 月:PyTorch 引入 FlexAttention
    PyTorch 2.4 版本釋出 FlexAttention API,允許使用者在 Python 層面定義任意注意力掩碼(滑動視窗、因果、雙向混合等),底層利用 FlashAttention 式的分塊融合核心來自動編譯高效實現。這大幅降低了定製注意力最佳化的門檻(來源:PyTorch 官方部落格,2024 年 7 月)。
  • 2024 年 8 月:FlashAttention‑3 釋出
    Tri Dao 團隊在 arXiv 公開 FlashAttention‑3,專門針對 NVIDIA H100/H800 的 Hopper 架構。利用張量記憶體加速器(TMA)和非同步指令,將 FP16 前向計算效率提升至 H100 理論峰值的約 75%,峰值吞吐量超過 1.3 PetaFLOPS/s,且原生支援 FP8 訓練。相比 FlashAttention‑2,在 16k 序列上端到端訓練吞吐提升最高達 1.5~2 倍(來源:arXiv:2407.xxxxx,2024)。
  • 2024 年 9 月:AMD MI300X 上的進展
    AMD 釋出 ROCm 6.0,宣佈與 Tri Dao 合作,在 MI300X 上初步實現對 FlashAttention‑2 的支援,並公佈若干基準。在 Llama 2 70B 推論中,使用該實現的長序列吞吐能力有所提升,但仍落後於同代 H100(來源:AMD 社群部落格,2024 年 9 月)。
  • 2024 年第四季度:長上下文模型集中釋出
    Anthropic Claude 3.5 Sonnet/Opus(200k)、Google Gemini 1.5 Pro(1M token 上下文)等模型將超長上下文推向商用。這些模型的技術報告中均提及高效注意力實現(如 FlashAttention)的關鍵作用(來源:各家公司官方公告,2024 年下半年)。
  • 2025 年初:FlashAttention 成為 PyTorch 預設 SDPA 後端預設推薦
    自 PyTorch 2.5 起,對於滿足條件的輸入和 GPU,scaled_dot_product_attention 預設優先選擇 FlashAttention 核心,進一步鞏固事實標準地位(來源:PyTorch 2.5 release notes,2024 年 10 月)。

14 追蹤指標

  • 開源採用:GitHub 倉庫 Dao-AILab/flash-attention 的 star 數、issue 活躍度、版本釋出頻率;PyTorch 的 torch.backends.cuda.sdp_kernel 中 FlashAttention 預設開啟情況。
  • 架構整合深度:Hugging Face Transformers 中標註為“可使用 FlashAttention 加速”的模型數量(2024 年底已覆蓋 GPT、Llama、Falcon、Mistral、BLOOM 等 50+ 架構);vLLM、TGI 等推論引擎的預設注意力實現路徑。
  • 效能基準:MLPerf Training 及 Inference 排行榜中,LLM 模型使用的注意力實現型別;獨立機構(如 LMSys、Epoch AI)釋出的標準化長序列訓練/推論吞吐基準(N=8k, 32k, 64k)上 FlashAttention 的提升倍率。
  • 長上下文支援:各大型模型釋出的上下文視窗長度(如 32k、128k、200k、1M),以及技術報告中是否明確提及採用 FlashAttention 或衍生技術。
  • 硬體支援:NVIDIA cuDNN 及 CUDA 工具包中是否直接包含 FlashAttention 核心;AMD ROCm 對 FlashAttention‑2/3 的支援版本與實現效能差距。
  • 學術引用與衍生:FlashAttention 論文(NeurIPS 2022)累計引用數;FlashAttention‑2、‑3 論文的發表及引用;基於 Triton 等語言的復現/改進專案活躍度。
  • 成本節省案例:公開的雲端廠商或模型公司關於節省訓練 GPU‑小時的具體資料(需注意區分宣傳與實際審計資料)。
  • 新硬體適配:Intel Gaudi、SambaNova 等非 GPU 架構是否推出類似 IO‑aware 注意力實現。

15 信源

  • Dao, T. et al. “FlashAttention: Fast and Memory‑E
source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型