OllamaでGPUを有効化する方法|NVIDIA CUDA・AMD ROCmをLinuxで設定してローカルLLMの推論を高速化する手順

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)ローカルLLM > OllamaでGPUを有効化する方法|NVIDIA CUDA・AMD ROCmをLinuxで設定してローカルLLMの推論を高速化する手順
「OllamaをインストールしたのにCPUで動いている気がする」
「NVIDIAのGPUを積んでいるサーバーなのにOllamaがGPUを認識しない」

そんな悩みを抱えるインフラエンジニアは少なくない。GPUが使われていない状態では、7Bパラメータのモデルでも1トークン生成に数秒かかることがあり、実務ではとても使い物にならない。この記事では、NVIDIA CUDAとAMD ROCmそれぞれのLinux向けGPU有効化手順を実際のコマンドで解説する。ドライバのインストールからOllamaのGPU認識確認、推論速度の比較、トラブルシュート、マルチGPU設定まで一通り押さえる。

この記事のポイント

・`ollama ps` コマンドで現在のモデルがGPUを使っているか即座に確認できる
・NVIDIAはCUDA 12.x系ドライバ、AMDはROCm 6.x系が現時点でのOllama動作確認済み推奨バージョン
・GPU未認識の第一原因はドライバ未インストール・バージョン不一致・グループ権限の未設定
・マルチGPUは `CUDA_VISIBLE_DEVICES` 環境変数で使用するGPUを選択できる


OllamaでGPUを有効化する方法|NVIDIA CUDA・AMD ROCmをLinuxで設定してローカルLLMの推論を高速化する手順

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

OllamaがGPUを使うための仕組みとハードウェア要件

OllamaはCUDA(NVIDIA)またはROCm(AMD)のランタイムをシステムから自動検出する設計になっている。ただし「自動」とはいえ、ドライバが正しく入っていなければ起動時に静かにCPUフォールバックするだけで、エラーも警告も出さない。この無音の動作仕様が「GPUで動いていると思っていたらCPUだった」という事態を生む。

対応GPUの最低ラインは次の通りだ。

NVIDIA: Compute Capability 5.0以上(Maxwell世代以降)。GTX 900シリーズ以降、RTX系は全て対象。VRAM目安として7Bモデルのq4_0量子化で約5GB、13Bモデルで約8GB必要になる。

AMD: ROCm対応GPU。RX 6000シリーズ(RDNA2)以降が実績豊富。RX 5000シリーズ(RDNA1)はGFXバージョンのオーバーライドが必要なケースがある。

Apple Silicon(M1/M2/M3)はMetal経由でGPU推論が動くため本記事の対象外だ。Linux x86_64サーバー環境を前提として読み進めてほしい。

NVIDIA CUDA環境をUbuntuで構築する手順

Ubuntu 22.04 LTS / 24.04 LTSを前提に手順を示す。OllamaはCUDA 12.x系との組み合わせで安定動作が確認されている。

ステップ 1. 既存ドライバの確認と削除

クリーンな状態から始めるために、古いNVIDIAドライバが入っている場合は先に削除する。

# 既存ドライバを確認 $ dpkg -l | grep nvidia # 古いドライバをまとめて削除(入っていない場合はスキップ) $ sudo apt purge 'nvidia-*' -y $ sudo apt autoremove -y

ステップ 2. ubuntu-driversで推奨ドライバをインストール

手動でバージョンを探すより、ubuntu-driversを使って推奨ドライバを一発インストールする方が確実だ。

$ sudo apt update $ sudo apt install ubuntu-drivers-common -y $ sudo ubuntu-drivers autoinstall $ sudo reboot

再起動後に nvidia-smi が通れば、ドライバは正しく入っている。

ステップ 3. CUDA Toolkitのインストール

NVIDIAの公式リポジトリからCUDA 12.xをインストールする。OllamaはToolkit側のライブラリを使うため、このステップを省くとGPU推論が動かないことがある。

