Windows11 + WSL2 + NVIDIA CUDAの環境構築

# 1. WSLのインストール
コントローパネルを開ける。
![スクリーンショット 2023-08-10 144659.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/4258dccb-4302-0280-ba8d-17405969121b.png)
プログラム > Windowsの機能の有効化または無効化 にいどうする。
![スクリーンショット 2023-08-10 144831.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/a9b65d23-cb87-cf2b-0978-6510f04d4b69.png)
![スクリーンショット 2023-08-10 144846.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/c32eae8c-2aa8-54e2-47fc-8edb6317c748.png)
以下の3つを有効にする。
* Linux 用 Windows サブシステム
* Windows ハイパーバイザー プラットホーム
* 仮想マシン プラットホーム
![スクリーンショット 2023-08-10 145257.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/0af02c4b-d832-89f9-c821-a5fc2195e6ab.png)
![スクリーンショット 2023-08-10 145317.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/badd1105-3d15-3f89-0143-70a6f7b89db7.png)
インストール後は再起動する。
![スクリーンショット 2023-08-10 145534.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/d56dd94e-6137-aeae-1c09-ecf44d993a79.png)
管理者としてWindows PowerShellを開ける。
![スクリーンショット 2023-08-10 195709.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/b9979211-f247-706c-8ad0-7724ebabf60b.png)
`wsl -l -o`のコマンドでディストリビューションを確認する。
![スクリーンショット 2023-08-10 145803.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/70fad3d6-8a20-9ea6-fbb5-62a86086842c.png)
`wsl --install <ディストリビューション名>`でインストールする。
![スクリーンショット 2023-08-10 200451.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/2f9bed27-5a9e-c0bc-8309-eab253bbc96c.png)
# 2. CUDAの設定
タスクマネージャーを開ける。
![スクリーンショット 2023-08-10 203517.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/7bd99cf2-ffc2-608d-d407-d61f15d1ff65.png)
プロセスに移動して、GPUを確認する。
![スクリーンショット 2023-08-10 203530.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/d44d5d8c-6326-f536-6b9d-b7fb3d903aca.png)
下記よりNVIDIAのドライバーをインストールする。

https://www.nvidia.com/download/index.aspx

インストーラーを実行する。
![スクリーンショット 2023-08-10 203905.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/73744d5e-d259-c71f-040b-2625ca1e0be8.png)
インストール後は再起動する。
![スクリーンショット 2023-08-10 205257.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/bb295167-7731-ca75-e32b-8b6878f4ae55.png)
`sudo apt-key del 7fa2af80`で古いGPGキーを削除する。
以下のコマンドを順番に入力して、CUDA Toolkitをインストールする。
* `sudo install gcc`
* `sudo wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run`
* `sudo sh cuda_11.8.0_520.61.05_linux.run`
`accept`を入力する。
```
┌──────────────────────────────────────────────────────────────────────────────┐
│  End User License Agreement                                                  │
│  --------------------------                                                  │
│                                                                              │
│  NVIDIA Software License Agreement and CUDA Supplement to                    │
│  Software License Agreement. Last updated: October 8, 2021                   │
│                                                                              │
│  The CUDA Toolkit End User License Agreement applies to the                  │
│  NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA                    │
│  Display Driver, NVIDIA Nsight tools (Visual Studio Edition),                │
│  and the associated documentation on CUDA APIs, programming                  │
│  model and development tools. If you do not agree with the                   │
│  terms and conditions of the license agreement, then do not                  │
│  download or use the software.                                               │
│                                                                              │
│  Last updated: October 8, 2021.                                              │
│                                                                              │
│                                                                              │
│  Preface                                                                     │
│  -------                                                                     │
│                                                                              │
│──────────────────────────────────────────────────────────────────────────────│
│ Do you accept the above EULA? (accept/decline/quit):                         │
│ accept                                                                       │
└──────────────────────────────────────────────────────────────────────────────┘
```
以下の3つを選択する。
* CUDA Toolkit 11.8
* CUDA Demo Suite 11.8
* Cuda Documentation 11.8

選択した後は、Installを選択してインストールする。
```
┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Installer                                                               │
│ + [X] CUDA Toolkit 11.8                                                      │
│   [X] CUDA Demo Suite 11.8                                                   │
│   [X] CUDA Documentation 11.8                                                │
│ - [ ] Kernel Objects                                                         │
│      [ ] nvidia-fs                                                           │
│   Options                                                                    │
│   Install                                                                    │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │
└──────────────────────────────────────────────────────────────────────────────┘
```
# 3. GPUの使用可の確認
`sudo apt install python3.10-venv`で仮想環境を作るためのパッケージをインストールする。
![スクリーンショット 2023-08-10 224524.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/ccaa19aa-ac51-93e9-1924-26bdf1457163.png)
以下のコマンドを使って、仮想環境を作ってそれを有効にする。
* `python3 -m venv env`
* `source env/bin/activate`
![スクリーンショット 2023-08-10 224605.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/c1f5bc3c-0fd0-1252-e80e-40c0dfde6761.png)
`pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --no-cache-dir`でpytorchをインストールする。
![スクリーンショット 2023-08-10 233611.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/df20726c-9deb-0520-57d4-98658c47ac07.png)
以下のコマンドでGPUの使用可を確認する。
* `python`
* `import torch`
* `torch.cuda.is_available()`
![スクリーンショット 2023-08-10 232837.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530069/3023746b-f658-1fef-3681-f18cd3d3cf5c.png)
`True`が返されたら正しく動作している。