🍣

CUDA,cuDNNの構築(Ubuntu(WSL2))

2024/09/01に公開

1. 環境

1-1. 今回CUDA,cuDNNを構築する環境

ホストOS: Windows11 Pro
WSL: WSL2
Linux(WSL2): Ubuntu22.04
GPU: NVIDIA RTX 4070ti
CUDA:12.3.2-1
cuDNN:8.9.7.29

2. はじめに

2-1. 前段

AIの進化やGPUの性能向上,ライブラリの整備などでGPUを使った処理の需要は急増してきていまあす.
そのため,今回は,WSL2の仮想マシン上にCUDA,cuDNNを構築していきたいと考えております.

2-1. CUDA,cuDNNをインストールする前に

CUDA,cuDNN,その他機械学習用ライブラリはバージョンの互換性がかなりシビアなため,使いたいライブラリに合わせてCUDA,cuDNNをインストールする必要があります.

例えばPytouchでは以下のCUDAバージョンに対応しているみたいです.

また,CUDAとcuDNNにもバージョンの互換性があるため,そちらも確認する必要があります.
https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-897/support-matrix/index.html

3. GPUドライバーのインストール

wslにCUDA,cuDNNをインストールする前に,WindowsにGPUドライバーをインストールする必要があります.
https://www.nvidia.com/en-us/drivers/
上記のサイトから自身のPCに搭載しているGPUのドライバーをインストールします.

4. Ubuntuのインストール

https://learn.microsoft.com/ja-jp/windows/wsl/install#install-wsl-command
コマンドプロンプトを起動して以下のコマンドを実行する.

# wsl --install
# wsl --update
# wsl --set-default-version 2
# wsl.exe --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
wsl.exe --install <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

# wsl.exe --install Ubuntu-22.04
インストール後パスワードの設定をします

# sudo apt update
# sudo apt upgrade
# sudo apt install wget

5. CUDAのインストール

5-1. GPG Keyの削除

sudo apt-key del 7fa2af80

5-2. CUDAインストール

# 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 update
# sudo apt -y install cuda-toolkit-12-3

5-3. pathの追加

# export PATH="/usr/local/cuda/bin:$PATH"
# export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
# export CUDA_HOME=/usr/local/cuda
# source ~/.bashrc

5-4. CUDAがインストールできているか確認する

nvcc -V

6. cuDNNのインストール

6-1. cuDNNのダウンロード

https://developer.nvidia.com/rdp/cudnn-archive
上記のサイトからNVIDIAのサイトにログインしてcuDNNをダウンロードする必要があります.
今回のcuDNNのバージョンは[8.9.7]をダウンロードします.

任意のディレクトリに配置します.

6-2. cuDNNのインストール

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

参考文献

https://docs.nvidia.com/cuda/wsl-user-guide/index.html
https://developer.nvidia.com/cuda-12-3-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local
https://docs.nvidia.com/deeplearning/cudnn/archives/cudnn-897/support-matrix/index.html

Discussion