ウィンドウズ
以下は、OllamaをWindowsシステムのGPUで実行するようにカスタマイズする方法の例です。
オーラマ デフォルトでは、CPU が推論に使用されます。このチュートリアルでは、WindowsシステムでGPUアクセラレーションを有効にするための環境変数の設定方法を説明します。
前提条件
- このコンピューターにはNVIDIAのグラフィックカードが搭載されています。
- NVIDIAグラフィックス・ドライバがインストールされ、次のコマンドで使用できる。
エヌビディア・スミ
をクリックして、ドライバがインストールされているかどうかを確認してください。 - CUDAツールキットがインストールされており、以下のコマンドで使用できる。
nvcc --バージョン
をクリックして、CUDAがインストールされているかどうかを確認する。
チップ
NVIDIAグラフィックドライバとCUDAツールキットのインストールについては、関連するチュートリアルを各自で検索してください。 お使いのコンピューターが上記の前提条件を満たしている場合、OllamaはデフォルトでGPUアクセラレーションに対応しています。特定のGPUを指定したい場合は、以下の手順に従って設定してください。
環境変数の設定
- システム環境変数の設定を開く
- Windowsの検索バーに「環境変数」と入力し、「システム環境変数の編集」を選択する。
- システムのプロパティ」ポップアップウィンドウで、「詳細設定」タブをクリックし、「環境変数」ボタンをクリックします。
- OLLAMA_GPU_LAYER変数の作成
- システム変数」エリアで、「新規」ボタンをクリックする。
- New System Variableダイアログボックスで、以下の情報を入力する:
- 変数名:
ollama_gpu_layer
- 変数値:
クーダ
(これは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-xxxxxxxxxxx-xxxxxx-xxxxxxxxxxxxxxx
.
- CUDA_VISIBLE_DEVICES変数を作成する:
- システム変数」エリアで、「新規」ボタンをクリックする。
- New System Variableダイアログボックスで、以下の情報を入力する:
- 変数名:
cuda_visible_devices
- 変数値: 見つかったGPUのUUID:
GPU-xxxxxxxx-xxxxxx-xxxxxx-xxxxxxxxxxxxx
- 変数名:
- OK」をクリックして変数を保存する。
- システムに複数のGPUがあり、Ollamaが特定のGPUを使うように指定したい場合は、以下のように設定します。
重要だ: 環境変数を有効にするには Ollamaが動作している端末またはアプリケーションを再起動する。 .
GPUアクセラレーションが有効であることを確認します:
- コマンドプロンプトを開く。
- 例えば、オーラマを走らせる:
オラマラン ディープシークR1:1.5b
- 新しいコマンドプロンプトウィンドウを開き
ollama ps
コマンドを実行すると、Ollamaで実行中のプロセスが表示される。
リナックス
以下は、OllamaをLinuxシステムのGPU上で実行するようにカスタマイズする方法の例です。
- 確立
ollama_gpu_selector.sh
スクリプト・ファイルは次のような内容である:
#!/bin/bash
# 入力を検証する
validate_input(){
if[[! $1 =~^[0-4](,[0-4])*$ ]];then
echo "エラー:無効な入力です。 0から4の数字をカンマで区切って入力してください。"
exit1
exit1." echo "エラー: 無効な入力です。
}
# CUDA_VISIBLE_DEVICESの値でサービスファイルを更新します。
update_service(){
# CUDA_VISIBLE_DEVICES環境変数がサービスファイルに存在するか確認します。
if grep -q '^Environment="CUDA_VISIBLE_DEVICES='/etc/systemd/system/ollama.service;then
# 既存の CUDA_VISIBLE_DEVICES の値を更新します。
sudo sed -i 's/^Environment="CUDA_VISIBLE_DEVICES=.*/Environment="CUDA_VISIBLE_DEVICES='"$1"'"/'/etc/systemd/system/ollama.service
cuda_visible_devices
# 新しいCUDA_VISIBLE_DEVICES環境変数を追加する。
sudo sed -i '/[Service]/a Environment="CUDA_VISIBLE_DEVICES='"$1"'" /etc/systemd/system/ollama.service
サービス'' /etc/systemd/system/ollama.service
# systemd サービスをリロードして再起動します。
sudo systemctl daemon-reload
sudo systemctl restart ollama.service
echo "サービスが更新され、CUDA_VISIBLE_DEVICES=$1 で再起動されました。"
}
# 引数が渡されているかチェック
if["$#"-eq 0];then
# 引数が渡されない場合、CUDA_VISIBLE_DEVICES値の入力をユーザーに促す
read -p "CUDA_VISIBLE_DEVICESの値を入力してください(0~4、カンマ区切り): " cuda_values
バリデート入力 "$cuda_values"
update_service "$cuda_values"
その他
# CUDA_VISIBLE_DEVICES値として引数を使用する
cuda_values="$1"
validate_input "$cuda_values"
update_service "$cuda_values"
$cuda_values "オプションは次のページで利用できます。
- スクリプトファイルへの実行権限の追加
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"
環境変数。