# Ubuntu 22.04向けCUDAリポジトリを追加 $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb $ sudo dpkg -i cuda-keyring_1.1-1_all.deb $ sudo apt update # CUDA 12.xをインストール(cudaメタパッケージで最新安定版が入る) $ sudo apt install cuda -y $ sudo reboot

再起動後に以下のコマンドでGPUとCUDAのバージョンが確認できる。

$ nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 545.23.08 Driver Version: 545.23.08 CUDA Version: 12.3 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 NVIDIA RTX 4090 Off | 00000000:01:00.0 Off | Off | | 30% 42C P8 20W / 450W | 120MiB / 24564MiB | 0% Default | +-----------------------------------------------------------------------------+

DriverバージョンとCUDAバージョンが表示されれば準備完了だ。この状態でOllamaを起動すると、自動的にCUDA経由でGPU推論が有効になる。Ollamaのインストール手順はUbuntu ServerでローカルLLMを構築する方法を参照してほしい。

AMD ROCm環境をUbuntuで構築する手順

AMD GPUを使う場合はROCm(Radeon Open Compute)を導入する。RDNA2(RX 6000シリーズ)以降であれば、ROCm 6.xで安定して動く。

ステップ 1. ROCmリポジトリの追加

# AMDの公式スクリプトでリポジトリとキーを追加 $ sudo apt update $ sudo apt install wget gnupg -y $ wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null # Ubuntu 22.04向けROCm 6.xリポジトリを追加 $ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.1 jammy main" \ | sudo tee /etc/apt/sources.list.d/rocm.list $ sudo apt update

ステップ 2. ROCm SDKのインストールとグループ設定

$ sudo apt install rocm-hip-sdk -y # ROCm利用にはrenderおよびvideoグループへの追加が必要 $ sudo usermod -aG render,video $USER # ROCmのパスを通す $ echo 'export PATH=$PATH:/opt/rocm/bin' >> ~/.bashrc $ source ~/.bashrc $ sudo reboot

再起動後に rocminfo コマンドでGPUが認識されているか確認する。

$ rocminfo | grep -A5 "Agent 2" Agent 2 ******* Name: gfx1100 Uuid: GPU-xxxxxxxx Marketing Name: AMD Radeon RX 7900 XTX Vendor Name: AMD

`Agent 2` 以降にGPUの情報が確認できれば認識されている。

RDNA1(RX 5000シリーズ)を使う場合の追加設定

RX 5000シリーズはROCmの公式サポート外だが、GFXバージョンを上書きする環境変数でOllamaに認識させられることがある。

# RX 5700 XTの場合(gfx1010相当としてOverride) $ export HSA_OVERRIDE_GFX_VERSION=10.3.0 $ ollama serve

ただし動作保証はないため、業務用途では公式サポートGPUを推奨する。

OllamaがGPUを使っているか確認する方法

GPUを有効化した後、実際にOllamaがGPU推論を行っているかを確認する方法を3つ示す。

方法 1. ollama ps で確認する(最も手軽)

モデルをロードした状態で `ollama ps` を実行すると、使用しているプロセッサが表示される。

# まずモデルを起動しておく $ ollama run llama3.3:70b-instruct-q4_0 # 別ターミナルで確認 $ ollama ps NAME ID SIZE PROCESSOR UNTIL llama3.3:70b-instruct-q4_0 abc123def456 42 GB 100% GPU 4 minutes from now

`PROCESSOR` 列が `100% GPU` であればGPU推論が動いている。`100% CPU` であればドライバ設定に問題がある。

方法 2. nvidia-smi でリアルタイム確認(NVIDIA)

# 1秒ごとに更新(推論中にVRAMと使用率が上がれば正常) $ watch -n 1 nvidia-smi # より詳細なモニタリング $ nvidia-smi dmon -s u

推論リクエストを送った瞬間にGPU-Util(使用率)が上昇すれば、確実にGPU推論が動いている。

方法 3. デバッグログで詳細を確認

# デバッグログを有効にしてOllamaを起動 $ OLLAMA_DEBUG=1 ollama serve 2>&1 | grep -i gpu

