【Python】WindowsでGPUに対応したPytorchをインストールする

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Python】WindowsでGPUに対応したPytorchをインストールする

2023-4-19 | ,

WindowsでGPUに対応したPytorchをインストールしたい!

概要

今回の記事では、WindowsでGPUに対応したPytorchをインストールする手順を掲載する。

学習などの計算を高速に行うために

仕様書

環境

  • Windows 10 Home バージョン 22H2(OSビルド 19045.2846)
  • Python 3.10.6
  • pyenv 3.1.1
  • pipenv, version 2023.4.20

手順書

「cuDNN編」「CUDA Toolkit編」「環境変数編」「Pytorch編」の4部構成です。

GPUに対応したPytorchをインストールするのにめちゃくちゃ重要なのが「cudnn」「CUDA Toolkit」「Pytorch」のバージョンを揃えること!下図はこの記事を執筆してる時点での「Pytorch」の公式ページに掲載されてる対応表のスクリーンショット。

下記URLで最新の対応表を確認してから作業するべし。

ちなみに「cuDNN」と「CUDA Toolkit」の最新版は12だけども、「Pytorch」のStable(2.0.0)が対応してる最新のバージョンが11.8なので、この記事では11.8は「cuDNN」と「CUDA Toolkit」を使用する。

cuDNN編

下記のページにログインして、CUDA11用のファイル(執筆時点ではcudnn-windows-x86_64-8.9.0.131_cuda11-archive.zip)をダウンロードする。

このサイトなんだけども、いつの間にかログインに認証アプリが必要になった。めちゃめんどい!
認証アプリはいろいろあるんだけども、Google製のものだと「Authenticator」っていうアプリになる。
表示されるQRコードをアプリのカメラで読み取ると「NVIDIA Developer」のサイトがアプリの登録されて、ワンタイムなパスワード6桁が表示されるので、時間内にこのパスワードをPC側で入力してログインする。マジでめんどい!

対象のバージョンのZipをダウンロードして任意の場所に展開する。この記事ではC:\cudaに展開したとして進める。

CUDA Toolkit編

下記のページにアクセスして、CUDA11用のインストーラー(執筆時点ではcuda_11.8.0_522.06_windows.exe)をダウンロードして実行する。

インストールの種類は「高速」で問題ない。

環境変数編

「cuDNN」と「CUDA Toolkit」の指定のフォルダにパスを通す。

この記事と同じバージョン&手順どおりなら下記の4つのフォルダにパスを通す。

C:\cuda\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\CUPTI\lib64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include

環境変数でパスを通す手順はざっくり下記のとおり。

  1. 「設定」アプリを開いて、左上の検索に「環境」と入力すると「環境変数の編集」と「システム環境変数の編集」が表示される。ユーザーの環境変数を設定するなら「環境変数の編集」、全体(リルート的な)に環境変数を設定するなら「システム環境変数の編集」を左クリックする。(どっちでもいい)
  2. タブ「詳細設定」の中のボタン「環境変数」を左クリックする。
  3. 環境変数のダイアログが表示される。上下のリストにいろいろ表示されるが、念のために隠してる。関係ない項目を変更しちゃうとPCの動作に支障をきたすので注意。「<ユーザ名>のユーザー環境変数」と「システム環境変数」の両方のリストにPathがあるが、今回は「システム環境変数」の方のPathに設定する。どちらでも問題ない。Pathを左クリックして選択してる状態で「編集」ボタンを左クリックする。
  4. 「環境変数名の編集」のダイアログが表示される。「新規」ボタンを左クリックするとリストの最後尾の行に追加で入力できるようになるので前述の4つのパスをそれぞれ入力する。
  5. 下図は4つのパスを入力した後。「OK」ボタンを左クリックする。
  6. 「OK」ボタンを左クリックする。

一時的で良いならコマンドプロンプトで下記を実行して次の手順に進む。

SET PATH=C:\cuda\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\CUPTI\lib64;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include;%PATH%

Pytorch編

pipenvを使ってプロジェクトを構築する場合の手順を掲載する。

  1. プロジェクトを保存するフォルダの中に移動してpipenvで仮想環境をインストールする。
    pipenv install --python 3.10.6
  2. 仮想環境のシェルに入る。
    pipenv shell
  3. 「Pytorch」の公式ページに掲載されてるコードを実行する。(pip3じゃくてもよさそうなのでpipで実行した)
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
  4. インストールが完了したらGPUが有効になってるか確認するためのコードを書く。test.pyというファイルを作って書きを入力して保存する。
    import torch
    print(torch.cuda.is_available())
  5. test.pyを実行する。
    python test.py

    シェルから抜けてる場合は

    pipenv run python test.py
  6. コンソールにTrueと表示されればGPUが有効になってる。Falseと表示される場合はGPUが無効になってる。無効になってしまってる場合は「cuDNN」と「CUDA Toolkit」と「Pytorch」のバージョンが合ってるか、環境変数で設定したパスが間違ってないか確認する。

まとめ(感想文)

機械学習のトレーニングはGPUを使わないとかなり時間がかかってしまうのでGPUは必須と言っても良い感じ。GPUを使っても結構時間がかかる。