アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【PythonWindows
Windows11+Python3.11+CUDA11.8+PyTorchでNVIDIA GeForce GTX 1050 Ti GPUを動かす
POSTED BY
2023-05-19

当方メイン使用中のWindows 11PC GPUは以下で、

NVIDIA GeForce GTX 1050 Ti 1341MHz Memory 4096MB GDDR5

PytorchからこのGPUを使えるようにする。もう結構古いものなので最新CUDA12はエラーになったので、CUDA11.8ベースで構築したメモ。

なお、WindowsでPythonというと必ずと言っていいほどAnacondaばっかの例ばかりヒットするが、普通にPython単体で行ける。自分はとにかく簡単な構成が好みであるので、Anacondaは入れない。仮想環境を分けるメリット云々より、変えたいならアンインストールして入れ直せば良いだけではないか。

1、最新版Pythonのインストール

というわけでまずPythonソフト単体のインストール。現時点で最新は3.11のようである。

https://www.python.org/downloads/windows/

上記公式ページ「Latest Python 3 Release - Python 3.11.3」を開いて下のほうWindows installer (64-bit)をクリックして実行ファイルをダウンロード、インストール実行。

「Add python.exe to PATH」にチェックを入れ「Install Now」

完了画面で「Disable path length limit」して終了。

確認

コマンドプロンプトを開いて、pythonとpipを確認する。

Microsoft Windows [Version 10.0.22621.1702]
(c) Microsoft Corporation. All rights reserved.

C:\Users\serve>where python
C:\Users\serve\AppData\Local\Programs\Python\Python311\python.exe
C:\Users\serve\AppData\Local\Microsoft\WindowsApps\python.exe

C:\Users\serve>where python3
C:\Users\serve\AppData\Local\Microsoft\WindowsApps\python3.exe

C:\Users\serve>where pip
C:\Users\serve\AppData\Local\Programs\Python\Python311\Scripts\pip.exe

C:\Users\serve>where pip3
C:\Users\serve\AppData\Local\Programs\Python\Python311\Scripts\pip3.exe

C:\Users\serve>python -V
Python 3.11.3

C:\Users\serve>pip -V
pip 22.3.1 from C:\Users\serve\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip (python 3.11)

このことからわかるように、Linuxのようにpython3とかpip3とかはつけずに、普通にpython, pipとやったほうがよい。python3とすると、Microsoft Storeアプリが起動されてしまい、そこから入れよと重複案内されてしまう。

2、最新版Visual Studio Communityのインストール

CUDAはVisual Studioのライブラリを使用するので、以下ページから

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

Communityの「無料ダウンロード」を選択、VisualStudioSetup.exeでインストール実行。最新版2022で問題ない。インストール言語は、とりあえず最低限の「C/C++デスクトップ開発」のみで良い。

3、CUDA11.8.0のインストール

最新12.1.1はインストール中エラーになってしまった。なので11の最新11.8.0にした。

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

上記ページから「CUDA Toolkit 11.8.0 (October 2022), Versioned Online Documentation」→「Windows + x86_64 + 11 + exe (network)」を選択して「Download」、インストーラ実行。

Visual Studioのチェックが通れば、問題なくインストールは終了するはず。Nsight Visual Studio Edition Summaryを確認。

GeForce Experienseが起動され、再起動を促されれば再起動、ユーザー登録を促されればここでメールアドレス&パスワードで登録しておく。結局次のCUDNNのダウンロードで必要になるからだ。

4、CUDNN for CUDA11.8.0のインストール

必須となるプラグイン。以下アーカイブページ

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

から、今回インストールしたCUDA11.8に適合するかつ最新版「Download cuDNN v8.9.0 (April 11th, 2023), for CUDA 11.x」を選択、「Local Installer for Windows (Zip)」をダウンロード。

ダウンロードにはNVIDIA Developersのユーザ登録が必要なので登録してログインしていればダウンロード可能。

ダウンロードした「cudnn-windows-x86_64-8.9.0.131_cuda11-archive.zip」を右クリック「すべて展開...」して展開し、cudnn-windows-x86_64-8.9.0.131_cuda11-archiveフォルダ以下それぞれを、

binの中身を
↓
C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8/binへコピー。

includeの中身を
↓
C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8/includeへコピー。

lib/x64の中身を
↓
C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8/lib/x64へコピー。

とします。

コマンドパスの確認

コマンドプロンプトを開いて、

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

where nvcc
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\nvcc.exe

where cudnn64_8.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\cudnn64_8.dll

とそれぞれ問題なければOK。

5、CUDA対応版Windows Pytorchのインストール

Windows版PyTorchでCUDA GPUを使えるようにする(torch.cuda.is_available()=Trueにする)にて詳しく説明しているが、URLを指定して専用のPytorchを入れないとCUDAは使えない。

コマンドプロンプトを開き、

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118

とする。もしも入れたCUDAが11.7であるなら、上記URL末尾はcu117となるわけだ。

エラー無く入ったらそのままコマンドプロンプトでPython起動、PyTorch + CUDAの確認。

C:\Users\serve>python
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr  4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available();
True
>>> quit();

問題なし!お疲れ様でした!

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】