CUDA環境構築で役立つリンクまとめ（WSL2・Ubuntu・Windows）

## 概要
環境構築のたびにやり方を調べ直しているので、環境構築の際によく見るページをまとめ、適宜注釈をつけた。
（この記事自体では環境構築の詳しい解説は行わない）

筆者がよく扱っている、Nvidia Driver、CUDA Toolkit、cuDNN、PyTorchのインストールに関してまとめた。
TensorRTについても余裕があれば後ほどまとめたい。

環境構築手順については、本記事を執筆時にWSL2（Ubuntu22.04、Ubuntu20.04）で手順を確認した。

## 環境構築手順
### バージョン決め
- 環境構築を始める前に、以下の**互換性確認用のページ**にまとめたページを参照しつつ、インストールするCUDA Toolkit、PyTorchのバージョンを決める
    - Nvidia Driver、cuDNNのバージョンはCUDA Toolkitによって決まる
    - 現実的には、使うハードウェア（GPU）の性能や使いたいライブラリ等の要件からCUDA Toolkit、PyTorchのバージョンが決まってくると思う

### Ubuntu
- 以下の記事の手順で基本的に問題ないと思う
    - 記事1： [NVIDIA Driver, CUDA, cuDNNのインストールをAPTでサクッと済ませる - Ubuntu Linux](https://zenn.dev/pon_pokapoka/articles/nvidia_cuda_install)（最新の手順）
    - 記事2： [金子邦彦研究室 - NVIDIA ドライバ，NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8 のインストール（Ubuntu 上）](https://www.kkaneko.jp/tools/ubuntu/ubuntu_cudnn.html)（少し古い手順）

### WSL
- Nvidia Driver：Windowsに入れたものを使うのでUbuntuへのインストールは不要（Windowsの手順参照）
- CUDA Toolkit・cuDNN：Ubuntuの[記事1](https://zenn.dev/pon_pokapoka/articles/nvidia_cuda_install)の手順でOKだが少し注意点あり
    - wsl-ubuntuのリポジトリにはcuda-toolkitはあるがcuDNNが無い
        - 対策1：wsl-ubuntuのリポジトリからcuda-toolkitをインストールした後、ubuntu2204/ubuntu2004のリポジトリからcudnnをインストールする（筆者はこちらを実施、今のところ問題ない）
        - 対策2：ubuntu2204/ubuntu2004のリポジトリからcuda-toolkit、cudnnの両方をインストールする（未実施）
    - CUDA Toolkit最新版以外のインストール時には、`sudo apt install cuda-toolkit-12-1`のように必ずバージョン指定する

### Windows
- 以下の記事の手順で基本的に問題ないと思う（最後に行ったのがだいぶ前なのでうろ覚え）
    - [金子邦彦研究室 - NVIDIA ドライバ，NVIDIA CUDA ツールキット 11.8，NVIDIA cuDNN v8.8 のインストールと動作確認（Windows 上）](https://www.kkaneko.jp/tools/win/cuda.html)

## 互換性確認用のページ
- GPUの世代ごとのアーキテクチャ名
    - [Nvidia - 比較 GeForce グラフィックス カード](https://www.nvidia.com/ja-jp/geforce/graphics-cards/compare/)
- GPUの世代ごとのNvidia Driver、CUDA Toolkitバージョン要件
    - [Nvidia - GPU Management and Deployment](https://docs.nvidia.com/deploy/cuda-compatibility/index.html)（5. Frequently Asked Questions - "Which GPUs are supported by the driver ?"に記載）
- GPUごとのCompute Capabilityの値
    - [Your GPU Compute Capability](https://developer.nvidia.com/cuda-gpus)
    - Compute Capabilityについては以下のページがわかりやすい
        - [[CUDA] NVIDIA GPUやCUDA周りの互換性を理解したかった](https://zenn.dev/eduidl/articles/cuda-comparability)
- CUDA ToolkitのバージョンごとのNvidia Driverの要件
    - [NVIDIA CUDA Toolkit Release Notes](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions__table-cuda-toolkit-driver-versions)（Table 2・Table 3 に記載）
- cuDNNのバージョンごとのCompute Capability、Nvidia Driver、CUDA Toolkitの要件
    - [NVIDIA cuDNN Documentation](https://docs.nvidia.com/deeplearning/cudnn/archives/index.html)
        - 各バージョンのcuDNN Support Matrixのページで確認
- PyTorchのバージョンごとのCUDA Toolkitバージョン要件
    - 下記インストール方法のページで確認
        - [PyTorch - START LOCALLY](https://pytorch.org/get-started/locally/)（最新版）
        - [INSTALLING PREVIOUS VERSIONS OF PYTORCH](https://pytorch.org/get-started/previous-versions/)（過去のバージョン） 

## 各種DLページ・インストール方法確認ページ
### CUDA関連ドライバーの公式リポジトリ
- [Nvidia - Index of /compute/cuda/repos](https://developer.download.nvidia.com/compute/cuda/repos/)
    - 登録するリポジトリがわからない時などはここを直接見た方が早い

### Nvidia Driverのダウンロード（Windows、WSLの環境構築で使用）
- [Nvidia - Download Drivers](https://www.nvidia.com/Download/index.aspx)
    - 自分のGPU、OSなどの環境情報を入力してDLする

### CUDA Toolkitのインストール方法の確認
- [Nvidia - CUDA Toolkit Archive](https://developer.nvidia.com/cuda-toolkit-archive)
    - 古いバージョンだとここで出てくる手順では上手くいかないことがあるので注意（最後の`sudo apt install cuda`を、`sudo apt install cuda-toolkit-12-1`のようにcuda-toolkitのみにしてバージョン指定すれば問題ないことが多い）

### PyTorchのインストール方法確認
- [PyTorch - START LOCALLY](https://pytorch.org/get-started/locally/)（最新版）
- [INSTALLING PREVIOUS VERSIONS OF PYTORCH](https://pytorch.org/get-started/previous-versions/)（過去のバージョン） 

## 発展的な操作の手順
- CUDA Toolkitのアンインストール
    - [WSL2 Ubuntu 22.04 LTS の CUDA をバージョンアップする](https://hiro20180901.com/2024/01/05/cuda-version-up-method-on-wsl2-ubuntu-22-04-lts/)
        - アンインストール部分がわかりやすい
- 複数バージョンのCUDA Toolkitの切り替え
    - [Ubuntuでの CUDAのバージョンの切り替え方](https://www.nemotos.net/?p=2374)