PyTorch-CUDA+cuDNN環境構築 on Windows 11

# 環境
* Windows 11
* GeForce RTX 3090
* Anaconda Navigator

# Visual Studio
### DOWNLOAD
* 掲載画像は Visual Studio Enterprise 2022 ですが Community（無償）でも同じ.... だと思います
    * ダウンロードページの下の方にある [Build Tools for Visual Studio 2022] でも良いようです

https://visualstudio.microsoft.com/ja/downloads/
### INSTALL
* Desktop Development with C++ の中にある [MSVC v143 - VS 2022 C++ x64/x86 build tools] にチェック
    * Visual Studio を使う予定がなければ他のチェックは全て外してOK
    * CUDA のバージョンが低いと，Visual Studio 2022 だと動作しないため version を下げる必要がある
        * 下の方に MSVC v142...140 があり，version を下げる際にはこちらを使用します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/71529295-622e-7958-4505-56ed0d52a312.png)

# CUDA Toolkit (+ NVIDIA Graphics Driver)
## DOWNLOAD
* version 11.7.1 (2022/8/10現在)

https://developer.nvidia.com/accelerated-computing-toolkit

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/dd9756fd-976e-5449-92a3-bd4ecabd7c5a.png)
* exe (network)でもOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/69ce5462-9211-e685-08bf-dd818d1c8387.png)

## INSTALL
* すべてデフォルトでもOKですが，CUDA, Graphics Driver 以外は必要ありませんので Custom Install でチェックを外しておきましょう。
* GeForce Experience はご自由に

![2022-08-25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/4a1c52f0-c399-7631-c439-4177d904a433.png)
![2022-08-25 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/900aff0e-7424-f4ce-38b8-5e844bb5aac8.png)

### 正常にインストールできているかの確認
* メニュー（WINDOWSボタン）の検索から [環境変数] を入力し[システム環境変数の編集] を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/d4f20e35-dbd0-52ac-8816-112397e03b29.png)
* システム環境変数（下段）の[CUDA_PATH] [CUDA_PATH_V11_7] にPathが通っていることを確認しておきましょう。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/eec071fb-345c-c4af-9143-615d493505c1.png)
* command prompt から [nvcc -V] を入力、下記のようになれば正常にインストールできています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/67f25c75-e0f0-89df-8b7f-325f9a362c86.png)

# cuDNN
## DOWNLOAD
https://developer.nvidia.com/rdp/cudnn-download
* ログインが必要（nvidia account　は基本無償のようです）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/3fb31ee1-f3d2-65b9-7206-5eb199e9d108.png)
* I Agree To the Terms of the ***** にチェックし、[Download cuDNN v8.5.0 (August 8th, 2022), for CUDA 11.x -> Local Installer for Windows (Zip)] と進みダウンロード
# INSTALL
## ファイルのコピー
* あらかじめ[C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN] のフォルダを作成　※環境によっては管理者権限が必要
* ダウンロードしたファイルを解凍し、中身一式(bin, include, lib, LICENSE) を先程作成した [C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN ] へコピー
## 環境変数の登録
 1. システム環境変数の編集
 1. 設定 > システム > バージョン情報 > システム詳細設定 > [環境変数] をクリック
 1. [システム環境変数] の新規(New)から 
     1. 環境変数名：　CUDNN_PATH 
     値：　C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN 
     を登録 -> OK
     1. 環境変数名： Path 
     値： C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN\bin
     を登録 -> OK

## インストールの確認
* command prompt から [where cudnn64_8.dll] を入力
    * C:\Program Files\NVIDIA GPU Computing Toolkit\cuDNN\bin\cudnn64_8.dll であれば正常にインストールできています
    * Could not find files for the given pattern(s).　はPATH が通っていません

# CUDAの動作確認
## Anaconda Navigator
* ENviroments -> Create -> 新規に環境を作成（例は py39-cuda）->Create
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/9414dcae-585c-ab02-06a5-9b455f660ec4.png)
* Open Terminal から [conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch] を入力 
(pip では [pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116] となります)
その他の環境（pipなど）は 下記へアクセスし，自分の環境にあったコマンドを入手してくださいね．

https://pytorch.org/
* 選択肢が出たら [y] です，いろいろなライブラリをインストールしていきますのでかなり時間がかかります
* Open with Python から [ import torch |ここでエンター| torch.cuda.is_available() ]を入力して，True が出力されれば正常にインストールされています．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615991/648e6985-a7c1-9fcf-b987-75755488a706.png)
以上です，お疲れ様でした．

# 参考
* https://zenn.dev/ryu2021/articles/3d5737408b06fe
* https://qiita.com/TrashBoxx/items/2e884998cd1193f73e2f
* https://www.kkaneko.jp/tools/win/cuda.html