CUDA ToolkitとcuDNNを更新する方法 (WSL+Ubuntu環境)

[Stable Diffusion] CUDA ToolkitとcuDNNを更新する方法 (WSL+Ubuntu環境)

※ 当サイトは広告を含みます。

Stable Diffusionで利用するNVIDIA関連のツールを更新する方法です。
CUDA ToolkitやcuDNN等、新しい機能を利用するためには更新が必要だったりします。

管理人
管理人

何となく環境が古くなってきたので関連する部分を更新しました。

対応するバージョンの確認

CUDA ToolkitcuDNNは正しくバージョンを合わせないと動きません。
NVIDIAの公式に対応表があるので、ここから噛み合うバージョンを探します。
https://docs.nvidia.com/deeplearning/cudnn/reference/support-matrix.html#abstract

現時点()で動作可能な最新版は以下です。今回はこれを使います。

  1. CUDA Toolkit 12.3.2
  2. cuDNN 9.0.0

NVIDIAドライバのアップデート

Windows側で作業します。ただ、普通の人ならNVIDIA GeForce Experienceが入ってるので特に更新作業は不要です。
定期的にアップデートしてる人は勝手に最新版だと思います。Ubuntu側で以下のコマンドを試してください。


nvidia-smi

こんな感じの表が出力されればOK。


+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.10              Driver Version: 551.61         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3090        On  |   00000000:01:00.0  On |                  N/A |
| 54%   51C    P0            114W /  350W |    1599MiB /  24576MiB |     13%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A        22      G   /Xwayland                                   N/A      |
+-----------------------------------------------------------------------------------------+

CUDA Toolkitのアップデート

以下から最初に確認したバージョンを探します。
https://developer.nvidia.com/cuda-toolkit-archive

今回はCUDA Toolkit 12.3.2を使います。
https://developer.nvidia.com/cuda-12-3-2-download-archive

アップデートの場合でも、自身の利用する環境を選択してコマンドを入手します。
注意点は対象のUbuntuがWSLであること。こんな感じに項目を選択します。


Linux -> x86_64 -> WSL-Ubuntu -> 2.0 -> deb (local)
CUDA Toolkit

そうすると、こんな感じのコマンドが表示されるのでUbuntu側で順番に実行します。


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.3.2/local_installers/cuda-repo-wsl-ubuntu-12-3-local_12.3.2-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-3-local_12.3.2-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

注意4番目のコマンドを実行するとTo install the key, run this command:って感じに、次に実行するコマンドを指示されます。
たぶん、5番目のコマンドのフルパス版でしょう。とりあえず、指示に従って表示されたコマンドを実行します。

インストールが完了したらPATHを設定します。なお、PATHにはバージョン番号が入ります。


export CUDA_PATH=/usr/local/cuda-12.3
echo 'export CUDA_PATH=/usr/local/cuda-12.3' >> ${HOME}/.bashrc

export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:${LD_LIBRARY_PATH}
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc

export PATH=/usr/local/cuda-12.3/bin:${PATH}
echo 'export PATH=/usr/local/cuda-12.3/bin:${PATH}' >> ${HOME}/.bashrc

ここでシェルを再起動します。


exec "$SHELL"

最後に次のコマンドでインストールしたCUDA Toolkitのバージョンを確認します。


nvcc -V

こんな感じの表示が出ればインストールは問題ありません。


nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Wed_Nov_22_10:17:15_PST_2023
Cuda compilation tools, release 12.3, V12.3.107
Build cuda_12.3.r12.3/compiler.33567101_0

念の為にWindows側からWSLを再起動します。


wsl.exe --shutdown

cuDNNのアップデート

以前はWindows経由でダウンロードしたファイルをUbuntuに転送してましたが、今はCUDAと同じ形式になったんですかね。
後、ダウンロードにNVIDIAアカウントも不要かもしれません。サイトにアクセスしたら同じように項目を選択します。
https://developer.nvidia.com/cudnn-downloads


Linux -> x86_64 -> Ubuntu -> 22.04 -> deb (local)
cuDNN

そうすると、こんな感じのコマンドが表示されます。Ubuntu側から順番に実行しましょう。


wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn
sudo apt-get -y install cudnn-cuda-12

注意2番目のコマンドを実行するとTo install the key, run this command:って感じに、次に実行するコマンドを指示されます。
CUDAと同じくフルパス版だと思います。ここも指示に従って表示されたコマンドを実行しましょう。

cuDNN単体の動作確認は大変なのでスルーします。
次に進む前にWindows側からWSLを再起動しましょう。


wsl.exe --shutdown

Stable Diffusion web UIの動作確認

Stable Diffusion web UIを利用して更新の成果を確認します。
いつものように、web UIから画像生成ができれば更新は成功してます。


cd ~/stable-diffusion-webui
./webui.sh

あとがき

CUDA ToolkitcuDNNはバージョンを合わせることが必須です。
NVIDIA公式の対応表で必ずインストールするバージョンを確認しましょう。

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。