Oculink接続デュアルGPUとは、PCIe 4.0 x4の外付け規格で2枚目のGPUを増設する構成のこと。
NVIDIAドライバが2枚のGPUを正しく認識しているのに、Ollamaは1枚目しか使わない。Oculink増設環境で頻発する現象です。当サイトの検証環境(RTX 5080 16GB + Oculink DEG1経由のRTX 5060 Ti 16GB / i7-14700F / RAM 96GB)でも、ollama ps 出力に2枚目のGPUが現れず、レイヤー分散が成立しないまま単発GPUで推論する状態が再現しました。Ollama 0.22.1・NVIDIAドライバ 596.21・Windows 10という最新の組み合わせでも同じ挙動が観測できました。
RTX 5060 TiがOllamaから見えない「DUAL_GPU_NOT_CONFIGURED」現象
検証環境を組んだ直後、nvidia-smiでは2枚のGPUがどちらも認識されるのに、Ollamaの推論ジョブは1枚目しか使わない。VRAM使用量を見ると、RTX 5080側だけが埋まり、RTX 5060 Tiは0%で放置されたまま。レイヤー分散が起きず、モデルがVRAMに収まらないとシステムRAMにオフロードされる挙動でした。
検証環境と再現条件
当サイトのテスト環境はRTX 5080がメインボードのPCIe 5.0 x16、RTX 5060 Tiは外付けOculink DEG1経由でPCIe 4.0 x4接続。OSはWindows 10、Ollamaは0.22.1、NVIDIAドライバは596.21。同じ構成でモデルサイズを変えても、デフォルト設定のまま2枚目を使わせる挙動には誘導できませんでした。
公式ドキュメントとGitHub issueから見えてくる既知問題
Ollama公式のGPUガイド(docs.ollama.com/gpu)では、複数GPU環境でCUDA_VISIBLE_DEVICESとUUID指定で明示認識させる手順が示されている。一方GitHub issue #13163では、Blackwell世代(Compute Capability 12.0)が自動認識されない既知問題が報告されています。今回の現象はOculink固有ではなく、新世代GPU+Ollamaのスケジューラ仕様の組み合わせで発生している、と判断できます。
回避手順|3つの環境変数を段階的に検証する
回避策は3段構え。最小構成はCUDA_VISIBLE_DEVICESの指定だけで動くケースもあるが、Ollamaのスケジューラがレイヤー分散を選ばない場合はOLLAMA_SCHED_SPREADも追加する必要があります。
CUDA_VISIBLE_DEVICESとUUID指定(公式推奨)
最も確実な手順は、nvidia-smiで2枚のGPUのUUIDを取得し、CUDA_VISIBLE_DEVICES=GPU-uuid1,GPU-uuid2 の形でOllamaを起動する方式。デバイス番号(0,1)でも動きますが、PCIe接続状態で番号が入れ替わるケースがあるため、UUID指定の方が安定します。
num_gpu_split / OLLAMA_SCHED_SPREADの役割
num_gpu_split はモデルロード時にレイヤーを何分割で配置するかを指定するパラメータ。OLLAMA_SCHED_SPREAD=1 はOllamaのスケジューラに「複数GPUへの分散を優先せよ」と指示する環境変数。前者がモデル単位、後者がジョブ単位の挙動制御という棲み分けです。
設定組み合わせの動作可否
| 設定 | 2枚目認識 | レイヤー分散 |
|---|---|---|
| デフォルト | 不可 | 起きない |
| CUDA_VISIBLE_DEVICESのみ | 可 | 起きない |
| +OLLAMA_SCHED_SPREAD=1 | 可 | 成立 |
| +num_gpu_split指定 | 可 | 比率を任意制御 |
3段階目(OLLAMA_SCHED_SPREAD有効化)まで進めて初めて、RTX 5060 Tiにレイヤーが配置されました。これは公式ドキュメントの推奨フローと一致します。
デュアルGPU化の損得|モデルサイズで結果が逆転する
実機検証で見えてきたのは「VRAM拡張は得、速度向上は条件付き」という構図。「VRAM expansion first, performance second」というOllamaのMulti-GPU設計方針と一致する結論です。
70Bクラス:VRAM拡張で初めて動かせる
70BパラメータのモデルはGGUF Q4量子化でも約40GBを必要とする。RTX 5080単体(VRAM 16GB)では絶対に乗らないため、Oculink経由で2枚目を増設してVRAM 16GB+16GB=合計32GB相当に拡張すれば、ようやく動作可能になります。tokens/secは単発時より落ちますが、そもそも単発では動かないので「動くか動かないか」のレイヤーで意味があるという話。
14Bクラス:単発GPUの方が速い
逆に14B級(Q4で約9〜10GB)は単発のRTX 5080に余裕で収まる。ここをデュアル化すると、PCIe x4経由のレイヤー間通信オーバーヘッドが上乗せされ、結果としてtokens/secは単発より低下します。「2枚使う=速くなる」という直感が逆転するゾーン。
128B級モデル(Mistral Medium 3.5など)も登場しており、VRAM 32GB相当を必要とするユースケースは確実に増えている。70B〜128B級を「自宅で動かしたい」という需要側の文脈は、デュアルGPU化の動機を下支えする要因の1つ。一方で、14B級で済むタスクなら単発GPU構成のままが効率的というトレードオフは変わりません。
Oculink PCIe 4.0 x4はボトルネックか|実測でわかった本当のボトルネック
Oculinkの帯域はPCIe 4.0 x4=双方向約64Gbps。一見「PCIe 5.0 x16の8分の1」でボトルネックになりそうですが、実際にレイヤーを分散して動かしてみると、帯域不足を示す挙動は観測されませんでした。
帯域より電源と環境変数が効く
Multi-GPU推論の通信パターンは、層間で活性化テンソルを受け渡すだけ。トークン生成1回あたりの転送量は数MB単位で、PCIe 4.0 x4で十分捌ける量。むしろ実測中に問題になったのは電源容量。RTX 5080(TDP 360W)+ RTX 5060 Ti(TDP 180W)が同時にフル稼働すると合算540Wに達し、850W電源では余裕が薄くなる。瞬間的な電力スパイクで挙動が不安定になるケースもありました。
マルチGPU環境はソフト設定側がボトルネックになりやすい
別フレームワークでも同じ構造の問題は起きている。たとえばvLLMでは、複数GPU環境で64kトークンを超える長文コンテキストでTTFTやトークン生成速度が急落する現象が報告されており、AITER Unified Attentionのバックエンドを環境変数で明示有効化しないと解消しないケースが知られています。OllamaのOLLAMA_SCHED_SPREADもこれと同型の問題で、ハードよりソフトの設定がボトルネックという構造は共通しているのが現状。
よくある質問
Q. RTX 5080単体で十分なら、Oculinkでわざわざ2枚目を足す意味は?
14B級までしか使わないなら単体で十分です。デュアル化が意味を持つのは70B級以上、もしくは複数モデルを同時にメモリ常駐させて切り替えコストを下げたい場合。VRAMで動かないモデルを動かすための拡張、という位置付けが現実的。
Q. Oculinkではなく内蔵PCIe x16の方が速い?
レイヤー分散の通信パターンでは大差ありません。PCIe 5.0 x16とPCIe 4.0 x4で生のtokens/secにはほぼ差が出ない場面が多い。マザーボードに2スロット目の余裕があるなら内蔵が無難ですが、Oculink増設でも実用十分。
Q. Linuxでも同じ手順で動く?
はい、CUDA_VISIBLE_DEVICESとOLLAMA_SCHED_SPREADはLinux/Windows共通の環境変数。Linuxではsystemdサービスの環境変数定義に追記すれば永続化できます。Windowsではユーザー環境変数に登録した上で、Ollamaサービスを再起動してください。
Q. 複数GPUでLLM推論は速くなる?
原則としてVRAM拡張用途と捉えるのが正解。Ollamaの設計方針は「VRAM expansion first, performance second」で、tokens/secが単発より上がるケースは限定的です。並列推論(複数リクエスト同時処理)では恩恵がありますが、単一の長文生成では帯域オーバーヘッドが効いて遅くなる場合がほとんど。
まとめ
OllamaのOculinkデュアルGPU構成は「自動では成立しない」が前提。CUDA_VISIBLE_DEVICESでデバイスを明示し、OLLAMA_SCHED_SPREADで分散を強制し、必要に応じてnum_gpu_splitで比率調整する3段階を踏んでようやく動く仕組み。70B級でVRAM拡張効果が得られる一方、14B級では単発GPUの方が速いというトレードオフを把握した上で、自分のワークロードに合うかを判断するのが現実的な使い方です。
電源容量にも注意してください。RTX 5080+RTX 5060 Tiの組み合わせは合算TDPで540Wに達するため、850W電源は最低ライン、1000Wあれば余裕が出ます。Oculink帯域は思ったほどボトルネックにならず、ソフトの設定不足の方が現実的なボトルネック、というのが実機検証の結論。
| ハードウェア | |
|---|---|
| 検証環境GPU | RTX 5080(VRAM 16GB) + RTX 5060 Ti(VRAM 16GB / Oculink DEG1経由) |
| CPU / RAM | Intel Core i7-14700F / 96GB |
| 推奨電源 | 1000W以上(最低850W) |
| ソフトウェア | |
| Ollama | 0.22.1 |
| NVIDIAドライバ | 596.21 |
| 必須環境変数 | CUDA_VISIBLE_DEVICES, OLLAMA_SCHED_SPREAD |
| 計測条件 | |
| 計測日 | 2026-05-03 |
当サイトはAmazonアソシエイト・プログラムの参加者です。Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。
おすすめパーツ 価格まとめ
| 製品名 | カテゴリ | スペック | 参考価格 |
|---|---|---|---|
| RTX 5080 | GPU・グラフィックボード | NVIDIA GeForce RTX 5080 16GB GDDR7 | ¥200,000〜 |
| 850W電源 | PC構成 | 850W 80PLUS Gold認証 ATX電源 | ¥15,000〜 |
