この記事では、Ollamaを使ってローカルでLLMを実行する際に発生する「CUDA error: out of memory」エラーと、GPU推論が極端に遅くなる問題について、海外コミュニティでの解決策を要約して解説します。
1. どんな問題(エラー)が発生したか?
- 発生した環境やツール: Ollama、NVIDIA RTX 3060(12GB VRAM)、Linux / Windows
- エラーメッセージ:
CUDA error: out of memory、falling back to CPU - 症状:
llama3:70bモデルを実行するとテキスト生成が1単語に数秒〜数十秒かかる。ログを確認するとGPUメモリ不足でCPUフォールバックが発生している。
2. 結論(解決策)
実行しようとしているモデルのパラメータサイズがGPUのVRAM容量に収まるかを事前に確認し、VRAM内に収まるサイズのモデル(またはその量子化版)を使用することで、GPU上で高速に推論できるようになります。
3. 具体的な手順
- 現在のGPU VRAMを確認する
nvidia-smiTotal Memoryの欄でVRAM容量を確認します。例:RTX 3060 → 12GB - モデルサイズの目安を理解する
モデル 必要VRAM目安(Q4量子化) 7B〜8Bパラメータ 約5〜6GB 13Bパラメータ 約8〜10GB 70Bパラメータ 約35〜40GB - VRAMに収まるモデルに切り替える
12GB VRAMの場合、8Bクラスのモデルが最適です。ollama run llama3:8b - 大型モデルを試す場合は量子化版を使う
ollama run llama3:70b-q2_Kただし70B Q2でも約25GB程度のメモリが必要なため、12GB VRAMでは依然としてCPUフォールバックが発生する可能性があります。
- GPU使用状況をリアルタイムで監視する
watch -n 1 nvidia-smiモデルのロード後、
GPU-Utilが0%のままであればCPUフォールバックが発生しています。
4. 補足・注意点
Ollamaは起動時にモデルの全レイヤーをGPUに載せようとし、VRAMが不足すると自動的にCPU(システムRAM)にフォールバックします。一部のレイヤーだけGPUに載せる「部分オフロード」はOLLAMA_NUM_GPU環境変数で制御できます。
OLLAMA_NUM_GPU=20 ollama run llama3:70b
この場合、最初の20レイヤーがGPUに載り、残りはCPUで処理されます。GPUとCPUの併用により、フルCPUよりは高速になりますが、フルGPUほどの速度は出ません。
5.
👉 【RunPod】1時間数十円から使える高性能クラウドGPU
参考元
本記事は以下のディスカッションを要約・再構成したものです。
Source: Ollama running extremely slow / “CUDA out of memory” error
💡 この問題を根本的に解決するには
ローカル環境のGPUトラブルが頻発する場合、ハードウェアの見直しも検討してみてください:
- VRAM不足なら → RTX 4070 Ti Super(16GB VRAM)
- メモリ不足なら → DDR5 64GBメモリ
- AI開発を体系的に学ぶなら → AI・機械学習の実践書籍