スポンサーリンク

WSL2 Ubuntu 22.04 LTS に cuDNN 8 をインストールする

cat_oilpainting
記事内に広告が含まれています。
スポンサーリンク

はじめに

これまで、各種の生成 AI は WSL2 Ubuntu 23.10 の上で環境を構築し使用してきました。常々、「ちゃんと構築するなら 22.04 LTSだよなぁ」と考えていました。

まとまった時間が取れましたので、WSL2 Ubuntu 22.04 LTS の上で各種の生成 AI の環境を作り直す事にしました。ゼロから環境構築する際の参考になれば幸いです。

前回は CUDA 11.7 をアンインストールし、CUDA 11.8 & 12.1 を新たにインストールしました。CUDA のアンインストール方法については、インストールの逆手順を踏んで、設定ファイルまで含めて削除 (purge) しました。

今回は、faster-whisper と VOICEVOX core で使用されている NVIDIA cuDNN 8 をインストールします。

スポンサーリンク

複数の cuDNN 8 がインストールできない理由

cuDNN 8 も CUDA 11.8 用と 12.1 用の両方をインストールしたかったのですが、どちらか片方しかインストールできません。

cuDNN 8 の package 自体は CUDA 11.x 用と CUDA 12.x 用に分かれているのですが、パッケージ名も同一で区別がつきません。library も /usr/lib/x86_64-linux-gnu 以下にインストールされますので、同時にインストールする事ができません。

faster-whisper の現在の要求仕様が

  • cuBLAS for CUDA 11 (CUDA 11.8 に含まれる)
  • cuDNN 8 for CUDA 11

ですので、CUDA 11.8 用の cuDNN 8 をインストールする事にしました。

NVIDIA cuDNN 8 のダウンロード

NVIDIA cuDNN 8 をダウンロードする為にはユーザー登録が必要です。

ユーザー登録後に次の画面から 'Download cuDNN Library' を選択します。

Download cuDNN Library を選択

ライセンスを確認後、'I Agree To the Terms of the cuDNN Software License Agreement' の先頭にチェックを入れます。

I Agree To the Terms of the cuDNN Software License Agreement の先頭にチェック

今回は CUDA 11.8 に使用しますので、下段の 'Download cuDNN v8.9.7 for CUDA 11.x' を選択します。

Download cuDNN v8.9.7, for CUDA 11.x を選択

'Local Installer for Ubuntu22.04 x86_64 (Deb)' をクリックすると、ダウンロードが始まります。適当な場所に保存して、WSL2 内の home に移動します。

Local Installer for Ubuntu22.04 x86_64 (Deb) をクリックでダウンロード開始

cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb がダウンロードされます。

NVIDIA cuDNN 8 のインストール

インストール手順は記載ありませんが、以下の順番に実行すれば libcudnn8 がインストールできます。

$ ls
cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb
$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb
$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-8AE81B24-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get install libcudnn8
$ sudo apt-get install libcudnn8-dev
$ sudo apt-get install libcudnn8-samples

libcudnn8-samples はお好みでインストールして下さい。

libcudnn は /usr/lib/x86_64-linux-gnu 以下にインストールされます。

$ dpkg -L libcudnn8
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.9.7
/usr/share
/usr/share/doc
/usr/share/doc/libcudnn8
/usr/share/doc/libcudnn8/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libcudnn8
/usr/lib/x86_64-linux-gnu/libcudnn.so.8
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8

Ubuntu 22.04 LTS の場合、library を探す場所は /etc/ld.so.conf.d/ 以下に記載されている directory になります。cuda 11.8 & 12.1 の library が設定しなくても読み込まれるのは、下記の *cuda*.conf と gds*.conf に library の directory が含まれる為です。

/usr/lib/x86_64-linux-gnu は 'x86_64-linux-gnu.conf' に含まれています。

$ ls /etc/ld.so.conf.d/
000_cuda.conf
988_cuda-12.conf
989_cuda-11.conf
fakeroot-x86_64-linux-gnu.conf
gds-11-8.conf
gds-12-1.conf
ld.wsl.conf
libc.conf
x86_64-linux-gnu.conf

$ whereis libcudnn.so.8
libcudnn.so.8: /usr/lib/x86_64-linux-gnu/libcudnn.so.8

まとめ

今回の記事では、faster-whisper や VOICEVOX core で使用されている NVIDIA cuDNN 8 (CUDA 11.x 用) をインストールしました。

この記事を書いている時点で faster-whisper と VOICEVOX core をインストールし、正常に動作した事を確認していますので、無事にインストール出来ています。

将来の自分の為にも、一つ一つの手順を記載しました。他の方の参考になれば幸いです。

今回のアイキャッチ画像

今回もキャットタワーに乗っている猫を SDXL で生成しようとしましたが上手く行かず。oil painting で見た目がかわいい猫が生成されたので、トリミングして使用しました。

1月7日までの年始フェア価格ですが、10 Gbps の 5ポートスイッチング HUB も3万円弱と手の届く金額になりました。ただ、コメントを見ると発熱に言及されている方が多いので、もう1世代、2世代の後まで私は様子見です。

1Gbps で NAS とやり取りすると 120 MB/sec 程度と少し遅めの HDD 並みです。10 倍は難しいでしょうが、5倍位の速度になれば SATA SSD 並みになりますので、PC の使い方も変わるでしょう。

家内の LAN ケーブルが Cat 6 なのでケーブルの取り替えも必要となるのが悩みどころです。

コメント

  1. 内田 より:

    何度もすいません。

    https://hiro20180901.com/2024/01/06/cudnn-install-method-on-wsl2-ubuntu-22-04-lts/#toc4

    このlsの後に改行がありエラーになります、何か間違っていませんでしょうか?

    • hiro20180901 より:

      エラーメッセージが無いので推測ですが、先頭の $ は不要ですよ。

      ls コマンドは DOS の dir と同じで、そのディレクトリにあるファイルを表示するものです。dpkg -i を実行するのに、カレントディレクトリに deb ファイルが存在している事を確認する為に実行しています。

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