windosのpytorchでgpuを使えるようにする設定を一から(2023年3月版)

# 初めに
新しいwindowsのパソコンでpytorchでGPUを動かすのに苦戦したので1からやり方を書いていきます。
初投稿ですので至らない点多数存在すると思われますがご了承いただければ幸いです。
手順は以下の通りです

1.pythonをインストールしてpipを使えるようにする(pythonのインストールとpipが使える場合は必要ないです)

2.visual studioをインストールする

3.自分のGpuにあったGpuのドライバをインストールする。

4.pytorchのバージョンにあったcudaのtoolkitをインストールする

5.Cudaのバージョンにあったcudnnのツールキットをインストールする

6.環境変数を通す

7.cudaのバージョンにあったpytorchを入れる

8.pytorchでgpuを認識しているかどうか確かめる。

また、この記事はいかの2つのqiitaの記事を大いに参考にさせていただきました。
お礼申し上げます

https://qiita.com/motoyuki1963/items/a334c9488c2f55a867cf

https://qiita.com/marin-oz/items/317d6763045ee5bad2ed

それでは最初のpythonとpipコマンドを使えるようにするとことから始めていきます

# 1 pythonとpipをインストールする

まず初めにpythonとpipを使えるような状態にするためpythonをwinodwsにインストールします。
pythonのダウンロードは以下のサイトから行えます

https://www.python.org/

以下のサイトにアクセスしてdownloadsのwindowsのところにカーソルを合わせると以下のような画像が出てくるので

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/b92dd310-292f-3766-4862-dc849b2ec8e8.png)

ここでdownloadsをクリックし.exeファイルからpythonのインストールをしていきます。
インストールが終わったらpipコマンドを使えるようにするために環境変数を通していきます。
ここで右下のコントロールパネルから環境変数の設定を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/badb1e45-3954-1a88-272e-29e56baf2632.png)


ここで環境変数をクリックして右下の環境変数タブをクリックしたら環境変数の画面が開きます。

そして上部分のユーザーの環境変数を設定するの(user名)の環境変数(U)というところのpathをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/172d882d-8225-2843-803d-af14f60ea019.png)

ここで環境変数名の編集画面が開くので右上の新規タブをクリックし、いかのpath名を入力します。
```
C:\python\Scripts
```
これを入力してOKを押します。

最後に左下からコマンドプロンプトを起動します。
コマンドプロンプトは左下にcmdと入力して起動できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/56dbf7b9-daea-c57e-c94b-621413331f14.png)

cmdを起動したら以下のコマンドを打ってpythonとpipが入っているか確認します。
以下の画面のようにpython -Vとpip -Vのコマンドを入力して
pythonのバージョンとpipのバージョンが出ればOKです。

```
>python -V
python 3.11.2

>pip -V
pip 22.3.1
```

以上でpythonとpipのインストールは終わりです。

# 2.visual studioをインストールする

以下のサイトからvisual studioをインストールします。

https://visualstudio.microsoft.com/ja/downloads/

ここでpythonと同じようにsetupファイルをダウンロードしてインストールすればOKです。

# 3.gpuのドライバをインストールする。
ここからGpuのドライバをインストールします。
以下のサイトにアクセスして自分のパソコンに乗っているGpuを選んでGpuドライバをインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/a256e7e9-e6d8-be24-2ac1-e0ada20ee227.png)

## 補足
ここで補足ですが自分のGpuがなにかわからない方はwindowsのタスクマネージャーから確認します。
コマンドプロンプトと同じようにスタートボタン左下からタスクマネージャーと入力しパフォーマンス画面から確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/101f8ae4-125e-8942-02a7-54082874aa15.png)


ここでGPUがわかったらGPUを選んでドライバを探すボタンを押してインストールします。


# 4.pytorchのバージョンにあったcudaのtoolkitをインストールする
次はcudaのtoolkitのダウンロードになります。まず以下のpytorchのサイトにアクセスしてpytorchのバージョンにあったCudaを調べます。

https://pytorch.org/

下に少しスクロールすると以下のような画面が出てきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/9abf5f69-7a93-157e-d9dc-2a0886d02f5c.png)

