AI・機械学習
上級

FlashAttention-2(フラッシュアテンションツー)

Tri Dao氏らが開発したTransformerのAttention計算を高速化するアルゴリズム。GPUのSRAMを活用してメモリアクセスを最小化し、標準Attentionより2〜4倍の高速化とメモリ削減を実現する。LLM推論・学習の事実上の標準最適化技術。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
Transformer
Attention
GPU最適化
推論
CUDA

FlashAttention-2 とは

FlashAttention-2(フラッシュアテンションツー)は、Tri Dao氏(スタンフォード大学・Together AI)らが2023年に発表したTransformerアーキテクチャのSelf-Attention計算を高速化するアルゴリズム。2022年発表のオリジナルFlashAttentionからさらに改良され、GPU上でのAttention計算を標準実装より2〜4倍高速化し、メモリ使用量をO(N²)からO(N)に削減する。

なぜAttentionがボトルネックなのか

TransformerのSelf-Attentionは系列長Nに対してO(N²)の計算量とメモリを必要とする。LLMの長コンテキスト(4K→32K→128K tokens)化が進むにつれ、この二次的なスケーリングが深刻なボトルネックとなる。

標準Attentionの問題点:

  • Q, K, V行列のHBM(High Bandwidth Memory)への読み書きが頻繁に発生
  • HBMの帯域幅(A100=2TB/s)がSRAM(A100=19TB/s相当)より約10倍遅い
  • N²サイズのAttention行列全体をHBMに書き込む必要がある

FlashAttention-2の仕組み

タイリング(Tiling)

Q, K, V行列をGPUのSRAM(共有メモリ・L2キャッシュ)に収まる小ブロックに分割し、Attention計算をブロック単位で実行する。HBMへのアクセス回数をO(N)に削減する。

Online Softmax

Softmax計算は全スコアが揃わないと実行できないが、FlashAttentionは「数値安定なIncremental Softmax」を使い、ブロックを逐次処理しながら正確なSoftmax値を算出する。

並列化の改善(FlashAttention-2 固有)

  • Warps間の並列化: Q行列方向に並列実行するよう変更(FA-1はK/V方向)
  • シーケンシャル削減: オリジナルに比べて非行列積(non-GEMM)演算を削減
  • 因果的マスキングの最適化: Causal Attention(GPT系)でのマスク処理を約2倍高速化

パフォーマンスベンチマーク

  • A100 80GB での Attention FLOP 利用率: 標準=約25% / FA-1=約60% / FA-2=約72%
  • LLaMA 2 70B 学習速度: FA-2採用で約3倍高速(HuggingFace公式)
  • 推論スループット (Llama 3 8B, A100): FA-2で約2.5倍向上

対応フレームワーク・エンジン

  • PyTorch: ○(SDPA経由) / バージョン2.0+
  • vLLM: ○(デフォルト) / バージョン0.2.0+
  • TensorRT-LLM: ○ / バージョン0.5.0+
  • SGLang: ○ / 全バージョン
  • HuggingFace Transformers: ○(attn_implementation="flash_attention_2") / バージョン4.34+
  • Axolotl: ○ / 全バージョン

FlashAttention-3(2024年)

H100 GPU向けに最適化されたFlashAttention-3が2024年に発表。FP8精度・非同期WGMMA命令・Persistent Kernel等でFA-2比さらに1.5〜2倍の高速化を達成。FA-2は依然としてA100/V100/RTX 4090等で有効だが、H100/H200環境ではFA-3が推奨。

まとめ

FlashAttention-2はLLMの推論・学習インフラにおいて事実上の標準となったAttention最適化技術。長コンテキストモデル(Claude 3.5/GPT-4/Gemini 1.5等)の実現を支える基盤技術であり、vLLM・TensorRT-LLM・SGLangといった主要推論エンジンがすべてデフォルト採用する。LLM推論エンジニアにとって必須の知識だ。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7