1. はじめに
AIモデルのローカル実行を簡単にするOllamaは、マルチGPU環境でもそのまま動作するように設計されています。特別な設定をしなくても、複数のGPUを自動的に活用するため、手間なく高い計算能力を発揮できます。
しかし、以下のようなケースでは、GPUの使用を制御する必要があります。
- 特定のGPUのみを使用したい
- 使用するGPUを制限して他のタスクにリソースを確保したい
- マルチGPUの割り当てを最適化したい
本記事では、環境変数を活用してOllamaのGPU使用を管理する方法を詳しく解説します。
※ 本記事は筆者のアイデアを元に生成AIが自動作成したものです。必要に応じて追加の確認や調査を推奨します。
2. OllamaのマルチGPU動作の基本
Ollamaは、NVIDIAのCUDAを利用してGPUによる計算を実行します。マルチGPU環境では、デフォルトで複数のGPUを自動的に活用しますが、明示的に使用するGPUを制御することも可能です。
主な方法として、CUDA_VISIBLE_DEVICES
環境変数を設定することで、特定のGPUのみを使用するように制限できます。
3. 特定のGPUを指定する方法
3.1 CUDA_VISIBLE_DEVICES
の設定
CUDA_VISIBLE_DEVICES
を設定することで、OllamaがどのGPUを使用するかを制御できます。
Linux/macOSの場合
ターミナルで以下のコマンドを実行します。
export CUDA_VISIBLE_DEVICES=0 # GPU 0 を使用する場合
export CUDA_VISIBLE_DEVICES=1 # GPU 1 を使用する場合
export CUDA_VISIBLE_DEVICES=0,1 # GPU 0 と GPU 1 を使用する場合
Windowsの場合
- システム環境変数の設定画面を開く
- 「新しいシステム変数」として
CUDA_VISIBLE_DEVICES
を作成 - 値に使用したいGPUの番号を設定(例:
0
ならGPU 0を使用)
3.2 Ollamaの再起動
環境変数を設定した後、Ollamaを再起動することで変更が適用されます。
ollama serve restart
この設定により、Ollamaが指定したGPUのみを使用するようになります。
4. マルチGPUを活用するための追加設定
4.1 OLLAMA_CUDA_DEVICE
でOllamaの優先GPUを決定
Ollamaには専用の環境変数 OLLAMA_CUDA_DEVICE
があります。これを設定することで、特定のGPUを優先的に使用できます。
export OLLAMA_CUDA_DEVICE=1 # GPU 1 を優先使用
この方法は CUDA_VISIBLE_DEVICES
と併用することで、より柔軟にGPUを管理できます。
4.2 VRAMの使用量を制限する
大規模モデルを実行する際にVRAMを制限するには、以下の設定を追加します。
export PYTORCH_CUDA_ALLOC_CONF="max_split_size_mb:512"
これにより、VRAMのメモリ割り当てが調整され、安定した動作が可能になります。
5. Docker環境でOllamaをマルチGPU対応にする
Dockerを利用してOllamaを実行する場合は、以下のオプションを追加することで、GPUを適切に利用できます。
5.1 Dockerの起動オプション
Docker上でOllamaをすべてのGPUで動作させる場合:
docker run --gpus all --rm -it ollama/ollama
特定のGPUのみを使用したい場合:
docker run --gpus '"device=0,1"' --rm -it ollama/ollama
この設定では、GPU 0とGPU 1のみを使用します。
5.2 NVIDIA Container Toolkitの確認
Docker環境でGPUを使うには、NVIDIA Container Toolkitが必要です。以下のコマンドで確認できます。
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
エラーが出た場合は、ドライバの更新やToolkitの再インストールを検討してください。
6. GPUの最適な設定を見つける方法
実際の運用では、以下の方法で最適な設定を見つけることをおすすめします。
✅ nvidia-smi
で現在のGPU使用状況を確認
これにより、使用中のGPUとVRAMの状態を把握できます。
✅ 環境変数を変更しながらベンチマークを実施 例えば、CUDA_VISIBLE_DEVICES=0,1
で試した後、OLLAMA_CUDA_DEVICE=1
に変更して、推論速度やVRAM使用量の違いを比較しましょう。
✅ Docker環境では --gpus
の設定を適宜変更 GPUのリソースを最大限活用するには、実際に負荷をかけながら調整するのがベストです。
7. まとめと次のステップ
Ollamaは、デフォルトでマルチGPU環境をサポートしていますが、環境変数を設定することで、より柔軟にGPUの管理が可能になります。
重要なポイント:
CUDA_VISIBLE_DEVICES
を設定 することで、使用するGPUを指定可能OLLAMA_CUDA_DEVICE
で優先GPUを設定 し、負荷を最適化- Docker環境では
--gpus
オプションを活用 nvidia-smi
でGPUの動作状況をチェック- VRAMの使用量を調整するための
PYTORCH_CUDA_ALLOC_CONF
設定
次のステップ:
- 自身の環境に合わせて
CUDA_VISIBLE_DEVICES
を設定 - Ollamaの推論速度を計測し、どの設定が最適かテスト
- 必要に応じて
OLLAMA_CUDA_DEVICE
や VRAM管理の設定を調整
これらの手順を実践することで、OllamaをマルチGPU環境で最大限活用し、高速なAI推論を実現できます。
参考URL
-
【感情は働く上で必要か?】感情のメリット・デメリットと感情と思考の違い
記事がありません