まず、Windowsに最新のnvidia Graphic driverをインストールする。

前提条件:
Windows11
WSLは、2024年2月15日現在の最新の環境とする。
Ubuntu 22.04.3 LTS (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64)

WSLの初期状態から以下の3つをインストールする。
CUDA Toolkit 12.1.1
cuDNN 8.9.7
TensorRT 8.6 GA for cuda 12.0 and 12.1

1.CUDA Toolkit
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

1.1環境の確認
・サポートするGPUはインストールされている。(Pascal以降)
・GPUDirect Storageを使うのであれば、ここでインストールするらしいが、今回は無視

1.2 gccのインストール
 デフォルトではUbuntuにgccは入っていないので、ここでインストールする。

$ sudo apt-get update
$ sudo apt install gcc

1.3 ダウンロード

https://developer.nvidia.com/cuda-downloads

から、ResourcesのArchive of Previous CUDA Releasesをクリックし、過去のリストから使用するバージョンCUDA Toolkit 12.1.1 (April 2023)を選択する。

Linux/x86_64/WSL-Ubuntu/2.0/deb(network)を選択する。

1.Install the newcuda-keyring package:
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb

2.Update the Apt repository cache:
$ sudo apt-get update

3.Install CUDA SDK:
$ sudo apt-get install cuda-toolkit-12-1

1.4.環境変数の設定
PATH、LD_LIBRARY_PATHの2つの環境変数を設定する。
/etc/bash.bashrc に以下の行を追加

if [ -e /usr/local/cuda ]; then
export PATH=”usr/local/cuda/bin:$PATH”
export LD_LIBRARY_PATH=”usr/local/cuda/lib64:$LD_LIBRARY_PATH”
fi

1.5 動作確認
1.5.1
$ nvidia-smi

で、GPUの状況がチェックできる。

1.5.2 動作確認
https://github.com/nvidia/cuda-samples からサンプルコードを入手して、動作確認する。

サードパーティのライブラリを入れる必要あり。
$ sudo apt-get install libfreeimage3 libfreeimage-dev

deviceQuery
bandwidthTest

$ git clone https://github.com/nvidia/cuda-samples
$ cd cuda-samples/Samples/1_Utilities/deviceQuery
$ make
$ ./deviceQuery
$ cd ../bandwidthTest
$ make
$ ./bandwidthTest

1.6 PCを再起動する。

2.cuDNN
https://docs.nvidia.com/deeplearning/cudnn/installation/overview.html

最新版以外のNetwork Installの説明がないため、local installでインストールを実行する。

2.1 Download
ブラウザでダウンロードする。
https://developer.nvidia.com/rdp/cudnn-archive
から、バージョンを選ぶ。今回は、 cuDNN v8.9.7 (December 5th, 2023), for CUDA 12.x

ダウンロードリストから、Local Installer for Ubuntu22.04 x86_64 (Deb)を選ぶと、ダウンロードを開始する。

保存したディレクトリを、C:\Downloads とする。

2.2 Enable the local repository.
$ cd /mnt/c/Downloads
$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb

2.3 Import the CUDA GPG key.
$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-08A7D361-keyring.gpg /usr/share/keyrings/

2.4 Refresh the repository metadata.
$ sudo apt-get update

2.5 Install the per-CUDA meta-packages.
$ sudo apt-get install nvidia-cudnn

2.6 動作確認

$ sudo apt-get install libcudnn8-samples

$ cp -r /usr/src/cudnn_samples_v8 .

$ cd cudnn_samples_v8/mnistCUDNN

$ make clean && make

FreeImage.hがない場合は、
sudo apt-get install libfreeimage3 libfreeimage-dev

./mnistCUDNN

Test passed! と出れば、完了

  1. 3.TensorRT
    https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing

apt などを使うより、tarを展開して自分の環境を作る方がお勧め(Documentより)

3.1 python環境をインストールする。
デフォルトでは、python3として、python3.10 がインストールされている。
python として python3.13 をインストールして、切り替えできるようにする。

3.1.1 pip
$ sudo apt install python3-pip
$ sudo apt install -y software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install -y python3.13 python3.13-venv
$ sudo apt install -y python3.10 python3.10-venv
$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.13 100
$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.10 110

3.1.2 切り替え
$ sudo update-alternatives –config python
3.10を使う。

初期状態ではUbuntuにpythonは入っていないので、pythonの環境構築を行う。

3.2 ダウンロード

https://developer.nvidia.com/nvidia-tensorrt-8x-download から、
TensorRT 8.6 GA for Linux x86_64 and CUDA 12.0 and 12.1 TAR Package をクリックし、ダウンロードする。

ファイルを保存したディレクトリを、C:\Downloads とする。

$ tar -xzvf /mnt/d/Downloads/TensorRT*.gz
$ sudo mv ./TensorRT-8.6.1.6 /usr/local/
$ sudo ln -s /usr/local/TensorRT-8.6.1.6 /usr/local/TensorRT
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT/lib
$ cd /usr/local/TensorRT/python
$ python -m pip install tensorrt-8.6.1-cp310-none-linux_x86_64.whl
$ python -m pip install tensorrt_lean-8.6.1-cp310-none-linux_x86_64.whl
$ python -m pip install tensorrt_dispatch-8.6.1-cp310-none-linux_x86_64.whl
$ cd ../uff
$ python -m pip install uff-0.6.9-py2.py3-none-any.whl
$ cd ../graphsurgeon
$ python -m pip install graphsurgeon-0.4.6-py2.py3-none-any.whl
$ cd ../onnx_graphsurgeon
$ python -m pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl

完了