スポンサーリンク

Windows11 WSL2 Ubuntu 22.04 LTS の CUDA ライブラリを Symbolic link に変更するスクリプト

a photo of an astronaut riding a horse on mars
記事内に広告が含まれています。
スポンサーリンク

GPU のドライバ更新で libcuda.so が実体に変わる

WSL2 含む Ubuntu に NVIDIA CUDA をインストールする方法、アンインストールする方法については「こちらのページ 」で紹介しています。複数の CUDA のバージョンが共存できます。
WSL2 含む Ubuntu に NVIDIA cuDNN ライブラリをインストールする方法について「こちらのページ 」で紹介しています。cuDNN ライブラリのダウンロードは要ユーザー登録です。
2024年5月2日現在の最新の Stable Diffusion WebUI の最新バージョンは、4月23日に公開された v1.9.3 です。v1.7.0 を SDXL 1.0 を含め WSL2 Ubuntu 22.04 LTS にゼロからインストールする方法は「こちらのページ 」、v1.8.0 へバージョンアップする記事は「こちらのページ 」、v1.9.0 へバージョンアップする記事は「こちらのページ 」に記載しています。

Windows11 の WSL2 Ubuntu 22.04 LTS で Stable Diffusion WebUI を動作させています。動作させる手順につきましては、以下の過去記事を参照ください。

一つ目の記事にも書きましたが

インストールが終了し webui.sh を起動して Stable Diffusion WebUI の画面からプロンプトを入力し、画像を生成する段階で libcuda.so を読み込めないエラーが発生しました。

https://hiro20180901.com/2023/02/23/windows11-wsl2-stable-diffusion-webui-with-cuda-11-7/

/usr/lib/wsl/lib 以下に存在する libcuda.so が実体の場合に、Stable Diffusion WebUI はエラーを表示して画像を生成できません。一度 Symbolic link に変更しても、Windows 側の GPU のドライバー更新のタイミングで実体に戻ってしまいます。

スポンサーリンク

libcuda.so を Symbolic link に変更するスクリプト

毎回 libcuda.so を確認して symbolic link に変更するのは面倒なので簡単なスクリプトを作りました。libcuda.so が symbolic link かどうかを判定して、実体であれば修正します。mv や ln、ldconfig には root 権限が必要なので sudo で実行しています。

$ LANG=C ls -l ./cuda.sh
-rwxr-xr-x 1 hiro hiro 319 Mar  5 12:08 ./cuda.sh
$ cat ./cuda.sh
#/bin/bash
cd /usr/lib/wsl/lib
# Symbolic link を確認
if [ ! -L libcuda.so ]; then
  echo "libcuda.so is required Symbolic link"
  sudo mv libcuda.so.1 libcuda.so.1.orig
  sudo mv libcuda.so libcuda.so.orig
  sudo ln -s libcuda.so.1.1 libcuda.so.1
  sudo ln -s libcuda.so.1 libcuda.so
  sudo /usr/sbin/ldconfig
fi

symbolic link であれば何もしないで終了します。Stable Diffusion WebUI を実行する前に一度実行すれば OK です。

まとめ

Stable Diffusion WebUI を Windows11 WSL Ubuntu 22.04 LTS で使用する際に、libcuda が実体の場合に画像を生成できません。毎回 symbolic link に手作業で変更するのは面倒なので、簡単なスクリプトで対応できるようにしました。

Linux というか bash というか、スクリプト文化に慣れていると、こういう改善は直ぐに実現できます。参考になれば幸いです。

今回のアイキャッチ画像

再々の 'a photo of an astronaut riding a horse on mars' です。Stable Diffusion WebUI で生成しました。同じプロンプトでも微妙に異なる構図で生成されるのが「ガチャ」と呼ばれる所以でしょうか。

コメント

タイトルとURLをコピーしました