Stable Diffusionで利用するNVIDIA関連のツールを更新する方法です。
CUDA ToolkitやcuDNN等、新しい機能を利用するためには更新が必要だったりします。
何となく環境が古くなってきたので関連する部分を更新しました。
純正のStable Diffusionをコマンド実行するのは実用的に厳しいです。なので、最も人気のあるStable Diffusion web UIをWSLとUbuntuの環境に構築したいと思います。[20240303]環境構築後にCUDA ToolkitやcuDNNを更新する方法です。本記事のバージョンが合わない場合、以下の記事も参考にしてください。[20240620]Stable Diffusion web UIを更新する方法です。既に環境を構築済みの人は参考にしてください。...
対応するバージョンの確認
CUDA ToolkitとcuDNNは正しくバージョンを合わせないと動きません。
NVIDIAの公式に対応表があるので、ここから噛み合うバージョンを探します。
https://docs.nvidia.com/deeplearning/cudnn/reference/support-matrix.html#abstract
現時点()で動作可能な最新版は以下です。今回はこれを使います。
- CUDA Toolkit 12.3.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)
そうすると、こんな感じのコマンドが表示されるので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)
そうすると、こんな感じのコマンドが表示されます。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 ToolkitやcuDNNはバージョンを合わせることが必須です。
NVIDIA公式の対応表で必ずインストールするバージョンを確認しましょう。
この記事は参考になりましたか?
コメント