CUDAドライバのインストール
https://developer.nvidia.com/cuda/wsl
先に入れておかないと nvidia-docker2 のインストール時に怒られる。 とりあえず最新で。
Windows 11 のWSL2にubuntuを入れる
PowerShellを「管理者として実行」。
WSLで使うLinuxのインストール
wsl.exe --install -d ubuntu
ubuntuの窓が開いてubuntu上のユーザ名とパスワードを尋ねられる。
WSLの更新
wsl.exe --update
ubuntuのユーザにdocker操作権限を付与
スタートメニュー等からubuntuのプロンプトを開いて以下を実行。
sudo gpasswd -a $(whoami) docker
sudo chgrp docker /var/run/docker.sock
sudo service docker restart
Dockerコマンドのインストール
スタートメニュー等からubuntuのプロンプトを開いて以下を実行。
curl https://get.docker.com | sudo sh
aptにnvidiaのリポジトリを追加
スタートメニュー等からubuntuのプロンプトを開いて以下を実行。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
echo $distribution
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
distributionは “ubuntu20.04” になるが、中身は ubuntu18.04 と同じようだった。
nvidia-docker2 をインストール
スタートメニュー等からubuntuのプロンプトを開いて以下を実行。
sudo apt-get update
sudo apt-get install -y nvidia-docker2
警告メッセージが出てた。/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
エラーではなく警告なので、インストール自体は完了している。
dockerの起動
スタートメニュー等からubuntuのプロンプトを開いて以下を実行。
sudo service docker start
sudo service docker sttus
nvidiaのpytorchコンテナのバージョンを調べる
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch 左側の「Latest tag」を見る。試したときは 22.08-py3 だった
pytorchコンテナの起動
ubuntuのプロンプト上でdockerコマンドを使う。
- コンテナ指定のバージョン部分は上で調べた数字を使う。
--shm-size=8g
の部分は処理内容に応じて適時調節。
docker run --gpus all -it --rm --shm-size=8g nvcr.io/nvidia/pytorch:22.08-py3
dockerコンテナが起動してコンテナ上のbashに入力できるようになる
動作確認
試しにGPUを認識できているか表示してみる。
nvidia-smi
pytorch を起動してみる。
python -c 'import torch; print(torch.cuda.is_available())'