https://learn.microsoft.com/ja-jp/windows/ai/directml/gpu-cuda-in-wsl
nvidia-smiエラーなく、対象のGPUが表示されればOK。 表示されていない場合は、NVIDIAのページよりドライバをダウンロード&インストールする。 ※メーカーPCの場合は、メーカーのページより適宜ダウンロード&インストールする。
下記 URL より、対象 OS 等選択すると、手順が表示される。
CUDA Toolkit Installer の手順に従って インストールする。
※ Driver Installer の方は、インストールしないこと。
https://developer.nvidia.com/cuda-downloads
※ wget がない場合は、事前にインストールしておく。
sudo apt install wget
sudo yum install wget
途中、うまくいかない場合は、以下確認。 WSL 上で、下記実行し表示されれば認識はしている。
nvidia-smi
cuda のバージョン確認は、下記コマンドで可能
/usr/local/cuda/bin/nvcc -V
※Python のバージョンは PyTorch が対応しているバージョン(2025年3月時点では、3.9 ~3.13) を利用ください。(他ツール等考慮すると、3.10.x が良いかと思います)
# venv 使う場合 python -m venv pytorch . pytorch/bin/activate # pytorch 関連インストール pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
★最新のコマンドは次の PyTorch のページで確認ください。
※Install PyTorch にて、自分の環境を選択して、Run this Command: に表示されるコマンドを実行すればOKです。
python -c "import torch; print(torch.cuda.is_available())"
ついでに、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 となります)
sudo apt install nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker # 上記で /etc/docker/daemon.json ファイルが生成される。適宜更新のこと。
sudo systemctl restart docker
sudo apt install nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=containerd # 上記で /etc/containerd/config.toml ファイルが生成される。適宜更新のこと。
sudo systemctl restart containerd
docker run -it --rm --gpus all <イメージ名>
docker run -it --rm --gpus device=<ID> <イメージ名> [<コマンドなど>] # Ex) 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)
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.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