3行で
- まずWSL2とWindows用のGPUドライバを入れる(WSLからlinux用のドライバは入れない)
- docker desktopをインストールする
- nvidia-container-toolkitを入れる
WSL2の導入~GPUドライバの導入
↓公式を読むのがめんどい人向け
GPUドライバをインストール
まず注意。WSLからドライバをインストールしないように
This is the only driver you need to install. Do not install any Linux display driver in WSL.
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#step-1-install-nvidia-driver-for-gpu-support
windows用のドライバでWSL内でも認識するようです。
以下から自分のPCに入っているGPUに対応するドライバをインストールしてください
https://www.nvidia.com/Download/index.aspx
ちなみに、今有効なGPUはタスクバーの検索から「dxdiag」って検索して出てくるツールで調べられます
WSL2をインストール
win11ならコマンドプロンプトで以下を入力するだけ
wsl --install
再起動するとubuntuでのユーザー名・パスワードを聞かれるので設定すればOK
ここまででWSL内でGPUを認識するようになってます。WSLのターミナルで
nvidia-smi
のコマンドをうってGPUの情報が返ってくれば成功してます。
うまくいかない場合・・・残念でした。
俺もnvidiaに何日休日を溶かされたか・・・。
実はこの記事を書く前にも一度win11を再インストールしました。結局それが一番早かったです。
docker desktopのインストール
↓公式を読むのがめんどい人向け
・・・といってもdocker desktopをインストールするだけです。
WSLからdockerをインストールすることはありません。
nvidia-container-toolkitのインストール
↓公式を読むのがめんどい人向け
WSLで以下を実行
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
以上です。
成功していれば以下のコマンドが通ります
※公式には--runtime=nvidia
オプションがついていますが消さないと通りません
※nvidiaほんま許さんぞお前
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi