Introduction
GPU を使って docker で遊ぶときはいつも Ubuntu を使っていたが、自宅のだと一番良い GPU を積んだマシンは Windows とのデュアルブートのため、環境の切り替えが必要。
いい加減面倒なので、Windows で GPU を使った docker 環境を作ってみた。
実はその前に、Python の venv で環境を作ってやりたいことができるかどうか試したが、python パッケージのビルドでこけたのでやむなく docker でやることにしたのが事の始まり。
How to use?
基本はググってみれば情報は見つかる。
1. WSL の更新
カーネルが 5.10.43.3 以上であることが条件。
私の環境は下記だった。
1 | C:\WINDOWS\system32> wsl cat /proc/version |
そのため、
1 | C:\WINDOWS\system32> wsl --update |
で更新。
1 | C:\WINDOWS\system32> wsl --shutdown |
1 | C:\WINDOWS\system32> wsl cat /proc/version |
あと、docker も再起動する。
2. GPU ドライバのインストール
これは正しいかわからないが、古いドライバーだと使えない可能性がある。
installing-nvidia-drivers によれば
Install NVIDIA GeForce Game Ready or NVIDIA RTX Quadro Windows 11 display driver on your system with a compatible GeForce or NVIDIA RTX/Quadro card from https://www.nvidia.com/Download/index.aspx?lang=en-us. rRefer to the system requirements in the Appendix.)
とあるので、 NVIDIA GeForce Game Ready をインストールする。
Studio Driver とどう違うかはわからないが、指示に従う。
3. 動作確認
1 | C:\WINDOWS\system32> docker run --rm -it --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark -numbodies=512000 |
無事に動いた。
docker で作った Pytorch 環境からでも
1 | user@b148c3ef3f01:/opt/base$ python3 -c "import torch; print(torch.cuda.is_available())" |
問題なし。