WindowsでのPytorch・Pytorch Geometricの GPU 環境構築

# はじめに


初投稿です．
機械学習の研究をするうえで，Pytorch・Pytorch Geometric での GPU 環境の構築にとても苦労したので，環境構築のために行ったことを残していきたいと思います．
同じような状況の方のお役に立てれば幸いです．

# 環境
| OS |使用言語  |GPU|
|:-:|:-:|:-:|
|  Windows 11 home 64bit |Python 3.9.13|RTX3060Ti|


# GPUを用いた機械学習を行うために必要もの

1. [Python](https://www.python.org/) 
1. [Nvidia Driver](https://www.nvidia.co.jp/Download/index.aspx?lang=jp)
1. [CUDA](https://developer.nvidia.com/cuda-toolkit-archive)
1. [cuDNN](https://developer.nvidia.com/rdp/cudnn-archive)
1. [Pytorch](https://pytorch.org/get-started/locally/) 
1. [Pytorch Geometoric](https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html) (Graph Neural Network に特化したライブラリ．必要であればインストール)
 
# Python 

Pytorch は Python 上での機械学習ライブラリなので，まずは Python をインストールしましょう．

Python 公式ページ
https://www.python.org/

![スクリーンショット 2022-09-25 153918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/0066c4f0-20d0-a4b4-abb1-b6aba53b6f7f.png)


Python の公式ページへアクセスし，公式サイトの DownLoads から，自身が使用している OS (筆者の場合は Windows) を選択しインストールしてください．

:::note warn
2022/09/25時点
Pytorch は，Windows では Python 3.7-3.9 までしかサポートが対応されていないので注意！
Pytorch Geometric は Python 3.7-3.10 まで対応されています！
:::

# Nvidia Driver

Nvidia サイトから Nvidia Driver をダウンロードしましょう．

Driver については，自身が利用している GPU の種類に合わせて検索してもらえれば大丈夫です．

Nvidiaドライバダウンロードページ
https://www.nvidia.co.jp/Download/index.aspx?lang=jp

![スクリーンショット 2022-09-25 144859.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/21c252f0-e0ae-c217-8f7d-d12453d7a55e.png)


:::note info
ダウンロードタイプは，Game Ready ドライバー (GRD)　を選択しましょう！
:::

# CUDA 

CUDA とは，Compute Unified Device Architecture の略で Nvidia 社が開発した GPU プログラム開発環境のことです．

CUDA を使用することで，GPU の複数の演算器を利用した高速な並列演算処理を行うことができるようになります．

そのため，CUDA についても Nvidia 社の公式ページからダウンロードするようにしましょう．

CUDA ダウンロードページ
https://developer.nvidia.com/cuda-toolkit-archive

:::note warn
CUDA のバージョンについては，Pytorch Pytorch Geometric がサポートしているバージョンに合わせましょう！
2022/09/25時点
Pytorch → 10.2, 11.3, 11.6 をサポート
Pytorch Geometric→ 10.2, 11.3, 11.5, 11.6 をサポート
:::

筆者の場合，CUDA 11.3 をダウンロードしました．

Select Traget Platform は以下を選択してください．

+ Operation: System Windows 
+ Architecutre: x86_64
+ Version: 10
+ Installer: Type exe(local)

![スクリーンショット 2022-09-25 144223.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/ed91d08c-4bc9-cb6d-0996-be2f4f99ba7e.png)


![スクリーンショット 2022-09-25 142729.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/bd35c091-8fa6-37b3-2d29-706867f47a4c.png)

# cuDNN

cuDNN は NVIDA CUDA Deep Neural NEetwork の略で，Deep Neural Network での使用を目的とした GPU アクセラレーション型のプリミティブのライブラリです．

こちらも先ほどインストールした CUDA のバージョンに合わせたものを選択し，インストールしましょう．

cuDNN のダウンロードページ
https://developer.nvidia.com/rdp/cudnn-archive

以下のよう項目が表示されたら，一番上の Local Installer for Windows (zip) を選択しましょう.

![スクリーンショット 2022-09-25 145845.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/071c2c06-63a6-cfe9-1de4-7458ac77088a.png)


ここから少し複雑な設定が必要になるので，頑張ってください．

zip ファイルでダウンロードした，cuDNN の CUDA フォルダの中身を, Programfiles/NVIDA GPU Computing Toolkit/CUDA/Vx.x フォルダにコピーしてください．

そして，cuDNN のパスを通しましょう．

まずコントロールパネル（環境変数）に行きます.

そして，システム環境変数に
変数名：CUDNN_PATH
変数値：C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x
を追加してください．

:::note warn
システム環境変数の新規追加が出来ない場合は、Windows power shell を管理者として開いて以下のコマンドを実行してください
Start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables
:::


これで，GPU のドライバまわりのインストールは完了です！

# Pytorch・Pytorch Geometric

Pytorch は Python のオープンソース機械学習ライブラリとなります．Pytorch Geometric は Pytorch で Graph Neural Network を行うのに特化したライブラリとなっています．

Pytorch のインストールはとても簡単で，Start Locally で、自分の環境を打ち込んで「Run This Command」をコマンドプロンプト (Power Shell) で実行するだけです．

Pytorch の公式サイト
https://pytorch.org/get-started/locally/

![スクリーンショット 2022-09-25 151339.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/b4716e58-6231-33e7-bd65-456d04d5a492.png)


Pytorch Geometric も同様に，公式サイトにある Quick Start から，自身の環境を打ち込んで「Run」をコマンドプロンプト (Power Shell) で実行することで，インストールすることが出来ます．

![スクリーンショット 2022-09-25 152239.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866699/85da4e63-47de-b28e-af54-7c58d296f7ff.png)


これにて，Pytorch・Pytorch Geometric のインストールは完了です！

# Pytorch の GPU 環境構築が正しくできているかの確認

```
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())
print(torch.cuda.current_device())

#出力結果
#1.11.0+cu113
#True
#1
#0
```

エラーが発生せず，上記のような出力結果が得られていれば，適切に GPU 環境が構築出来ています．
お疲れさまでした！