ComfyUI デュアルGPU運用ガイド|RTX 5080+RTX 4070 Superで検証した並列処理と限界

ComfyUI

RTX 5080で画像生成を回しながら、裏でもう1枚のGPUに別の生成タスクを投げたい。ComfyUIを日常的に使っていると、そんな場面に出くわすことがある。筆者の環境ではメインPCにRTX 5080(16GB)、MINISFORUM DEG1経由のOculink接続でRTX 4070 Super(12GB)を増設し、デュアルGPU構成で運用している。結論から言えば、ComfyUIのデュアルGPU運用は「できること」と「できないこと」の差が極端に大きい。この記事では実測データをもとに、何が実用的で何が不可能なのかを整理する。

この記事の要点
・ComfyUIのデュアルGPU運用はポート分離による並列処理が最も実用的。2つのインスタンスを別ポートで起動し、独立して動かす方式
・GPU間のVRAM共有はComfyUIでは不可能。16GB + 12GB = 28GBにはならない
・Ollamaなど一部のLLMツールではパイプライン並列でVRAMの疑似統合が可能。用途によって判断が分かれる

ポート分離方式の並列処理 ― 最も実用的なデュアルGPU運用

デュアルGPU環境でComfyUIを使うなら、最初に検討すべきはポート分離方式だ。やることは単純で、GPU1台につきComfyUIのインスタンスを1つずつ起動し、それぞれ別のポートを割り当てる。メインGPUはポート8188、サブGPUはポート8189、のように分けるだけ。ブラウザで2つのタブを開けば、それぞれ独立した生成環境として動作する。

起動時の設定ポイント

メインGPU(RTX 5080)側の起動オプションで押さえるべき点は、–port 8188 –cuda-device 1 –normalvram –reserve-vram 1.5 –bf16-unet –bf16-text-enc あたり。サブGPU(RTX 4070 Super)側は set CUDA_VISIBLE_DEVICES=0 の環境変数に加え、–port 8189 –cuda-device 0 –bf16-unet –bf16-text-enc –normalvram を指定する。

CUDA_VISIBLE_DEVICESと–cuda-deviceの番号の組み合わせには注意が必要。CUDA_VISIBLE_DEVICESで見えるGPUを絞った場合、–cuda-deviceは「見えているGPUの中での番号」になる。番号のずれでエラーが出たら、まずこの対応関係を確認すること。

この方式の最大の利点は、メインGPUで作業中にサブGPUの生成処理が割り込まない点。速度差のあるGPU同士でも問題にならない。メモリ使用量が2インスタンス分になるのはデメリットだが、RAM 32GB以上の環境なら実用上の障害にはならないはず。

実測データ: 並列実行時の速度

当サイトの検証環境(i7-14700F / 96GB RAM)で、両GPUに同時に生成タスクを投入した結果が以下の通り。

GPU 接続方式 サンプリング速度 ステップ数
RTX 5080 (16GB) PCIe x16 3.83 s/it 70ステップ
RTX 4070 Super (12GB) Oculink (PCIe x4) 5.71 s/it 75ステップ

注目すべきは、並列実行時でも互いの速度に干渉している兆候がなかった点。PCIe x16とOculink(PCIe x4)で帯域が異なるものの、画像生成はGPU内のVRAMで完結する処理が大半であり、バス帯域の取り合いはほぼ発生しない。Oculink経由のRTX 4070 Superでも単体実行時と同等の速度が出ていた。

ComfyUI並列実行時のCMD速度比較(上: RTX 5080 3.83s/it、下: RTX 4070 Super 5.71s/it)
並列実行時のCMD出力。上がRTX 5080(3.83s/it)、下がRTX 4070 Super(5.71s/it)。帯域干渉なし

マルチGPUノードによる同時処理 ― 上級者向けの選択肢

ComfyUIには、複数GPUを単一ワークフロー内で活用するためのカスタムノードがいくつか公開されている。ただし、現状では「万能な高速化ツール」とは言い難い。

主要なカスタムノードの整理

ComfyUI-MultiGPUは、UNet・CLIP・VAEといったモデルの各コンポーネントを異なるGPUに割り当てるノード。処理自体は逐次実行だが、1枚のGPUにすべてを載せる必要がなくなるためVRAM節約になる。FLUX、LTX Videoにも対応済み。

ComfyUI-Distributedは異なるアプローチで、同一ワークフローを複数GPUで並列実行する仕組み。異なるシードで同時に生成できるため、スループットが向上する。1枚あたりの速度は変わらないが、単位時間あたりの出力枚数が増える。

ComfyUI-ParallelAnythingはバッチを分割して各GPUに振り分けるノード。ただし各GPUにモデルのフルコピーが必要で、VRAM消費は2倍。同速度のGPU 2枚が前提の設計になっている。

現状、単一のデノイジングステップを2つのGPUで分割する方法は存在しない。つまり「1枚の画像生成をGPU 2枚で2倍速にする」ことはできない。デュアルGPUで高速化を狙うなら、スループット向上(同時に複数枚を生成する)方向で考える必要がある。

筆者がポート分離方式を採用している理由もここにある。RTX 5080とRTX 4070 Superでは処理速度に約1.5倍の差があり、同時処理系のノードを使うと遅い方がボトルネックになってしまう。速度差の大きいGPU同士では、独立して動かす方が合理的だ。

VRAMは共有できない ― デュアルGPU最大の誤解

「RTX 5080の16GBとRTX 4070 Superの12GBを足して28GBとして使えないのか?」。デュアルGPU構成を検討する際、最も多い誤解がこれだろう。結論として、ComfyUIではVRAMの合算利用は不可能。NVIDIAのGPU VRAMは各カードに物理的に独立しており、複数GPU間でメモリ空間を統合する仕組みがコンシューマー向けカードには存在しない。