起動ログに `CUDA` や `ROCm` のデバイス情報が表示されればGPUが認識されている。`no GPU devices found` が出た場合はドライバの再確認が必要だ。

モデル選定で迷ったときはローカルLLMのモデルを比較する方法も参考にしてほしい。VRAM容量に合ったモデルと量子化タイプを選ぶことが、GPU推論を安定させる上でも重要になる。

GPU推論とCPU推論の速度差を計測する方法

「GPUで何倍速くなるか」を実際の数値で確認する方法を示す。Ollamaには簡易ベンチマーク機能がある。

ollama run の --verbose オプションで速度を確認する

# --verbose で推論速度(トークン/秒)が表示される $ ollama run llama3.3:70b-instruct-q4_0 --verbose >> 東京の天気について教えてください ... (応答テキスト) ... total duration: 4.521s load duration: 138.2ms prompt eval count: 15 tokens prompt eval duration: 248ms prompt eval rate: 60.48 tokens/s eval count: 142 tokens eval duration: 4.132s eval rate: 34.37 tokens/s

この `eval rate`(出力トークン/秒)がGPU性能を直接示す指標だ。同じモデルをCPUで動かした場合は `eval rate` が 1~3 tokens/s 程度になることが多く、GPU(RTX 4090など)では 30~60 tokens/s 程度が出る。

CPUとGPUで同条件の比較をするには、`CUDA_VISIBLE_DEVICES=""` を設定してGPUを見えなくしたうえで同じモデルを実行すればよい。

# GPUを無効にしてCPU推論の速度を計測 $ CUDA_VISIBLE_DEVICES="" ollama run llama3.3:70b-instruct-q4_0 --verbose

現場で聞いた話では、RTX 3090を使った環境でMistralの7Bモデルをq4_0量子化で動かした場合、CPUでは約2 tokens/sだったものがGPUで約80 tokens/sまで上がった事例がある。用途が会話インターフェースであれば、この差は体感として明確に出る。

GPU有効化後によくあるトラブルと対処法

トラブル 1: ollama ps に「100% CPU」と出る

原因はほぼドライバかCUDA Toolkitの問題だ。次の順で確認する。

・`nvidia-smi` が通るか確認(通らない → ドライバ未インストール)
・Ollamaを再起動してみる(`systemctl restart ollama`)
・`OLLAMA_DEBUG=1 ollama serve` でGPUデバイス検出ログを確認

トラブル 2: CUDA out of memory エラー

モデルサイズがVRAMを超えている。`ollama ps` でVRAM使用量を確認し、量子化タイプを下げるか小さいモデルに切り替える。たとえば70BのフルモデルからMistralの7Bモデルに変えるだけでVRAM要件が大幅に下がる。

トラブル 3: ROCmでOllamaがGPUを認識しない

render グループと video グループへの追加が反映されていない可能性がある。`groups $USER` でグループ一覧を確認し、再ログインまたは再起動を行う。

# グループ確認 $ groups $USER tomohiro : tomohiro adm render video sudo # renderとvideoが含まれていない場合は追加してから再起動 $ sudo usermod -aG render,video $USER $ sudo reboot

トラブル 4: CUDA VersionとDriver Versionの不一致

`nvidia-smi` で表示されるCUDA VersionはDriverがサポートする最大バージョンであり、実際のインストール済みCUDA Toolkitバージョンとは別物だ。`nvcc --version` でToolkit側のバージョンを確認し、Driverが対応するバージョンのToolkitが入っているか照合する。

# CUDAコンパイラのバージョン確認 $ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Cuda compilation tools, release 12.3, V12.3.107

このバージョンがDriverのサポート範囲内にあれば問題ない。Ollamaのログに `CUDA driver version is insufficient` が出たときはToolkitのダウングレードかDriverのアップデートが必要だ。

OllamaをNginxリバースプロキシ経由でチームに公開している場合、GPUを有効化しても接続設定は別問題として対処が必要になる。詳しくはOllamaの本番環境セットアップガイドで本番運用の構成全体を確認してほしい。

マルチGPU構成でOllamaを設定する方法

