FLUX 3 Image KleinをNVIDIA Blackwellで3〜4倍高速化した方法――量子化・アテンション・キャッシュ・並列化・CUDAグラフ
結論:NVIDIAは、Black Forest Labsの画像生成・編集モデル「FLUX 3 Image Klein」を、量子化、アテンションの高速化、ステップ間のキャッシュ、複数GPUでの並列化、CUDAグラフを組み合わせて高速化し、B200 1枚で2048×2048ピクセルの画像生成を22.36秒から6.46秒(3.46倍)、画像編集を54.64秒から12.28秒(4.45倍)に短縮しました。
ポイントは次の3つです。
- 処理時間の大半はノイズ除去:画像生成の処理時間の84〜98%を、ノイズ除去の繰り返し計算が占める
- 高速化の手法は5系統:①NVFP4・FP8への量子化、②アテンションの高速化とスパース化、③ステップ間のキャッシュ(Cache-DiT)、④複数GPUでの並列化、⑤CUDAグラフ
- 画質とのトレードオフ:手法を重ねるほど、最適化前の画像との差(LPIPS)が大きくなる
2026年11月6日にNVIDIAの技術ブログで紹介されました。
前提1:拡散モデルの仕組み
FLUXをはじめとする多くの画像生成モデルは、拡散モデル という方式で動作します。ランダムなノイズの画像から始めて、ノイズを少しずつ取り除く処理(デノイズ)を繰り返し、指示文(プロンプト)に合った画像を生成します。この1回の処理を ステップ と呼びます。
FLUX 3 Image Kleinは、次の部品で構成されています。
| 部品 | 役割 |
|---|---|
| Qwen3-VL-4B-Instruct | 指示文を、画像生成に使う条件の表現に変換する |
| 拡散トランスフォーマー(DiT) | ノイズ除去の計算を行う本体 |
| オートエンコーダー | 潜在表現を画像に変換する。画像編集では、参照画像を潜在表現に変換する |
チェックポイントは2種類あります。
| 版 | ステップ数 | 特徴 |
|---|---|---|
| Base | 50回(CFGスケール3.5) | 品質を重視した標準版 |
| distilled(蒸留版) | 16回(CFGなし) | 少ないステップで生成できるよう追加学習した版 |
CFG(Classifier-Free Guidance) は、指示文ありとなしの2通りで計算し、その差を使って指示文への忠実さを高める手法です。蒸留 は、標準版の出力を教師として、少ないステップで同等の出力を出せるようにモデルを学習させる手法です。
前提2:処理時間の内訳
NVIDIAが測定した最適化前の処理時間(B200 1枚、2048×2048ピクセル、NVFP4、torch.compile使用)は次のとおりです。
| 処理 | 合計時間 | ノイズ除去の割合 |
|---|---|---|
| Base・画像生成 | 14.70秒 | 96.8% |
| 蒸留版・画像生成 | 2.71秒 | 84.0% |
| Base・画像編集 | 40.29秒 | 97.8% |
| 蒸留版・画像編集 | 7.48秒 | 89.0% |
処理時間の大半がノイズ除去であるため、1ステップあたりの計算を速くするか、計算量を減らすかが高速化の中心になります。
高速化の手法
手法1:量子化(NVFP4・FP8)
モデルの数値を16ビット(BF16)から8ビット(FP8)や4ビット(NVFP4)にすることで、メモリの読み書きと計算の負荷を減らします。FLUX 3 Image Kleinには、事前に量子化したNVFP4のチェックポイントが用意されています。
- NVFP4はBF16と比べて、画像生成で最大1.62倍、画像編集で最大1.58倍速い
- SwiGLUやQKVの計算を融合したNVFP4の行列演算カーネル(FlashInfer、CUTLASSベース)で、さらに1.02〜1.10倍
手法2:アテンションの高速化とスパース化
拡散トランスフォーマーの中心は アテンション です。画像の各部分(トークン)が、他のどの部分とどれだけ関係するかを計算します。計算量はトークン数の2乗に比例するため、高解像度の画像ほど重くなります。
| 手法 | 内容 | Baseでの効果 |
|---|---|---|
| cuDNNのFP8アテンション | アテンションをFP8で計算する | 1.08倍(LPIPS 0.072) |
| VC-Attention(FP8) | FP8で計算し、誤差の一部を補正する(補正の割合ρ=0.005) | 1.18倍(LPIPS 0.086) |
| Sol-Attention | 関係の弱い組み合わせの計算を省く(スパース化) | 1.24〜1.30倍 |
Sol-Attentionは、序盤のステップは省略せずに計算し、後半のステップだけスパース化します。Baseの50ステップのうち、省略しないステップを12にすると速さ重視、16にすると品質重視になります。
手法3:ステップ間のキャッシュ(Cache-DiT)
ノイズ除去の後半では、ステップごとの変化が小さくなります。Cache-DiT は、前のステップとの差(残差)が小さいとき、計算の一部を省いて前のステップの結果を再利用します。
| 版 | 1024×1024 | 2048×2048 |
|---|---|---|
| Base | 1.97倍(LPIPS 0.038) | 1.94倍(LPIPS 0.033) |
| 蒸留版 | 1.26倍(LPIPS 0.036) | 1.20倍(LPIPS 0.022) |
蒸留版の効果が小さいのは、ステップ数が少なく、再利用できる余地が少ないためです。
手法4:複数GPUでの並列化
B200を8枚搭載したシステムで、1枚の画像の生成を複数のGPUで分担します。
- CFG並列:CFGの「指示文あり」と「指示文なし」の計算を別々のGPUで行う
- Ulysses並列:シーケンス(画像のトークン列)を分割して、複数のGPUで計算する
2048×2048ピクセルの画像生成で、Baseは14.90秒から3.00秒に、蒸留版は2.73秒から1.08秒になりました(ノイズ除去部分はそれぞれ6.01倍と4.44倍)。蒸留版の伸びが小さいのは、8 GPU構成での生成時間の約半分が、並列化の対象外の処理(ノイズ除去以外)だからです。
手法5:CUDAグラフ
GPUで計算するには、CPUからGPUへ多数のカーネル起動命令を送ります。命令ごとにわずかなオーバーヘッドがあり、計算自体が速くなるほど、このオーバーヘッドの割合が大きくなります。
CUDAグラフ は、一連のカーネル起動をあらかじめ記録しておき、まとめて実行する仕組みです。8枚のB200、1024×1024ピクセルで、Baseは1.823秒から0.809秒(2.25倍)、蒸留版は0.791秒から0.366秒(2.16倍)になりました。
最終結果
B200 1枚、2048×2048ピクセルで、手法を組み合わせた結果です。
| 処理 | 最適化前 | 最適化後 | 速度 |
|---|---|---|---|
| 画像生成(Base) | 22.36秒 | 6.46秒 | 3.46倍 |
| 画像編集(Base) | 54.64秒 | 12.28秒 | 4.45倍 |
| 蒸留版 | ― | ― | 最大2.34倍 |
RTX PRO 6000 Blackwell Server Edition 1枚でも、コンパイル、融合したNVFP4カーネル(CuTe DSL)、Cache-DiTの組み合わせで1.73〜3.25倍になりました。
画質への影響
画質は LPIPS という指標で、最適化前の出力との差を測っています。0なら同一で、値が大きいほど差が大きいことを示します。
- Cache-DiTは0.02〜0.04程度で、高速化の効果に対して画質への影響が小さい
- FP8のアテンションは、蒸留版で0.15〜0.16程度とやや大きい
- 手法を重ねるほど値は大きくなり、NVIDIAの例では0から0.095まで上がった
用途(最終的な成果物の生成か、試作の大量生成か)に応じて、どの手法まで使うかを選ぶ必要があります。
試すには
- NVIDIA TensorRT-LLMの画像生成機能「VisualGen」で実行します
- 専用のコンテナ(
nvcr.io/nvidia/tensorrt-llm/release:feat-flux3-image-klein-1.4.0a0.dev202610280436)と、TensorRT-LLMリポジトリのfeat/flux3-image-kleinブランチが公開されています trtllm-serveコマンドで、OpenAI互換の画像生成API(/v1/images/generations)として提供できます- 量子化、コンパイル、アテンション、キャッシュ、並列化、CUDAグラフの設定は、YAMLファイルで切り替えます
制約と注意点
- コンテナは機能ブランチの開発版(1.4.0a0.dev)です
- 公表された処理時間には、プロンプトのアップサンプリング(指示文を自動で詳しくする処理)は含まれていません
- 測定はBlackwell世代のデータセンター向けGPUとRTX PRO 6000 Blackwell Server Editionで行われており、GeForceでの結果は示されていません
- モデルのパラメータ数とライセンスは、NVIDIAの記事には記載されていません。利用前にBlack Forest Labsの条件を確認してください
まとめ
- 画像生成の処理時間の大半はノイズ除去の繰り返しで、ここが高速化の中心になる
- 量子化、アテンションの高速化とスパース化、ステップ間のキャッシュ、複数GPUでの並列化、CUDAグラフを組み合わせ、B200 1枚で3.5〜4.5倍速くなった
- Cache-DiTは、画質への影響が小さく、効果が大きい
- 手法を重ねるほど画質の差は大きくなるため、用途に合わせて選ぶ必要がある
あわせて読みたい
- ① NVFP4:モデルを4ビットにする数値形式
この記事で使ったNVFP4の詳しい仕組み - GPUメモリを無駄なく使う5つの方法【まとめ】
NVFP4を含む、GPUメモリを無駄なく使う5つの方法
参考