BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

Windows 11 の WSL で NVIDIA の CUDA を動かすためのセットアップ

Windows の最新の WSL (バージョンはもちろん2) 上で NVIDIA の GPU を使うのに、CUDA Toolkit と cuDNN のセットアップ方法のメモです。

私が2024年11月に新しい自作PCを組んでからこのセットアップをしてなかったので、ざっくりブログに残しておこうというところです。

ちなみに今回使っている環境は以下です。

  • OS はWindows 11 version: 24H2
  • グラボは NVIDIA GeForce RTX 4080 SUPER
  • Ubuntu 24.04 LTS

NVIDIA のドライバーをインストール

まずは Windows 11 自体に NVIDIA のドライバーをインストールします。 (私の場合 Windows Terminal で) PowerShell を開いて nvivida-smi と打ちます。これで NVIDIA の情報が表示されていればすでにドライバーがインストールされています。

もし、PC 作りたてでドライバーがインストールされてない場合は、以下の公式サイトから自身のグラボのドライバーをインストールしましょう。 NVIDIA Windows GeForce のドライバーで大丈夫です。この中にデフォルトで WSL 用の CUDA と Direct ML のも入っています。

Download The Official NVIDIA Drivers | NVIDIA

インストーラーからポチポチするだけなので特に手順は書きません。

WSL と ubuntu のインストール

もしまだの方は、WSL を有効にして ubuntu をインストールします。

learn.microsoft.com

これもドキュメント通りなので手順は省略です。

CUDA Toolkit のセットアップ

インストールされた ubuntu を起動します。 私の場合、Windows Terminal で ubuntu を開いて進めます。 ちなみに今回の環境では、Ubuntu 24.04 LTS を使っています。

古い GPG Key の削除

まず最初に以下のコマンドを実行します。

sudo apt-key del 7fa2af80

このコマンドは、ざっくりいうとデフォルトでインストールされている古い GPG key を削除するもので、NVIDIA から実施しておくことを推奨されています。

CUDA Toolkit のインストール

CUDA Toolkit をダウンロードするのに、以下の URL に行きます。

CUDA Toolkit 12.6 Update 3 Downloads | NVIDIA Developer

まず、ダウンロードする対象を選択してします。選択する内容は以下図です。

そうすると、インストールするためのコマンドが画面の下部に表示されます。

このコマンドたちをひとつずつ、WSL 上で実行していきます。

CUDA のライブラリに PATH を通す

ルートのディレクトリにいるので、以下のコマンドを開いて .bashrc を開きます。

vim .bashrc

ファイルの最後尾に以下を追加して保存します。

 $ export PATH=/usr/local/cuda/bin:$PATH
 $ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

以下コマンドでファイルの変更を反映させます。

source .bashrc

最後に以下のコマンドで CUDA Tookit が見えてるか確認します。

nvcc -V

CuDNN のセットアップ

私は CuDNN の最新バージョンをインストールすればよいですが、ちゃんと確認したい場合は、以下リンクで、自身の CUDA Toolkit の version と NVIDIA Driver のバージョンからどの cuDNN のバージョンが対応しているかを確認した方がいいかもしれません。

Support Matrix — NVIDIA cuDNN

cuDNN のインストールですが、NVIDIA Developer のアカウント登録が必要になります。以下サイトにアクセスして、自身のアカウントにログインして "Download cuDNN Library" をクリックします。

CUDA Deep Neural Network (cuDNN) | NVIDIA Developer

自分のプラットフォームを選択します。私の場合は以下 (文字が白いところが選択してるところ)。

これを選ぶとコマンドが表示されるので、これをまた WSL で実行してインストールします。 最後のコマンドは CUDA 11 か 12 かで変わるので注意です。

動作確認

Ubuntu での Python 環境セットアップ

Python はデフォで入ってるので、とりあえず以下を実行。

sudo apt update && sudo apt upgrade

pip を install。

sudo apt install python3-pip

venv も install。

sudo apt install python3-venv

動作確認のコードを実行するための適当なフォルダを VS Code で開いて、ここからは VS Code で操作していく。

まずは、python3 -m venv .venv を実行して .venv って環境を作成。 次に source .venv/bin/activate を実行して activate する。

こちらのドキュメントで PyTorch と Torch-DirectML をインストールして動かすサンプルがあるので、これを使って動作確認していく。

まずはこれでインストール。PyTorch もインストールしてるだけにちょっと時間がかかります。

pip install torch-directml

これでとりあえず "demo.py" というファイルを作って以下のコードを書きました。

import torch

print(torch.cuda.is_available())

あとは実行して True 返ってきたので、無事に CUDA が認識されていることが確認できました。

動作確認自体はここまでとします。

CUDA Version が12.7 で PyTorch で正しく認識されるかちょっと不安でしたが普通にできてよかったです。

参考

CUDA on WSL