複数のGPUを搭載したサーバーでOllamaを動かす場合、デフォルトではOllamaが利用可能なすべてのGPUを使おうとする。用途によっては特定のGPUだけに制限したい場面がある。

CUDA_VISIBLE_DEVICES で使用するGPUを指定する

`CUDA_VISIBLE_DEVICES` は標準的なCUDA環境変数で、Ollamaにも有効だ。

# GPU 0番のみを使用 $ CUDA_VISIBLE_DEVICES=0 ollama serve # GPU 0番と1番を使用 $ CUDA_VISIBLE_DEVICES=0,1 ollama serve

systemdのサービスとして管理している場合は、override.confに環境変数を設定する。

$ sudo systemctl edit ollama

開いたエディタに以下を記述する。

[Service] Environment="CUDA_VISIBLE_DEVICES=0"

保存後に再起動すれば設定が反映される。

$ sudo systemctl daemon-reload $ sudo systemctl restart ollama

大型モデルをマルチGPUで分散させる場合の注意点

70Bモデルなど単一のGPUに収まらないサイズのモデルは、Ollamaが自動的に複数のGPUに分散させる。ただしGPU間のデータ転送がボトルネックになるため、NVLinkや高速なPCIeバスを持つ構成でないと、単一高VRAMのGPU1枚の方が速いケースもある。現場での検証では、4090×2枚(NVLink無し)より3090Ti(VRAM 24GB)1枚の方が70B-q4_0のスループットが高かったという話もある。構成の最適解はモデルサイズと用途によって変わるため、実測で判断することを強く勧める。

情シス部門でチームへのローカルLLM提供を検討している場合は、社内でChatGPTが使えないときの代替手段も合わせて読んでおくと、GPU選定の判断軸が整理できる。

まとめ

OllamaのGPU有効化はドライバとランタイムさえ正しく入れれば、Ollama側の設定変更は不要だ。まず `ollama ps` でGPUが使われているかを確認し、問題があれば `OLLAMA_DEBUG=1` のログから切り分けるのが最短ルートになる。
項目 NVIDIA CUDA AMD ROCm
推奨バージョン CUDA 12.x(Driver 525以上) ROCm 6.x
インストール方法 ubuntu-drivers autoinstall + cuda pkg rocm.gpg.key追加 + rocm-hip-sdk
追加設定 不要(ドライバ導入後は自動) render/videoグループへの追加が必要
GPU認識確認コマンド nvidia-smi rocminfo
Ollama動作確認 ollama ps(PROCESSOR列を確認) ollama ps(PROCESSOR列を確認)
GPU選択環境変数 CUDA_VISIBLE_DEVICES=0,1 ROCR_VISIBLE_DEVICES=0

GPU推論が有効になれば、CPUのみの環境と比べて十倍前後の処理速度が出る。まずは `ollama ps` でPROCESSOR列を確認し、CPUと表示されているなら今回の手順でドライバを見直してほしい。設定が決まれば、あとは社内のユースケースに合わせてモデルや量子化を選ぶだけだ。現場で長年GPUサーバーを運用してきたインフラエンジニアたちが口を揃えるのは、GPUの初期設定は「ドライバとランタイムの組み合わせを間違えない」この一点に尽きるという点だ。

GPUセットアップからローカルLLM活用まで2日間のハンズオンで習得する

ドライバ設定からモデル選定、チームへの公開まで、実機GPU環境を使ってハンズオンで体験したい方向けに「ローカルAIマスターセミナー」を開催しています。
少人数(最大8名)ZOOMハンズオン形式で実施しています。

>> ローカルAIマスターセミナーの詳細を確認する
ローカルLLMの構築・運用に関する関連記事もあわせて参考にしてください。

Ubuntu ServerでローカルLLMを構築する方法|Ollamaで機密データを外に出さず業務AIを動かす完全ガイド
社内でChatGPTが使えないときの代替手段|機密データを守るローカルLLMという選択肢
ローカルLLMのモデルを比較する方法|Llama3.3・Mistral・Gemma・Phi-4をUbuntuで使い分けるポイント

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。