GPUが検出されない問題の概要
Ollamaを使用中に「No compatible GPUs were detected」や「GPU not detected」といったエラーが発生し、GPU而不是使用而是Fallback到CPU运行。この种情况在Windows、Linux、Docker等多种环境中都可能发生,表现为推理速度显著下降,token生成变慢,系统资源消耗增加。
問題の具体的な症状
代表的な症状は以下の通りです:
- Ollama実行中にGPUが使用されず、CPUだけで処理される
- 推論速度が著しく低下する(例:30 token/s → 5 token/s以下)
- エラー画面に「No compatible GPUs were discovered」と表示される
- nvidia-smiではGPU認識されているが、Ollamaでは認識されない
結論:解決策の要約
GPU検出の問題は主に①CUDA Driver・Ollamaバージョンの不一致、②環境変数の設定不足、③DockerコンテナのGPUアクセス設定、④パーミッション設定の4つの原因で発生します。順に排查を行うことでほとんどの問題を解決できます。
具体的な解決手順
ステップ1:環境の確認
まず、現在の環境を確認します。以下のコマンドを実行してください:
# Ollamaのバージョン確認
ollama --version
# CUDA Driverバージョン確認
nvidia-smi
# GPU情報の詳細確認
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv
ステップ2:DriverとOllamaの互換性確認
Ollamaは特定のCUDA Driverバージョン以上が必要です。最新のOllamaにアップデートしてください:
# Ollamaのアップデート(Windows)
winget upgrade Ollama.Ollama
# Ollamaのアップデート(Linux)
curl -fsSL https://ollama.com/install.sh | sh
ステップ3:環境変数の設定
環境変数にCUDA相關設定を追加します:
# Linuxの場合
export CUDA_VISIBLE_DEVICES=0
# 永続的に設定する場合
echo 'export CUDA_VISIBLE_DEVICES=0' >> ~/.bashrc
source ~/.bashrc
ステップ4:Ollamaサービスの再起動
設定変更後、Ollamaサービスを再起動します:
# Ollamaサービスの停止
ollama stop
# Ollamaの再起動
ollama serve
# バックグラウンドで実行
nohup ollama serve > /dev/null 2>&1 &
ステップ5:Dockerを使用する場合のGPU設定
DockerコンテナでOllamaを実行している場合、GPUアクセス用のフラグが必要です:
# 正しいDocker実行コマンド
docker run -d --gpus=all --network=host --restart=always ollama/ollama
# 旧バージョンの場合
docker run -d --runtime=nvidia --network=host ollama/ollama
ステップ6:Linuxでのパーミッション確認
Linux環境では、GPUアクセスに適切なグループ membershipが必要です:
# 現在のユーザーのグループ確認
groups
# videoグループへの参加(必要な場合)
sudo usermod -aG video $USER
# renderグループへの参加(AMD GPUの場合)
sudo usermod -aG render $USER
# グループ変更後、ログインし直すか再起動
ステップ7:Driverの再インストール
上記で解决しない場合、Driverを再インストール试试:
# NVIDIA Driverのインストール確認
sudo apt-get install nvidia-driver-535 # バージョン一例
# Driverの再読み込み
sudo modprobe nvidia
# システムログの確認
dmesg | grep -i nvrm
補足・注意点
バージョン依存的问题
Ollamaのバージョンが上がると、必要なCUDA Driverバージョンも変更されます。古いOllamaを使用している場合、最新版にアップデートすることで解决するケースが多くあります。
Windows特有の注意事项
WindowsではOllamaをサービスとして実行している場合があります。その場合はGUI或者コマンドラインからサービスを再起動してください。
GPU対応の確認
使用するGPUがOllamaの動作要件を満たしているか确认してください。一般的には、Compute Capability 7.0以上のGPUが必要です。
AMD GPUの場合
AMD GPUを使用する場合、ROCm対応バージョンまたはCPU推論の使用を検討してください。
参考元
- Ollama not using GPU (RTX 3090) anymore on Ubuntu 20.04
- Troubleshooting – Ollama
- Ollama serve fails to detect Nvidia GPUs after updating
- Ollama no compatible GPUs were discovered – Stack Overflow