
きっかけ:前回発生した謎のGPUエラーを追いかける
以前、X投稿のハッシュタグ生成(OpenVINOバックエンド、Qwen2.5-14B)で立て続けにGPUエラーが起きたことがあった。最初はCL_OUT_OF_RESOURCES、リトライしたら今度は「32GB(34483056640バイト)のメモリ確保を要求したが、デバイスが対応する最大割り当ては12.5GB」という、明らかに異常な数値のエラー。その場ではハッシュタグを手動指定して切り抜けたが、原因はちゃんと調べていなかった。今回はこれを追いかけてみた。
まずクリーンな状態で再現を試みる
素直に、何もGPUを使っていない状態でOpenVINO(Qwen2.5-14B-int4)を呼び出してみた。
- パイプライン読み込み: 21.2秒
- 生成: 0.6秒
普通に動く。エラーは一切出なかった。となると、あの時特有の「何か」が引き金だったはず。あの時は、Ollamaでの本文生成やimage_gen_server(Stable Diffusion)でのサムネイル生成など、GPUを酷使する処理を長時間繰り返した後にハッシュタグ生成(OpenVINO)を呼んでいたタイミングだった。そこで、実際にGPUを別プロセスに使わせた状態を意図的に作って、同じ状況を再現できるか試した。
検証1: OllamaがGPU0にモデルを常駐させた状態

Ollamaでモデル(Gemma4-12B-Heretic)を明示的に常駐させたまま、同じOpenVINO呼び出しを実行してみた。結果、エラーにはならなかったものの、生成時間が0.6秒→41.4秒と約70倍に膨れ上がった。クラッシュはしないが、実用にならないレベルまで極端に遅くなる、という挙動だった。
検証2: image_gen_server(GPU1・SYCL)が画像生成中の状態
Stable Diffusionの画像生成ジョブを投げ、処理が進行中のタイミングでOpenVINO呼び出しを試したところ、こちらは0.7秒とほぼ影響なし。OpenVINOの既定デバイス設定(GPU、実質GPU.0)と、image_gen_serverが固定しているGPU1(xpu:1)が別の物理GPUなので、単純には競合しなかったようだ。
エラーの再現には至らなかった
結論から言うと、今回の検証では最初に起きたCL_OUT_OF_RESOURCESや32GB要求エラーそのものは再現できなかった。分かったのは「Ollamaが同じGPUにモデルを常駐させていると、クラッシュはしないが劇的に遅くなる」という別の症状で、あの時のエラーはおそらくもっと限定的な条件——例えば長時間の連続テストで複数プロセスのキル・再起動を繰り返した末に、GPUドライバ側のメモリ管理状態が断片化・不整合を起こしていた、というような、狙って再現しにくい類の不具合だったのだと思う。
結論
- クリーンな状態ではOpenVINOのGPUエラーは発生しない — コード自体に恒常的なバグがあるわけではなさそう
- Ollamaが同じGPUを使用中だと、クラッシュせず極端に遅くなる(約70倍) — エラーという形で気づけないぶん、原因特定が難しい
- 物理的に別GPUを使っていれば競合は起きにくい — image_gen_server(GPU1)とOpenVINO既定(GPU0)の組み合わせでは影響なし
- 元のクラッシュは再現できず — 長時間・多プロセスの酷使の末に起きる、条件が絞り込みにくい類の不具合だった可能性が高い。長時間の負荷試験をした後にGPU関連のエラーが出たら、コードのバグを疑う前に、一度全プロセスを終了してGPU状態をリセットしてみるのも有効な対処法になりそう
原因を完全に特定できたわけではないけれど、「クラッシュしないが劇的に遅くなる」競合パターンを1つ見つけられたのは収穫だった。すべての不具合が綺麗に再現できるわけではない、というのも実測してみて初めて分かることだと思う。