AI・機械学習
上級

FlashAttention-3(フラッシュアテンションスリー)

Transformerのアテンション計算をGPUのSRAMを活用して高速化するアルゴリズムの第3世代。H100/H800 GPU向けに最適化されたIO-Aware実装。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
FlashAttention
アテンション最適化
LLM推論
CUDA
H100
IO-Aware

FlashAttention-3

概要

FlashAttention-3は、Tri Dao(Stanford/Together AI)らが2024年に発表したAttentionアルゴリズムの最新世代実装。LLMの推論・学習両フェーズにおける最重要最適化技術の一つとして、現代のAIインフラに広く採用されている。

技術的背景

標準Attentionの問題点

従来のAttention計算 Attention(Q, K, V) = softmax(QKᵀ / √d) · V は、シーケンス長Nに対してO(N²)のメモリを消費する。N=4096トークンでさえ、中間行列(Score Matrix)はGPU HBMに格納されるため、大量のメモリ読み書き(IO)が発生していた。

FlashAttentionのアプローチ

IO-Aware設計により、H100 GPUのメモリ階層を最大活用:

  • SRAM (L2): 容量50MB / 帯域幅33TB/s
  • HBM: 容量80GB / 帯域幅3.35TB/s

FlashAttentionはAttention行列全体をHBMに書き出さず、SRAMに収まるタイルサイズで逐次計算(Tiling)。中間結果はSRAM内で処理し、最終出力のみHBMへ書き出す。

FlashAttention-3の新機能

1. Warp-Specialization

H100のThread Block Cluster機能を活用し、Warpを非同期パイプライン処理に特化させることで、行列積(GEMM)とSoftmax計算を重複実行。

2. FP8サポート

H100のFP8 Tensor Coreに対応し、BF16比で2倍の計算スループット。量子化精度劣化を最小化するブロックスケーリング技術を採用。

3. 非同期メモリコピー

CUDA Graphs + TMA(Tensor Memory Accelerator)による非同期HBM→SRAMコピーで、計算中のデータ転送を隠蔽。

パフォーマンス比較

H100 FP16利用率:

  • cuDNN Attention: 約35%
  • FlashAttention-2: 約50%
  • FlashAttention-3: 約75%

H100 FP8利用率:

  • FlashAttention-3: 約75%

シーケンス長2048、ヘッド次元128での計測値。FA3はFlashAttention-2比で約1.5〜2.0倍高速。

採用状況(2025年)

  • vLLM: --enable-flashatttn フラグでFA3を選択可能
  • SGLang: デフォルト有効(H100検出時)
  • HuggingFace Transformers: attn_implementation="flash_attention_2" (FA3対応進行中)
  • Llama.cpp: Metal/CUDA backendで部分採用

利用方法

from flash_attn import flash_attn_qkvpacked_func, flash_attn_func

# QKVパック形式
out = flash_attn_qkvpacked_func(qkv, dropout_p=0.0, causal=True)

# 分離形式
out = flash_attn_func(q, k, v, dropout_p=0.0, causal=True)
# vLLMでFA3有効化
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --enable-chunked-prefill \
  --max-num-batched-tokens 8192

将来展望

FlashAttention-4(Blackwell GPU向け)の開発が進行中。FP4サポートと更なる非同期パイプライン最適化が見込まれる。Attentionの計算効率がLLMスケールの上限を決定する重要因子として、2026年以降も進化が続く。

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