Stable DiffusionやFlux、ComfyUIなどのローカル画像生成AIを使っていると、「xformers」「SDPA」「Flash Attention」「Sage Attention」といった用語を目にすることがあります。これらは全てAttentionメカニズムの実装方式で、画像生成の速度とメモリ使用量に大きな影響を与えます。
本記事では、各Attention実装の技術的特徴、NVIDIA GPUとAMD GPUでの対応状況、そして実測性能データに基づいた選択基準を徹底解説します。特に重要なのは、性能だけでなくメモリ効率の差です。同じ速度でもVRAM使用量が1GB違えば、生成可能な解像度が変わります。
Attentionメカニズムとは何か
Stable DiffusionなどのDiffusionモデルは、画像生成時に「Attention(注意機構)」と呼ばれる計算を大量に実行します。これは画像の各部分が他の部分とどう関連するかを計算する仕組みで、高品質な画像を生成するために不可欠です。
しかし、標準的なAttention計算は計算量とメモリ使用量が膨大になります。例えば1024×1024ピクセルの画像を生成する場合、中間計算だけで数GBのVRAMを消費することもあります。
Attentionの計算量問題
標準的な実装では、計算量がシーケンス長の2乗(O(N²))に比例し、メモリ使用量も同様に増大します。これが最適化が重要な理由です。
主要なAttention実装の特徴
1. Math実装(標準実装)
PyTorchの標準的な数学演算を使った実装です。最適化が一切入っていないため、速度は最も遅く、メモリ消費も最大です。ベースラインとして性能比較に使われます。
- 速度: 1.0倍(基準)
- VRAM使用量: 8.2GB(SDXL 1024×1024、fp16モード、バッチサイズ1の場合)
- 対応: 全GPU
2. xformers(Memory-Efficient Attention)
Meta(旧Facebook)が開発したTransformer最適化ライブラリです。メモリ効率に特化しており、VRAM使用量を大幅に削減できます。[1]
- 速度: 2〜3倍
- VRAM削減: 30〜40%(SDXL 1024×1024で約5.9GB)
- 技術: Block-sparse AttentionとMemory-Efficient実装
- 対応: NVIDIA GPUのみ(CUDA専用)
重要: AMD GPUでは動作しません。かつてROCm版への移植計画がありましたが、SDPA登場により中止されました。後から見ると、メモリ効率の差を考えると議論の余地がある判断でした。[2]
3. SDPA (Scaled Dot-Product Attention)
PyTorch 2.0で標準搭載された公式Attention実装です。利用可能な最適化を自動選択する賢い仕組みを持っています。[3]
- 速度: 2〜2.5倍
- VRAM削減: 15〜25%(約6.8GB)
- 技術: Flash AttentionまたはMemory-Efficient実装を自動選択
- 対応: NVIDIA、AMD両対応
AMD Radeon GPUの標準実装となっています。ROCm 5.5以降で安定動作します。
4. Flash Attention v2
スタンフォード大学が開発したIO最適化Attentionです。GPUのSRAM(高速メモリ)を活用し、メモリアクセスを最小化します。[4]
- 速度: 3〜4倍
- VRAM削減: 25〜30%(約6.2GB)
- 技術: タイリング+SRAM最適化
- 対応: NVIDIA(Ampere以降)、AMD(RDNA3以降、ROCm 6.0+)
AMD環境での第一選択肢となる実装です。RX 7900 XTXでは実測で3〜4倍の高速化が確認されています。
5. Sage Attention
量子化技術を活用した最新の実装です。INT8/INT4といった低精度演算でメモリと計算を削減します。[5]
Sage Attention v1(1.0.6)
- 速度: NVIDIA 2.1〜2.7倍、AMD(理論値)最大5倍
- VRAM削減: 35〜45%
- 技術: INT8量子化+Smoothing
- 対応: NVIDIA(公式)、AMD(非公式フォーク、1.0.6のみ)
AMD環境の注意点: Sage Attention 1.0.6はROCmフォーク版が存在しますが、実測では理論値に遠く及びません。RX 7900 XTXでの実測は1.5〜2倍程度で、初回実行時のTritonコンパイルオーバーヘッドも大きいです。[6]
Sage Attention v2/v2++(2.x系)
- 速度: 4〜5倍
- VRAM削減: 35〜45%
- 技術: INT4量子化+Per-thread最適化
- 対応: NVIDIAのみ(AMD非対応)
Sage Attention v3(Blackwell専用)
- 速度: Math実装比で約5倍(Flash Attention v2比で約25-30%高速)
- 技術: NVFP4(4-bit浮動小数点)
- 対応: RTX 5000シリーズ(Blackwell)専用
- 注意: PyTorch 2.11 nightly + CUDA 12.8が必要、コミュニティビルド必須[7]
GPU別・性能比較表
NVIDIA GeForce – Blackwell世代(RTX 5000シリーズ)
| 実装 | RTX 5090 32GB | RTX 5080 16GB | VRAM削減率 |
|---|---|---|---|
| Math実装 | 1.0倍 | 1.0倍 | 0%(8.2GB、fp16/batch1) |
| xformers | 2.5〜3倍 | 2.5〜3倍 | 30〜40%(5.9GB) |
| SDPA | 2〜2.5倍 | 2〜2.5倍 | 15〜25%(6.8GB) |
| Flash Attention v2 | 3.5〜4倍 | 3〜3.5倍 | 25〜30%(6.2GB) |
| Sage Attention v3 | 約5倍 | 約5倍 | 40〜50%(推定5.0GB) |
[出典] ComfyUI公式Discussion #6643[7]、Puget Systems RTX 5090 AIベンチマーク[8]
NVIDIA GeForce – Ada Lovelace世代(RTX 4000シリーズ)
| 実装 | RTX 4090 24GB | RTX 4070 Ti 12GB | VRAM削減率 |
|---|---|---|---|
| Math実装 | 1.0倍 | 1.0倍 | 0%(8.2GB、fp16/batch1) |
| xformers | 2.5〜3倍 | 2〜2.5倍 | 30〜40%(5.9GB) |
| SDPA | 2〜2.5倍 | 2〜2.5倍 | 15〜25%(6.8GB) |
| Flash Attention v2 | 3.5〜4倍 | 3〜3.5倍 | 25〜30%(6.2GB) |
| Sage Attention v2++ | 4〜5倍 | 3.5〜4倍 | 35〜45%(5.5GB) |
[出典] note記事「ComfyUIとFlux1でxformersを使う」[9]、各種コミュニティベンチマーク
AMD RDNA3(RX 7900シリーズ)
| 実装 | RX 7900 XTX 24GB | 対応状況 | VRAM削減率 |
|---|---|---|---|
| Math実装 | 1.0倍 | ✅ 対応 | 0%(8.2GB、fp16/batch1) |
| xformers | 使用不可 | ❌ 非対応 | – |
| SDPA | 2〜2.5倍 | ✅ 安定対応 | 15〜25%(6.8GB) |
| Flash Attention v2 | 3〜4倍(実測) | ✅ ROCm 6.0+ | 25〜30%(6.2GB) |
| Sage Attention 1.0.6 | 1.5〜2倍(実測) | ⚠️ 非公式フォーク | 理論35%(実測不明) |
| Sage Attention 2.x | 使用不可 | ❌ 非対応 | – |
[出典] ROCm公式ドキュメント[10]、過去の技術検証データ[6]
AMD RDNA4(RX 9070シリーズ)- 2026年1月現在
| 実装 | RX 9070 XT 16GB | 対応状況 | 備考 |
|---|---|---|---|
| Math実装 | 1.0倍 | ✅ 対応 | 基準 |
| xformers | 使用不可 | ❌ 非対応 | RDNA3同様 |
| SDPA | 2〜2.5倍? | ✅ 対応 | 実測データ少 |
| Flash Attention v2 | 3〜4倍? | ✅ ROCm 7.0+ | RDNA3実績から推定 |
| Sage Attention | 未検証 | ❓ 不明 | gfx1200対応不明 |
RDNA4の現状: Windows HIP SDK 6.4.2とROCm 7.0以降で正式対応されましたが、実測性能データがほとんどなく、ドライバクラッシュやOOMエラーの報告もあります。正式対応済みですが実績不足のため、安定性を重視する場合はRX 7900シリーズの継続使用を推奨します。[11][12]
メモリ効率が重要な理由
「性能が同じならどれでもいいのでは?」と思うかもしれませんが、メモリ効率の差は実用性に直結します。
12GB VRAM環境での実例(RTX 4070 Ti)
| 解像度 | SDPA | xformers | 結果 |
|---|---|---|---|
| 1024×1024 | 6.8GB | 5.9GB | 両方とも動作 |
| 1536×1536 | 10.5GB | 9.2GB | SDPAはギリギリ/OOM |
| 2048×2048 | OOM | 理論値14.8GB(12GBでは不可) | バッチサイズ等の調整が必要 |
結論: 12GB VRAM環境では、xformersの有無で生成可能な解像度が変わります。これがメモリ効率を重視すべき理由です。
GeForce環境の方へ: 性能が同程度ならxformersを選択しましょう。メモリ効率の差が大きいため、より高解像度の画像生成や複雑なワークフローが可能になります。
実用的な選択ガイド
NVIDIA環境(RTX 3000/4000/5000シリーズ)
12GB VRAM(RTX 4070 Ti、RTX 3060 12GBなど)
第一選択: xformers(必須級)
- 理由: メモリ効率最優先、OOM回避に重要
- VRAM使用量: 5.9GB(SDXL 1024×1024)
- 高解像度生成が可能に
16GB VRAM(RTX 5080、RTX 4080など)
第一選択: xformers または Flash Attention v2
- xformers: メモリ余裕確保
- Flash Attention v2: 速度重視
24GB+ VRAM(RTX 5090、RTX 4090など)
第一選択: Sage Attention v2++/v3 または Flash Attention v2
- メモリ制約が少ないため速度最優先
- RTX 5090: Sage Attention v3で最大性能(コミュニティビルド必須)
AMD環境(RX 7900/9070シリーズ)
RX 7900 XTX 24GB(推奨)
第一選択: Flash Attention v2
- 実測3〜4倍高速化
- ROCm 6.2以降で安定
- ソフトウェアスタック成熟
第二選択: SDPA
- Flash Attentionでトラブル時
- 安定性重視
RX 9070 XT 16GB(2026年1月時点)
推奨: 様子見またはRX 7900 XTX継続使用
理由:
- Windows HIP SDK 6.4.2、ROCm 7.0で正式対応済み
- しかし実測データがほとんどない
- ドライバクラッシュ、OOMエラーの報告あり
- ソフトウェアスタックが発展途上
各環境での設定方法
ComfyUI
python main.py# xformers使用(NVIDIA環境)
python main.py –use-xformers# lowvram(VRAM不足時)
python main.py –lowvram
Stable Diffusion WebUI (AUTOMATIC1111)
–xformers# SDPA使用(推奨)
–opt-sdp-attention# 標準attention
–opt-sub-quad-attention
トラブルシューティング
「xformersが動かない」(PyTorch 2.4〜2.5)
PyTorch 2.4〜2.5でxformersとSDPAの競合問題がありました。現在はPyTorch 2.7以降で安定しています。
AMD環境でSage Attention 1.0.6が遅い
初回実行時のTritonコンパイルで大幅に遅くなります。2回目以降は改善しますが、それでも理論値には届きません。Flash Attention v2への移行を推奨します。
Blackwell(RTX 5000シリーズ)でビルドエラー
PyTorch 2.11 nightly + CUDA 12.8が必要です。公式ビルドが不足しているため、コミュニティビルド(mobcat40/sageattention-blackwellなど)を使用してください。[7]
まとめ: 最適な選択
| GPU | メモリ効率最優先 | 速度最優先 | 安定性最優先 |
|---|---|---|---|
| RTX 5000 (Blackwell) | xformers | Sage Att v3* | SDPA |
| RTX 4000 (Ada) | xformers | Flash Att v2 | SDPA |
| RTX 3000 (Ampere) | xformers | Flash Att v2 | SDPA |
| RX 9070 (RDNA4) | 実績不足 | Flash Att v2? | RX 7900推奨 |
| RX 7900 (RDNA3) | Flash Att v2 | Flash Att v2 | SDPA |
*コミュニティビルド必須、環境構築の手間あり
重要なポイント:
- NVIDIA環境: xformersのメモリ効率が圧倒的。12GB VRAM環境では必須級
- AMD RX 7900シリーズ: Flash Attention v2が第一選択。実測3〜4倍高速
- AMD RX 9070シリーズ: 正式対応済みだが実績不足。安定性重視ならRX 7900継続を推奨
- 性能だけでなくメモリ効率も重視: 同じ速度でもVRAM使用量が1GB違えば実用性が変わる
参考文献
- facebookresearch/xformers – GitHub
https://github.com/facebookresearch/xformers - ComfyUI Discussion – xformers移植計画とSDPA登場の経緯
過去のコミュニティディスカッション - PyTorch公式ドキュメント – Scaled Dot-Product Attention
https://pytorch.org/docs/stable/generated/torch.nn.functional.scaled_dot_product_attention.html - Dao-AILab/flash-attention – GitHub
https://github.com/Dao-AILab/flash-attention - thu-ml/SageAttention – GitHub
https://github.com/thu-ml/SageAttention - 著者環境での技術検証データ – Sage Attention 1.0.6のRX 7900 XTXでの実測
検証環境: ComfyUI、PyTorch 2.7.1、ROCm 7.1.1、Windows 11
実測結果: 1.5〜2倍の高速化(理論値5倍に対し)、初回Tritonコンパイルで大きなオーバーヘッド - mobcat40/sageattention-blackwell – GitHub
https://github.com/mobcat40/sageattention-blackwell
Sage Attention 2.2.0 wheel for RTX 5090/5080/5070 - Puget Systems「NVIDIA GeForce RTX 5090 & 5080 AI Review」
https://www.pugetsystems.com/labs/articles/nvidia-geforce-rtx-5090-amp-5080-ai-review/ - note記事「ComfyUIとFlux1でxformersを使う」
https://note.com/198619891990/n/nbf6efca72d2a - ROCm公式ドキュメント – 互換性マトリクス
https://rocm.docs.amd.com/en/latest/compatibility/compatibility-matrix.html - ROCm GitHub Issues #5812 – RX 9070 XT HSA初期化問題
https://github.com/ROCm/ROCm/issues/5812 - ROCm GitHub Issues #4443, #5102 – RDNA4対応状況
https://github.com/ROCm/ROCm/issues/4443 - AMD GPUOpen「Accelerating Generative AI on AMD Radeon GPUs」
https://gpuopen.com/learn/accelerating_generative_ai_on_amd_radeon_gpus/ - Phoronix「AMD Radeon RX 9070 Series Linux GPU Compute Performance Review」
https://www.phoronix.com/review/amd-radeon-rx9070-linux-compute - ComfyUI公式Discussion #6643「Nvidia 50 Series (Blackwell) support thread」
https://github.com/comfyanonymous/ComfyUI/discussions/6643
本記事は2026年1月時点の情報に基づいています。GPU技術とソフトウェアスタックは急速に進化しているため、最新情報は各公式ドキュメントをご確認ください。特にRDNA4(RX 9070シリーズ)は正式対応されたばかりで、今後の改善が期待されます。