FlashAttention-3(フラッシュアテンションスリー)
NVIDIA Hopper(H100/H200)アーキテクチャの非同期計算・FP8精度・WGMMA命令を活用したアテンション計算最適化。FlashAttention-2比で最大2倍の高速化を達成する。
FlashAttention-3とは
StanfordのTri Daoらが2024年に発表した、NVIDIA Hopper GPU(H100/H200)向けの高度に最適化されたアテンション計算カーネル。FlashAttention-2の設計思想(HBMアクセス最小化・SRAMタイリング)を継承しつつ、Hopperアーキテクチャ固有の機能を最大限活用して大幅な高速化を実現。
FlashAttention進化の経緯
FA-1(2022): HBM最小化・タイリング → A100で2〜4倍高速化。 FA-2(2023): ワークパーティション・GQA対応 → A100でFLOPS利用率70%。 FA-3(2024): Hopper専用・非同期・FP8対応 → H100でFLOPS利用率75%超。
H100(Hopper)アーキテクチャ活用
Tensor Memory Accelerator(TMA)
H100が新たに搭載したTMAは、グローバルメモリ(HBM)からシェアードメモリへのデータ転送を非同期で実行できるハードウェア機能。FA-3はTMAを使用してメモリ転送とGEMM計算を重ね合わせ(パイプライン化)、転送待ち時間を隠蔽する。
FA-2では同期実行だったメモリ転送と行列計算を、FA-3では非同期パイプラインで並列実行する。HBM帯域とTensorCore使用率が同時に最大化される。
WGMMA命令(Warpgroup Matrix Multiply Accumulate)
Hopperの新命令WGMMAはSM単位ではなくWarpgroup(4 Warp = 128スレッド)単位で大規模な行列乗算を実行。FA-2で使用していたH/WMMA命令より大きなタイルを1命令で処理でき、命令発行オーバーヘッドを削減。
FP8テンソルコア対応
HopperのFP8テンソルコアはBF16の2倍のスループット。FA-3はFP8精度でのアテンション計算をサポートし、推論時のメモリ帯域使用量を半減させながら高いFLOPS利用率を維持する。
性能ベンチマーク(2024年公開)
H100 SXM5、seqlen=8192、head_dim=128、BF16での測定:
- FA-2: 約650 TFLOPs(FLOPS利用率約60%)
- FA-3: 約740〜780 TFLOPs(FLOPS利用率75%超)
- 改善率: 約20〜25%
FP8での更なる向上: FP8はBF16比でテンソルコアスループット2倍のため、精度許容範囲内での使用でFP8 FA-3はBF16 FA-2比で最大2倍のスループット。
インストールと使用
pip install flash-attn --no-build-isolation でインストール。H100環境では自動的にFA-3カーネルが選択される。flash_attn_func(q, k, v, causal=True) で標準使用可能。
他のアテンション実装との比較
PyTorch SDPA: 全GPU対応、FP16/BF16、FA-2をバックエンドで使用。FlashAttention-2: A100/A10対応、現在の主流。FlashAttention-3: H100/H200のみ、FP16/BF16/FP8対応、2024〜最新。SageAttention: A100/H100対応、INT8/FP8量子化特化。
まとめ
FlashAttention-3はH100/H200のHopperアーキテクチャ専用に設計された高性能アテンションカーネル。TMA非同期転送・WGMMA命令・FP8サポートにより、FA-2比で15〜25%(FP8では最大2倍)の高速化を達成。vLLM・SGLang・Transformersなど主要フレームワークがH100環境でFA-3を採用しており、2025年の大規模LLM推論・学習の標準的な基盤技術となっている。