Open3
WSL2にubuntuを入れて、DockerいれてGPUを動かすぞ。
前提
- WSL2が動くようになっていること。
https://qiita.com/ksasaki/items/ee864abd74f95fea1efa 参照
Ubuntuのインストール
その前に、Distroの削除方法
$ wsl --unregister Ubuntu-20.04
使用可能Distro一覧
$ wsl --list --online
Ubuntu 20.04インストール
$ wsl --install -d Ubuntu-20.04
Ubuntuの設定(好みによる)
ビープ音消す
echo "set bell-style none" >> ~/.inputrc
たいていの場合ネットワークが死んでいるので。
$ sudo sh -c "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
dotfileを投入しておく
下記のあたりかな?
.aws
.ssh
GPUをDockerで動かせるようにする
Cudaインストール
を参考に。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
$ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub
$ sudo apt-get update\
$ sudo apt-get -y install cuda
$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
Docker インストール
$ curl https://get.docker.com | sh
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ 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
$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2
$ sudo usermod -aG docker $USER
$ sudo service docker start
$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Kaggleカーネルをインストール
docker run -it -p 8080:8080 -v `pwd`:/work --name hogehoge gcr.io/kaggle-gpu-images/python
⇒動かない。原因未調査。 ⇒動いた。なぜだ?
Kaggleカーネルを自分でビルド
./build --gpu
こちらでやれば動く。
2023/06/27 追記
このページの CUDA Toolkit Downloads からインストールしてみる。
$ sudo apt-key del 7fa2af80
[sudo] password for wataru:
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
テスト
過去記事の通りdockerをインストールしてテスト
→動かない
$ sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
[sudo] password for wataru:
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
ERRO[0000] error waiting for container:
を参考にnividia-container-runtimeのみインストール。→動いた。
sudo apt-get install nvidia-container-runtime
sudo service docker restart
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -benchmark
試しにこちらも → 動いた
sudo docker run --rm --gpus all nvidia/cuda:11.7.0-base-ubuntu22.04 nvidia-smi
ついでにAnacondaも入れる
wgetとしてbashで実行。