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())'