Cuda in WSL2

WSL2でCUDA使えるようになったのでやる

requirements

  • win10(build 20150+, kernel 4.19.121+ required)
    Insider Program Fast Ringで
    他の製品の更新も確認する
    に✔して更新
  • Ubuntu 18.04 in WSL2
  • NVIDIA Drivers for CUDA on WSL(CUDA Driver)

Docker CE version 19.03.8, build afacb8b

Win10側でWSL2を有効にするボタンを押す

待ってました CUDA on WSL2

Getting started with CUDA on Ubuntu on WSL 2

Kubeflow Pipelinesで日本語テキスト分類の実験管理

Status: Downloaded newer image for nvcr.io/nvidia/tensorflow:20.03-tf2-py3
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request\\\\n\\\"\"": unknown.

どうして

WSL2: docker: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown.

sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd

docker: Error response from daemon: could not select device driver "" with capabilities: gpu.

Docker for desktop更新したりnvidia-docker2入れ直したりしてたらうまく行った

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 dockerd

で別にDockerデーモン起動して

docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

動いた

install pyenv

brew install pyenv

は失敗してしまう(依存パッケージが無いから?)

を参考に

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 

パス通して

pyenv install 3.8.5
pyenv global 3.8.5
python -V

install pytorch

pip install torch torchvision
python
>>> import torch
>>> torch.cuda.is_available()
True

OK

消費電力に制限をかける

sudo nvidia-smi -i 0 -pl 140 # 140Wに