ここからpytorchの現在のバージョンはCuda11.7とCuda11.8になっていますのでそのどちらかをインストールします。
ここで補足ですが著者はcudaの最新バージョン12.0を入れてしまい手間がかかりましたのでバージョンの確認は大事です。

ここでcudaのバージョンがわかったらバージョンにあったcudaのツールキットをダウンロードするために以下のサイトにアクセスします。


https://developer.nvidia.com/cuda-toolkit-archive

ここから今回はバージョン11.8をダウンロードしたいのでCUDA Toolkit 11.8.0 をクリックしてOsやバージョンを押してcuda toolkitoを右下のダウンロードボタンをクリックしてダウンロードしていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/6a16b919-ee80-a81d-3310-1b212abd5974.png)

ダウンロードしたファイルからCudaをインストールします。
これでCudaのインストールは完了です。


# 5.Cudaのバージョンにあったcudnnをインストールする。
CudaのインストールがすんだあとはCudnnのダウンロードになります。
以下のサイトにアクセスしてCudaのバージョンにあったcudnnをインストールします。

https://developer.nvidia.com/rdp/cudnn-archive

ここではCuda11.8を入れたので11.x用のcudnnの最新版をインストールしていきます。
なおここで会員登録を求められますの個々人で済ませていただければと思います。

ここでcudnnファイルをダウンロードした後ダウンロードしたzipファイルを解凍します。
ここで解凍したフォルダのpathを後々通す必要があるのですが自分は分かりやすいようにユーザーフォルダの下に置きました。ですのでpathは以下のようになります。
```
C:\Users\cudnn-windows-x86_64-8.8.1.3_cuda11-archive
```

# 6.環境変数を通す
ここからCudaやcudnnのpathを順次通していきます
まず最初にスタートボタン左下にシステム環境変数の編集と打ち込んで開いていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/dbebc86c-e95f-dfd8-aa8d-7e0ebe4f193e.png)

pipを通した時と同じように右下の環境変数をクリックするのですが今回は以下の画面のシステム環境変数を変更していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/17ad4d97-5ad0-bf2f-9039-b503168693cd.png)


この画面をスクロールしたらpathという変数が出てくるのでpathをクリックして以下のpathを打ち込んでいきます。しかし、環境によってはすでにpathが入っている場合もあるのでそこは確認が必要になります。


C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\CUPTI\lib64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include
C:\Users\cudnn-windows-x86_64-8.8.1.3_cuda11-archive\bin(cudnnの場所は自分で指定したところになります。今回はusers直下に入れたのでこのようなpathになっています。)

これで環境変数を通すのは終わりです。

ここで正常にCudaが入っているかを確認するためコマンドプロンプトを起動して以下のコマンド(nvcc -V) を入力します。

```
>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
```

以上のような出力が得られればOKです。

# 7.Cudaのバージョンにあったpytorchをインストールする。
以下のサイトにアクセスしてダウンロードしたCudaのバージョンやOsを入力していきます
https://pytorch.org/

下の画像が今回の入力例になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/4f2768a0-5742-f12a-2441-b4cc9ead7396.png)

ここで下部分のrun this commandの部分をコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3303904/a3da2818-aef0-7d07-5486-ba4762f2db6b.png)

これをコマンドプロンプトを起動してペーストして実行すればOKです。

```
>pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
```

これでpytorchのインストールは終了です。


# 8.pytorchでGpuが使えるかどうか確認する。

コマンドプロンプトを再起動して以下のコマンドを打ち込みます。

```
>python
```
その後pythonの対話モードになるので以下のコマンドを入力します。

```
>>>import torch
```
続けてコマンドを入力します。

```
>>>print(torch.cuda.is_available())
#True
```

Trueと出力されればpytorchがGpuを認識できているのでOkです。
お疲れさまでした。



# 苦戦したところ
Cudaのバージョンを間違えて入れてしまってPCを一回リセットして0からやり直した。
CudaとCudnn2つが必要なことを知らなかった。
pytorchでCudaのバージョン指定があることを知らなかった。