かつてNVLinkという高帯域GPU間接続がコンシューマー向けにも提供されていた時期があった。RTX 3090がNVLinkをサポートした最後の世代で、RTX 40シリーズ以降は廃止。現在、統合メモリアドレッシングが使えるのはA100やH100といったデータセンター向けGPUのみ。「SLIでVRAM共有」という話も見かけるが、SLIはゲーム用のフレーム分割技術であり、VRAM共有とは無関係。帯域も2Gbps程度で、AI演算には実用外だ。

筆者も実際にRTX 5080のVRAMオフロード先としてRTX 4070 Superを指定しようと試みたが、ComfyUIの仕組み上これは不可能だった。大規模モデルを動かしたいなら、そのモデルが収まるVRAMを持つ単一GPUを用意するしかない。

SDXLやFluxのような大規模モデルでVRAMが足りない場合、デュアルGPUでは解決しない。VRAMの増設が目的なら、GPU 2枚に投資するよりVRAM容量の大きい単一GPUを選ぶべきだ。

例外: OllamaならVRAMを「疑似共有」できる

ComfyUIではVRAM合算が不可能と書いたが、LLM推論ツールのOllamaはまったく事情が異なる。Ollamaはパイプライン並列(テンソル並列とは別の方式)でトランスフォーマーの各層を複数GPUに分散配置できる。データが層を順番に流れていく仕組みで、結果として16GB + 12GB ≒ 28GBのモデルをロードできてしまう。

デュアルGPU時の実測ベンチマーク

当サイトの検証環境での計測結果を以下にまとめた。

モデル RTX 5080 単体 デュアルGPU (5080+4070S) 差分
Qwen3 8B 99.15 tok/s 130.68 tok/s +32%
Gemma3 12B 85.90 tok/s 84.47 tok/s ほぼ同等
Qwen3 32B 5.69 tok/s(CPU溢れ) 11.24 tok/s +97%

Qwen3 8Bはもともと単体GPUに収まるサイズだが、デュアルGPUでは層の分散によりメモリ帯域が拡大し32%の速度向上。一方のGemma3 12Bはほぼ変化なしで、モデルサイズとGPU間の分散比率によって効果にばらつきがある。

最も劇的な差が出たのはQwen3 32B。RTX 5080単体だとVRAM 16GBに収まりきらず、CPUメモリへのオフロードが発生して5.69 tok/sまで落ち込む。それがデュアルGPUでは両カードのVRAMに分散されてオフロードが解消し、11.24 tok/sとほぼ倍速。「VRAMが足りなくてCPUに溢れるモデル」こそがデュアルGPUの恩恵を最も受けるケースだ。

ただし注意点もある。速度差のあるGPU間ではデータ転送がボトルネックになり得る。特にOculink(PCIe x4)接続の場合、プロンプト入力時のprefill処理でレイテンシが増加する傾向を確認している。トークン生成(eval)速度は良好でも、最初の応答までの待ち時間が長くなることがある。

デュアルGPUが向いているケースと向いていないケース

ここまでの検証結果を踏まえ、デュアルGPU構成の適性を整理する。

向いている用途

ポート分離で別タスクを同時実行する場合。メインGPUで作業しながらサブGPUで画像生成を回す、といった運用には最適。互いの処理に干渉しないため、速度差も問題にならない。

Ollamaなど LLM推論で大型モデルを動かす場合。単体GPUに収まらないモデルをCPUオフロードなしで動かせるのは大きなメリット。Qwen3 32Bの例で示した通り、CPUオフロード発生時との速度差は顕著だ。

同速度のGPU 2枚でスループットを倍にする場合。同じモデルのGPU 2枚なら、ComfyUI-DistributedやParallelAnythingでバッチの並列処理が有効に機能する。

向いていない用途

1枚の画像生成を高速化したい場合。単一のデノイジングステップをGPU間で分割する技術は現時点で存在しない。

VRAMを合算して大型モデルを載せたい場合。ComfyUIではGPU間のVRAM共有は不可能。SDXLやFluxでVRAMが足りないなら、より大容量のGPU 1枚に買い替えるのが正解だ。

速度差の大きいGPU同士で同時処理を狙う場合。マルチGPUノードを使った同時処理では、遅い方のGPUがボトルネックになる。RTX 5080 + RTX 4070 Superのような組み合わせでは、ポート分離で独立運用した方が総合的な効率は高い。

まとめ

ComfyUIのデュアルGPU運用は、「ポート分離で独立した2つの生成環境を手に入れる」のが最も現実的な活用法だ。VRAMの合算やステップの分割といった「夢の機能」は現状では実現していない。速度差のあるGPU同士なら、無理に同時処理を狙うより別々のタスクを投げる方が合理的。

一方でOllamaのようなLLM推論では話が違い、パイプライン並列でVRAMの疑似統合が可能。用途によってデュアルGPUの価値は大きく変わるため、「何をやりたいのか」を先に明確にしてから構成を検討すべきだ。大規模モデルを1枚のGPUに載せたいだけなら、2枚構成に投資するより大容量VRAM搭載の単一GPU購入を勧める。

筆者が使用しているeGPUドック(MINISFORUM DEG1)については別記事で詳しくレビューしている。Oculink接続の実測データや設置環境の写真も掲載しているので、外付けGPU環境に興味がある方は参照してほしい。MINISFORUM DEG1レビュー

当サイトはAmazonアソシエイト・プログラムの参加者です。Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。

タイトルとURLをコピーしました