Local / Edge実践ガイド

OllamaでGPUが使われない・CPU実行になるときの原因と対処法

OllamaでGPUが使われない・CPU実行になるときの原因と対処法
目次

Ollamaの生成が遅い、WindowsのタスクマネージャーでGPU使用率が低い、といった症状だけではCPU実行とは判断できない。最初にOllama自身が示すモデル配置を確認する必要がある。

診断は、ollama psとログ → OS・GPUの対応 → ドライバーとバックエンド → メモリとモデルの順で進めると分かりやすい。

1. ollama psで現在の配置を確認する

モデルを起動した状態で、別のPowerShellやターミナルから次を実行する。

ollama ps

主に見るのはPROCESSORCONTEXTだ。

PROCESSORでは、モデルがGPUへ全量配置されているのか、CPUだけなのか、GPUとCPUへ分割されているのかを確認できる。CONTEXTでは現在割り当てられているコンテキスト長を確認できる。

GPU使用率が一瞬低いことより、まずこの配置表示を基準にした方がよい。待機中、入力処理中、生成中ではGPU負荷の出方が変わるためだ。

2. ログでGPU検出と初期化エラーを見る

ollama psでCPU配置になっている理由が分からない場合は、ログを確認する。

Windows版では公式ドキュメントに次のログ場所が案内されている。

  • %LOCALAPPDATA%\Ollama\server.log
  • %LOCALAPPDATA%\Ollama\app.log

見るべきなのは、GPUを検出しているか、利用しようとしたバックエンドの初期化に失敗していないか、メモリ不足などのエラーが出ていないかだ。

「遅いからドライバーを入れ直す」のではなく、ログに何が出ているかを確認してから修正対象を決める方がよい。

LinuxやmacOSではログの取得方法が異なるため、Windowsのパスをそのまま使わず、利用しているOSの公式トラブルシューティング手順を確認する。

3. OSとGPUの対応表を照合する

OllamaのGPU対応は、GPUメーカーだけでなくOSと実行経路によって条件が分かれる。

NVIDIAではCUDA経路に対応GPUとドライバー条件がある。対応GPU名が一覧にあっても、任意の古いドライバーやOllamaバージョンで同じように動くという意味ではない。

AMDは特にOSごとの差を確認する必要がある。OllamaのLinux ROCm対応一覧とWindows ROCm対応一覧は同じではない。さらにWindows/LinuxではVulkan経路も別に存在する。

ROCmとVulkanは別の実行経路なので、「ROCmで認識しないからVulkanも使えない」「Vulkanで動いたからROCm対応している」といった読み替えはできない。

RX 9070 XTのようにAMD側のWindows ROCm資料へ一部コンポーネント対応が載るGPUでも、それだけからWindows版OllamaのROCm経路が対応すると断定できない。Ollama自身のOS別GPU対応表を合わせて見る必要がある。

AMD GPUを選ぶ段階から確認したい場合は、RX 9070 XTはローカルLLM用に買い?NVIDIAとAMD、ローカルLLM用GPUはどっち?で整理している。

4. ドライバーとバックエンドを一項目ずつ確認する

GPUが対応表に含まれているのにCPU配置になる場合は、次を確認する。

  • Ollamaのバージョン
  • GPUドライバーのバージョン
  • 実際に利用されているGPU
  • CUDA・ROCm・Metal・Vulkanなど想定している実行経路
  • ログに出ているGPU検出・初期化メッセージ

複数GPUがあるPCでは、確認しているGPUとOllamaが選んでいるGPUが一致しているかも見る。

設定やドライバーを変更したらOllamaを再起動し、同じモデルで再びollama psとログを確認する。複数の環境変数やドライバー、モデルを同時に変えると原因を追いにくくなる。

5. VRAM不足でGPU/CPU分割になっていないか確認する

GPUバックエンドが正常でも、モデルをGPUへ全量配置できるとは限らない。

モデルの重みだけでなくKVキャッシュなどにもメモリを使うため、コンテキストを大きくするとVRAMの余裕は減る。GGUFのファイル容量と必要VRAMも同じ数字ではない。

PROCESSORがGPU/CPU分割になっている場合は、次の順で確認するとよい。

  1. コンテキストを実際に必要な長さまで下げる
  2. より小さい量子化が用途に合うか確認する
  3. モデルサイズ自体を見直す
  4. それでも必要ならより大きなVRAMを検討する

partial offloadの考え方はGPUオフロード・CPUオフロードとは?で、メモリの種類はLLMのファイルサイズ・VRAM・RAM・実行時メモリは何が違う?で確認できる。

GPU交換は対応とメモリを切り分けてから

CPU配置の原因が未対応GPUやバックエンド初期化なら、VRAMの大きな別GPUへ交換する前にソフトウェア側の条件を解決する必要がある。

一方、対応GPUとして正常に認識されていても、必要なモデルとコンテキストがVRAMへ収まらないなら容量不足が購入判断の材料になる。その段階ではローカルAI向けGPUは16GB・24GB・32GBのどれを選ぶ?が参考になる。

OllamaでGPUが使われていないように見える場合は、速度の印象よりollama psとログを先に見る。そこからOS・GPU対応、実行バックエンド、メモリの順に確認すれば、CPU配置になっている理由を分けて考えやすくなる。

まとめ

  • 生成が遅い、GPU使用率が低いという症状だけではCPU実行とは判断できない
  • `ollama ps`のPROCESSORとCONTEXT、Ollamaのログを最初に確認する
  • GPU対応はNVIDIA・AMD・AppleとOS、ROCm・Metal・Vulkanなどの実行経路ごとに条件が異なる
  • 対応経路が正しくてもVRAM不足でGPU/CPU分割になる場合があり、コンテキストやモデルサイズを別に確認する

公式サイトで次に進む

この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。

local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。

同じテーマから

この記事で扱ったデータ

モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。

サイト内検索