ウィンドウズ
以下は、OllamaをWindowsシステムのGPUで実行するようにカスタマイズする方法の例です。
オーラマ デフォルトでは、CPU が推論に使用されます。このチュートリアルでは、WindowsシステムでGPUアクセラレーションを有効にするための環境変数の設定方法を説明します。
前提条件
- このコンピューターにはNVIDIAのグラフィックカードが搭載されています。
- NVIDIAグラフィックス・ドライバがインストールされ、次のコマンドで使用できる。
nvidia-smi
をクリックして、ドライバがインストールされているかどうかを確認してください。 - CUDAツールキットがインストールされており、以下のコマンドで使用できる。
nvcc --version
をクリックして、CUDAがインストールされているかどうかを確認する。
チップ
NVIDIAグラフィックドライバとCUDAツールキットのインストールについては、関連するチュートリアルを各自で検索してください。 お使いのコンピューターが上記の前提条件を満たしている場合、OllamaはデフォルトでGPUアクセラレーションに対応しています。特定のGPUを指定したい場合は、以下の手順に従って設定してください。
環境変数の設定
- システム環境変数の設定を開く
- Windowsの検索バーに「環境変数」と入力し、「システム環境変数の編集」を選択する。
- システムのプロパティ」ポップアップウィンドウで、「詳細設定」タブをクリックし、「環境変数」ボタンをクリックします。
- OLLAMA_GPU_LAYER変数の作成
- システム変数」エリアで、「新規」ボタンをクリックする。
- New System Variableダイアログボックスで、以下の情報を入力する:
- 変数名:
OLLAMA_GPU_LAYER
- 変数値:
cuda
(これはOllamaにGPUアクセラレーションにCUDAを使用するように指示します。)
- 変数名:
- OK」をクリックして変数を保存する。
- (オプション)使用するGPUを指定します。
- システムに複数のGPUがあり、Ollamaが特定のGPUを使うように指定したい場合は、以下のように設定します。
CUDA_VISIBLE_DEVICES
環境変数。 - GPUのUUIDを検索します: ドライバの更新やシステムの再起動によって番号が変わる可能性があるため、番号の代わりにUUIDを使用することを強くお勧めします。
- コマンドプロンプトまたはPowerShellを開く。
- コマンドを実行する:
nvidia-smi -L
- 出力から、使用したいGPUの「UUID」値を見つける。 例
GPU 00000000:01:00.0
下げるUUID : GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
- CUDA_VISIBLE_DEVICES変数を作成する:
- システム変数」エリアで、「新規」ボタンをクリックする。
- New System Variableダイアログボックスで、以下の情報を入力する:
- 変数名:
CUDA_VISIBLE_DEVICES
- 変数値: 見つかったGPUのUUID:
GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- 変数名:
- OK」をクリックして変数を保存する。
- システムに複数のGPUがあり、Ollamaが特定のGPUを使うように指定したい場合は、以下のように設定します。
重要だ: 環境変数を有効にするには Ollamaが動作している端末またはアプリケーションを再起動する。 .
GPUアクセラレーションが有効であることを確認します:
- コマンドプロンプトを開く。
- 例えば、オーラマを走らせる:
ollama run deepseek-r1:1.5b
- 新しいコマンドプロンプトウィンドウを開き
ollama ps
コマンドを実行すると、Ollamaで実行中のプロセスが表示される。
リナックス
以下は、OllamaをLinuxシステムのGPU上で実行するようにカスタマイズする方法の例です。
- 確立
ollama_gpu_selector.sh
スクリプト・ファイルは次のような内容である:
#!/bin/bash
# Validate input
validate_input(){
if[[! $1 =~^[0-4](,[0-4])*$ ]];then
echo "Error: Invalid input. Please enter numbers between 0 and 4, separated by commas."
exit1
fi
}
# Update the service file with CUDA_VISIBLE_DEVICES values
update_service(){
# Check if CUDA_VISIBLE_DEVICES environment variable exists in the service file
if grep -q '^Environment="CUDA_VISIBLE_DEVICES='/etc/systemd/system/ollama.service;then
# Update the existing CUDA_VISIBLE_DEVICES values
sudo sed -i 's/^Environment="CUDA_VISIBLE_DEVICES=.*/Environment="CUDA_VISIBLE_DEVICES='"$1"'"/'/etc/systemd/system/ollama.service
else
# Add a new CUDA_VISIBLE_DEVICES environment variable
sudo sed -i '/\[Service\]/a Environment="CUDA_VISIBLE_DEVICES='"$1"'"'/etc/systemd/system/ollama.service
fi
# Reload and restart the systemd service
sudo systemctl daemon-reload
sudo systemctl restart ollama.service
echo "Service updated and restarted with CUDA_VISIBLE_DEVICES=$1"
}
# Check if arguments are passed
if["$#"-eq 0];then
# Prompt user for CUDA_VISIBLE_DEVICES values if no arguments are passed
read -p "Enter CUDA_VISIBLE_DEVICES values (0-4, comma-separated): " cuda_values
validate_input "$cuda_values"
update_service "$cuda_values"
else
# Use arguments as CUDA_VISIBLE_DEVICES values
cuda_values="$1"
validate_input "$cuda_values"
update_service "$cuda_values"
fi
- スクリプトファイルへの実行権限の追加
chmod +x ollama_gpu_selector.sh
sudo ./ollama_gpu_selector.sh
スクリプトを実行した後、GPU番号のプロンプトに従ってOllamaが使用するGPUを指定します。例えば、カンマで複数のGPU番号を区切ることができます:0,1,2
.
- Ollamaサービスの再起動
cat /etc/systemd/system/ollama.service
コマンドを実行した後、Ollamaサービスファイルを見て CUDA_VISIBLE_DEVICES
環境変数が更新された。
更新されていれば、例えば次のように追加される。 Environment="CUDA_VISIBLE_DEVICES=0,1,2"
環境変数。