Flash Attention 2 / 3 ふらっしゅあてんしょんつー / すりー
Flash Attention 2Flash Attention 3GPU最適化H100アテンション高速化並列処理
Flash Attention 2 / 3について教えて
簡単に言うとこんな感じ!
Flash Attentionの進化版だよ!FA2はGPUをもっと無駄なく使うよう並列処理を改善して約2倍速くなり、FA3はNVIDIAの最新GPU(H100)の特殊機能を最大限に活かしてさらに高速化したんだ。LLMが速く動く裏側の縁の下の力持ちだね!
Flash Attention 2 / 3とは
Flash Attention 2(FA2) は2023年7月にTri Dao氏が発表した改良版で、Flash Attention 1の並列化戦略を見直し、シーケンス長方向の並列化とワーク分散の最適化を行いました。特にGPUの演算コア(CUDA Core)の稼働率を大幅に向上させ、実測でFlash Attention 1比で約2倍の高速化を達成しています。
Flash Attention 3(FA3) は2024年に発表され、NVIDIA H100 GPUが持つ非同期テンソルコア・FP8演算・パイプライン処理の機能を活用しています。H100のハードウェア特性に合わせた低レベル最適化により、FP16でFA2比1.5〜2倍、FP8では最大3.8倍の高速化を実現しています。
バージョン別比較
| 項目 | FA1(2022) | FA2(2023) | FA3(2024) |
|---|---|---|---|
| 速度(対従来比) | 2〜4倍 | 4〜8倍 | 6〜12倍(H100) |
| 並列化戦略 | シーケンス方向 | シーケンス+ヘッド方向 | 非同期パイプライン |
| FP8サポート | なし | なし | あり |
| 対応GPU | A100等 | A100 / H100 | H100最適 |
| マルチクエリ対応 | 一部 | GQA対応 | GQA/MQA対応 |
歴史と背景
- 2022年6月:Flash Attention(v1)公開
- 2023年7月:Flash Attention 2公開、実質的に業界標準に
- 2023年以降:PyTorch 2.0が
torch.nn.functional.scaled_dot_product_attentionとしてFA2を標準統合 - 2024年:Flash Attention 3発表、H100のTensor Memory Accelerator活用
- 現在:LLaMA 3・Mistral・Claude・GPT-4o等の主要モデルで採用
GQA(Grouped Query Attention)との組み合わせ
FA2以降はGQA(グループドクエリアテンション)に対応しています。GQAはKVヘッドを共有することでKVキャッシュを削減する手法で、LLaMA 2 70B等で採用。FA2 + GQAの組み合わせで速度とメモリ効率を両立しています。
MHA(マルチヘッドアテンション): Qヘッド = Kヘッド = Vヘッド
MQA(マルチクエリアテンション): KとVは1ヘッドのみ共有
GQA(グループドクエリアテンション): K/VをGグループに集約(中間的)
Flash Attention 2/3 はGQA/MQAに対応し、メモリ効率を最大化
関連用語
- Flash Attention — FA2/3の元となる初代バージョン
- KVキャッシュ — FA2/3と組み合わせて推論を最適化する技術
- マルチヘッドアテンション — FA2/3が高速化する対象の機構
- コンテキスト長 — FA2/3があるからこそ長コンテキストが現実的に
- スペキュレイティブデコーディング — 別アプローチの推論高速化技術