import torch
# 使用するデバイスを決定
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# GPUの利用について出力j
print(f"GPU が利用可能であるか: {str(torch.cuda.is_available())}")
if torch.cuda.is_available():
print(f"GPU の個数: {torch.cuda.device_count()}")
for i in range(torch.cuda.device_count()):
if i == torch.cuda.current_device():
print(f"[{i}] \t: {torch.cuda.get_device_name()} (利用中)")
else:
print(f"[{i}] \t: {torch.cuda.get_device_name()}")
print(f"\t CUDA Compute Capability={torch.cuda.get_device_capability()}")
はじめに
次のようなに pip
コマンドで pytorch
を単純にインストールしても、GPU を活かした機械学習の処理ができない場合がある。
%pip install pytorch
次のコードで開発環境において GPU を利用できるか確認ができる。
import torch
print(torch.cuda.is_available())
print(torch.__version__)
False
が出力された場合はGPUが利用できていない状態である。続いて x.x.x+cpu
が出力されている場合、インストールした torch
ライブラリは GPU に対応していないことが原因である。
False
2.3.0+cpu
備考: 筆者の環境
項目 | 内容 |
---|---|
OS | Windows 11 Pro 64bit |
CPU | Intel(R) Core i9-10900K |
ストレージ | 500GB SSD + 4TB HDD + 4TB HDD |
GPU | NVIDIA GeForce RTX 3060 × 2枚 |
RAM | 128GB |
GPUドライバのインストール
グラフィックボードの確認
タスクマネージャーからグラフィックボードの型番を確認する。
型番は画面右上に記載されている。
次の画像では、NVIDEA GeForce RTX 3060
と記載されている。
インストーラのダウンロード
次のサイトから GPU のドライバを検索して、インストールできる。
サイトにアクセスすると次のような画面になる。各項目を自分の環境に応じて選択する。
NVIDEA GeForce RTX 3060
の場合は次のように選択する。
項目 | 内容 |
---|---|
製品の種類 | GeForce |
製品シリーズ | GeForce RTX 30 Series |
製品 | GeForce RTX 3060 |
項目の指定後に、[検索開始] をクリックする。
「GeForce Game Ready ドライバー - WHQL」の [ダウンロード] をクリックすると、ドライバのインストーラを入手できる。
次の画像では、560.81-desktop-win10-win11-64bit-international-dch-whql.exe
がダウンロードされる。
ドライバのインストール
先ほどダウンロードしたインストーラを起動すると、次の画面が表示される。 [同意して続行する] をクリックする。
[次へ] をクリックする。
インストールが開始される。
次の画面になると、インストールが終了している。各項目のチェックは任意で指定する。
インストールの確認
次のコマンドでドライバがインストールされているか否かを確認できる。
> nvidia-smi
Sun Oct 20 04:48:40 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.81 Driver Version: 560.81 CUDA Version: 12.6 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3060 WDDM | 00000000:01:00.0 On | N/A |
| 0% 40C P0 45W / 170W | 377MiB / 12288MiB | 1% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 NVIDIA GeForce RTX 3060 WDDM | 00000000:02:00.0 On | N/A |
| 0% 36C P8 16W / 170W | 33MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
### 省略 ###
CUDA Toolkitのインストール
PyTorch のバージョン確認
次のサイトにアクセスして PyTorch のバージョンを確認する。ここで確認したバージョンに適したツールキットと cuDNN(後述)をインストールする必要がある。
Compute Platform の最新バージョンを確認する。ここでは CUDA 12.4
である。
ツールキットのインストール
次のサイトから、上記と同一バージョンの CUDA Toolkit を選択する。
今回の場合は、 CUDA Toolkit 12.4.0
が該当する。
OSやアーキテクチャなど、自分の環境に応じて選択する。その後、 [Download (29.6 MB)] をクリックすると、インストーラがダウンロードされる。
次の画像の場合は cuda_12.4.0_windows_network.exe
がダウンロードされる
インストーラを起動すると、次のウィンドウが表示される。
[同意して続行する] をクリックする。
[次へ] をクリックする。
Visual Studio で開発する場合は事前にインストールをする必要がある(未検証)。
Visual Studio を利用しない場合はチェックを入れて、無視して [Next] をクリックする。
インストールが開始される。
インストールが終了すると、次の画面になる。 [次へ] をクリックする。
[閉じる] をクリックする。
cuDNNのインストール
次のサイトから CUDA のバージョンにあった cuDNN をダウンロードする。
まずは、「for CUDA xx.x」の箇所を自分のものと合わせて cuDNN のバージョンを選択する。今回は Download cuDNN v8.9.7 (December 5th, 2023), for CUDA 12.x
を選択する。
複数種類のインストーラが表示されるので、自分の環境にあったインストーラを選択する。
今回は Local Installer for Windows (Zip)
をクリックする。
アカウントの登録もしくはサインインを求められる。
もう一度、cuDNN のバージョンとインストーラを選択すると zip
ファイルがダウンロードされる。
上記の選択では cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip
がダウンロードされる。
これを解凍して作成された cudnn-windows-x86_64-8.9.7.29_cuda12-archive
を C:\Users
ディレクトリへ移動する。
※ zip
ファイルを解答すると cudnn-windows-x86_64-8.9.7.29_cuda12-archive
の中に cudnn-windows-x86_64-8.9.7.29_cuda12-archive
フォルダがある。後者を移動させること。
環境変数の登録
CUDA ToolkitとcuDNNのpathを順次通していく。
「システム環境変数の編集」を起動する。
次のような画面が表示される。[詳細設定 > 環境変数] をクリックする。
[システム環境変数] の [Path] を選択して、 [編集] をクリックする。
次のような画面が表示される。
[新規] をクリックして、次のパスを1つずつ登録する。
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
CUDA のパスが通っているかを確認する。
コマンドプロンプトを起動して,次のコマンドを実行する
nvcc -V
次のように出力されると成功である。
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:28:36_Pacific_Standard_Time_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0
Pytorchのインストール
先ほど開いたサイト でバージョンを選択してコマンドをコピーする。
今回は CUDA 12.4
を選択する。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
これで GPU の利用が可能である。
import torch
# Pytorchのバージョン
print(torch.__version__)
# GPUが利用可能であるか否か
print(torch.cuda.is_available())
# 利用可能なGPUの名前
print(torch.cuda.get_device_name(0))
2.5.0.dev20240818+cu124
True
NVIDIA GeForce RTX 3060
トラブルシューティング
私が調査した手順を上記までにまとめてきたが、実際に各手順を実行してみたところ、私はうまくいかなかった。
エラー
具体的には、import torch
を実行するとき、次のエラーが確認された。
一部のディレクトリを省略して ~
と記載している。
Traceback (most recent call last):
File "~\xxx.py", line 1, in <module>
import torch
File "~\Lib\site-packages\torch\__init__.py", line 148, in <module>
raise err
OSError: [WinError 126] 指定されたモジュールが見つかりません。 Error loading "~\Lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
以下、さらに試した対策をまとめる。
Pytorchの別バージョンをインストールする
CUDA Toolkitのインストール にて、私は Pytorch Build の項目を Stable (2.4.0)
と指定してPytorchをインストールした。これを Preview (Nightly)
に変更するとエラーが解決された。
次に詳細な項目の指定内容を示す。
項目 | エラー発生時 | 解決後 |
---|---|---|
Pytorch Build | Stable (2.4.0) | Preview (Nightly) |
Your OS | Windwos | Windwos |
Package | Pip | Pip |
Language | Python | Python |
Compute Platform | CUDA 11.8 | CUDA 11.8 |
解決後のPytorchをインストールするコマンドを次に示す。
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu118
インストール後、確認用プログラム を実行して動作を確認されたい。
Microsoft Visual C++ パッケージのインストール
次のサイトにアクセスして、Microsoft Visual C++ Redistributable を入手する。
[Latest Microsoft Visual C++ Redistributable Version] から自分のアーキテクチャを選択する。
今回の場合は、[X64] をクリックすると、 VC_redist.x64.exe
がダウンロードされる。
VC_redist.x64.exe
を起動すると、次のウィンドウが表示される。
[ライセンス条項および使用条件に同意する]にチェックを入れて、[インストール]をクリックする。
インストールが始まると次の画面になる。
インストール終了後、[再起動]をクリックして、コンピュータを再起動する。
再起動後、システム環境変数に次を追加する
C:\Windows\SysWOW64
もう一度、再起動をした後に 確認用プログラム を実行して動作を確認されたい。
確認用プログラム
次の Python プログラムを実行されたい。
import torch
# Pytorchのバージョン
print(torch.__version__)
# GPUが利用可能であるか否か
print(torch.cuda.is_available())
# 利用可能なGPUの名前
print(torch.cuda.get_device_name(0))
次のような出力を確認できると成功である。
1行目の出力は Pytorch のバージョンなので一致してなくともよい。
特に,True
と GPU の型番が出力できているかを確認されたい。
2.5.0.dev20240818+cu118
True
NVIDIA GeForce RTX 3060
参考