#author("2025-04-17T11:33:25+09:00","","")
#author("2025-04-17T11:42:28+09:00","","")
[[Windows/wsl]]

*Windows の WSL で GPU (GeForce) を使う。 [#tf7de8c9]


https://learn.microsoft.com/ja-jp/windows/ai/directml/gpu-cuda-in-wsl


** Windows へのドライバインストール [#i3ddaaa4]
+ ドライバの確認 Power Shell で、次のコマンドを入力する。
 nvidia-smi
エラーなく、対象のGPUが表示されればOK。
表示されていない場合は、NVIDIAのページよりドライバをダウンロード&インストールする。
※メーカーPCの場合は、メーカーのページより適宜ダウンロード&インストールする。

** WSL への cuda インストール [#n924a90e]

下記 URL より、対象 OS 等選択すると、手順が表示される。

&color(red, CUDA Toolkit Installer); の手順に従って インストールする。

※ Driver Installer の方は、インストールしないこと。

https://developer.nvidia.com/cuda-downloads

※ wget がない場合は、事前にインストールしておく。
-Debian 系
 sudo apt install wget
-Red Hat 系
 sudo yum install wget


** 確認 [#k6011b5a]
途中、うまくいかない場合は、以下確認。
WSL 上で、下記実行し表示されれば認識はしている。
 nvidia-smi
cuda のバージョン確認は、下記コマンドで可能 
 /usr/local/cuda/bin/nvcc -V




** 上記までできれば、せっかくなので、PyTorch を入れる。 [#yee5c270]

- Python をインストール、設定する。
[[Linux/基本設定]] のページに記載あります。

※Python のバージョンは PyTorch が対応しているバージョン(2025年3月時点では、3.9 ~3.13) を利用ください。(他ツール等考慮すると、3.10.x が良いかと思います)

- PyTorch をインストールする。
 # venv 使う場合
 python -m venv pytorch
 . pytorch/bin/activate
 # pytorch 関連インストール
 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

★最新のコマンドは次の PyTorch のページで確認ください。

https://pytorch.org/

※Install PyTorch にて、自分の環境を選択して、Run this Command: に表示されるコマンドを実行すればOKです。


- 確認
次のコマンドで、True が表示されれば OKです。
 python -c "import torch; print(torch.cuda.is_available())"



* scikit-learn [#ldf3f539]
ついでに、scikit-learn の環境構築
 mkdir scikit-learn
 cd scikit-learn
 python -m venv venv
 . venv/bin/activate
 pip install numpy
 pip install scikit-learn
 pip install cupy-cuda12x

※ cupy-cuda12x は、nvidia-smi で表示される CUDA Version に合わせてください。(11.xx であれば、cupy-cuda11x となります)


* Docker での GPU 利用 [#l6b7d4ba]
- nvidia-container-toolkit をインストールする 
 sudo apt install nvidia-container-toolkit
- 設定
 sudo nvidia-ctk runtime configure --runtime=docker
 # 上記で /etc/docker/daemon.json ファイルが生成される。適宜更新のこと。
-Docker デーモン再起動
 sudo systemctl restart docker

* Kubernetes での GPU 利用 [#j3ae3cb1]
- nvidia-container-toolkit をインストールする
 sudo apt install nvidia-container-toolkit
- 設定
 sudo nvidia-ctk runtime configure --runtime=containerd
 # 上記で /etc/containerd/config.toml ファイルが生成される。適宜更新のこと。
-Docker デーモン再起動
 sudo systemctl restart containerd


* 実行 [#v7e2909a]
* 実行 (docker) [#v7e2909a]
 docker run -it --rm --gpus all <イメージ名>
GPU を指定したい場合
  docker run -it --rm --gpus device=<ID> <イメージ名>
** GPU を指定したい場合 [#rceefd20]
- Device ID (UUID 指定)
  docker run -it --rm --gpus device=<ID> <イメージ名> [<コマンドなど>]
  # Ex)
  docker run -it --rm --gpus device=GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a
  docker run -it --rm --gpus device=GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a ubuntu nvidia-smi
※<ID>は、nvidia-smi -L にて表示される UUID 部分
 $ /usr/lib/wsl/lib/nvidia-smi -L
 GPU 0: NVIDIA H100-PCIE (UUID: GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a)
- Device ID (GPU番号指定)
 docker run -it -rm --gpus '"device=<GPU番号。カンマ区切りで複数指定可能>"' <イメージ名>
 # Ex)
 docker run -it --rm --gpus '"device=0,2"' ubuntu nvidia-smi
※GPU番号は、nvidia-smi -L にて表示される GPU XX: ~ の XX 部分の番号


* Docker Compose [#sfe32bf9]
docker-compose.yml のサンプル
 version: '3'
 services:
   voicevox:
     image: voicevox/voicevox_engine:nvidia-latest
     ports:
       - 127.0.0.1:50021:50021
     deploy:
       resources:
         reservations:
           devices:
             - driver: nvidia
               count: 1
               capabilities: [gpu]
               # count の代わりに device_ids の指定も可能 (どちらか片方を指定のこと)
               # device_ids: ['0', '2']

----
公式ドキュメントの URL を貼っておきます。

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

https://docs.docker.jp/config/containers/resource_constraints.html#resource-constraints-gpu
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS