CUDA

CUDA/cuDNNのインストール方法(Windows)

CUDA cuDNNのインストール方法(Windows)

NVIDIAのGPUを使った並列計算のための環境であるCUDA Toolkitや関連するディープラーニングライブラリのcuDNNをインストールする方法について解説します。

CUDAとcuDNN

CUDA(Compute Unified Device Architecture)とは、米NVIDIA社が自社グラフィックスプロセッサ(GPU)向けに開発提供している並列計算のためのソフトウェア開発・実行環境のことで、CUDA Toolkitをインストールすることで使用することができます。

また、cuDNN(CUDA Deep Neural Network liberary)は、CUDA Toolkit上で動作するディープラーニングライブラリのことです。

TensorFlowやPyTorchといったディープラーニングライブラリを用いたプログラミングを行いたいときにNVIDIAのGPUを使っている場合には、CUDA ToolkitとcuDNNをインストールする必要があります。

本記事では、CUDA ToolkitcuDNNのインストール方法について紹介します。

CUDA Toolkitのインストール

ここからはCUDA Toolkitのインストール方法を紹介します。CUDA ToolkitはどのバージョンをインストールするかをNVIDIAのドライバなどをもとに決める必要があるので、バージョンの確認方法なども含めて説明していきます。

バージョンの確認

CUDA Toolkitをインストールする場合には、使用しているPCのNVIDIA GPUによってインストールするCUDA Toolkitのバージョンを選ばないといけません。具体的には、NVIDIA DriverとCUDA Toolkitのバージョンの対応があっているものを選びます。

CUDAリリースノートのCUDA Toolkit and Corresponding Driver VersionsにCUDA ToolkitとDriverのバージョンに関する対応表があります。この表を参考にして、どのCUDA Toolkitバージョンが必要か確認します。

「>=」という表現はその数値以上のドライババージョンが必要ということになります。例えば、CUDA12.2 GAを使う場合には、Windowsでは536.25以上のDriverバージョンが必要ということです。

CUDA Toolkit and Corresponding Driver Versionsの表より一部抜粋

今回、CUDAをインストールしようとしている環境については以下の通りです。

OS:Windows 10 Pro
CPU:Intel(R) Core(TM) i9-9900K CPU
メモリ:32GB
GPU:NVIDIA GeForce RTX 2080 Ti (専用GPUメモリ11GB)

NVIDIA Driverのバージョンを確認するには、Windowsの[設定]-[アプリ]からアプリと機能を”NVIDIA”で検索し、「NVIDIA グラフィックドライバー」の数字を確認します。このバージョンの数値をCUDA Toolkit and Corresponding Driver Versionsと照らし合わせてCUDA Toolkitを選択してください。

NVIDIA Driverの確認
NVIDIA Driverの確認
NVIDIA Driverの確認

使用するディープラーニングライブラリ(PyTorchやTensorFlow等)の対応状況も確認が必要です。

例えば、今回はPyTorch 2.0.1を使用することを前提としてPyTorchのページを調べてみます。最新バージョンはこちらを、過去バージョンはこちらのページを参考にしてください。以下は記事執筆時点で最新のページを確認した際のキャプチャです。

Pytorch 2.0.1 CUDA11.8

上記の表を見ればわかるようにCUDA 11.7やCUDA11.8に対応しているようです。今回の環境のドライバでは11.7、11.8いずれも要件を満たしていましたので、今回はCUDA11.8をインストールしてみることにしてみたいと思います。

CUDAのダウンロードとインストール

CUDAについては、CUDA Toolkit Archiveのページから指定のバージョンのダウンロードページへ遷移してダウンロードします。インストールしたいバージョンをクリックしてください。本記事では11.8.0をクリックした場合で説明していきます。

CUDA Toolkit Archive

ダウンロードページでは、Windows等の条件のボタンを押していくとダウンロードボタンが表示されます。localを選択すると数GBのインストーラーをダウンロードすることになりますが、networkを選択するとインストーラ自体は数MBの小さなファイルとなり、実行時にダウンロードしつつ、インストールすることができます。

CUDA 11.8.0 ダウンロード

インストールしたインストーラをダブルクリックしてインストールを実行します。インストール用の一時フォルダの指定がありますが特にこだわりがなければそのまま「OK」をクリックしてください。

CUDA インストール

まずは、システムの互換性チェックが実行されます。

CUDA 11.8 インストール

NVIDIAのソフトウェア使用許諾が表示されるので確認して「同意して続行する」をクリックしてください。

CUDA 11.8 インストール

インストールオプションについては特に細かな設定が必要でなければ、「高速(推奨)」を選択すれば問題ありません。次へをクリックします。

CUDA 11.8 インストール

Visual Studioがインストールされていない場合、以下の画面が表示されるかと思います。Visual Studioで開発しない場合は不要ですので、チェックを入れてNEXTをクリックします。

CUDA 11.8 インストール

インストールの準備が始まります。

CUDA 11.8 インストール

インストールパッケージのダウンロードと処理が始まります。

CUDA 11.8 インストール
CUDA 11.8 インストール

インストールが開始されます。

CUDA 11.8 インストール

以下のページが出たら、次へをクリックします。

CUDA 11.8 インストール

インストールは完了です。チェックは任意で選択して閉じるをクリックしてください。

CUDA 11.8 インストール

CUDAのインストールの確認をするために、コマンドプロンプトで以下を動作させてみてください。以下のようにバージョン情報が表示されればインストール完了です。

>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

cuDNNのインストール

ここからはディープラーニングライブラリであるcuDNNのインストール方法を紹介します。cuDNNは、CUDAとの対応をよく確認してインストールする必要があるので、バージョンの確認方法なども含めて説明していきます。

バージョンの確認

cuDNNとCUDAとの対応はGPU, CUDA Toolkit, and CUDA Driver Requirementsの対応表を確認します。

GPU, CUDA Toolkit, and CUDA Driver Requirements 対応表

今回インストールしたCUDA 11.8の場合は「cuDNN 8.9.3 for CUDA 11.x」が適切であることが分かります。

cuDNNのダウンロードとインストール

cuDNNはこちらのページから「Download cuDNN」をクリックしてダウンロードします。

cuDNN ダウンロード

cuDNNはダウンロードするためにNVIDIAのアカウント登録が必要なので、持っていない人はアカウント登録してください。以下のページでWindows用のZIPファイルをダウンロードします。

cuDNN ダウンロード

ダウンロードしたzipを展開するとbin等のフォルダがあるので、CUDAフォルダの配下に配置します。私の場合は以下のようにフォルダを作ってファイルを配置しました。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\cudnn

cuDNN 8.9.3 for CUDA 11.x インストール

次にcuDNNのライブラリフォルダに環境変数のパスを通します。システムのプロパティから環境変数を開き、Pathに以下のようなCUDA関連のパスを設定します。

(機械学習のプログラミングをしていてCUDAやcuDNN関連でうまくプログラムが実行できない場合は、環境変数を確認してみると解決する可能性があります)

cuDNN 8.9.3 for CUDA 11.x インストール 環境変数

以下コマンドで場所が確認できれば問題ないかと思います。
※dllのファイル名はcuDNNのバージョンにより異なるかもしれませんので、正確にはbinフォルダ配下のdllファイル名を確認してから実行してください。

where cudnn64_8.dll

cuDNN 8.9.3 for CUDA 11.x インストール 環境変数

以上でcuDNNのインストールは完了です。

GPUの認識を確認(PyTorch)

今回はPytorch2.0.1を想定しつつCUDAのインストールを試したのでPyTorchでのGPUの認識を確認してみようと思います。任意のPythonプロジェクトを作成して以下のコマンドでPytorchをインストールします。

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

上記は、本記事の前半で確認したこちらのバージョンページから「Run this Command:」で指定されているインストールのコマンドです。

Pytorch 2.0.1 CUDA11.8

インストール後にpip listで確認してみるとPytorch(=torch)としては「2.0.1+cu118」がインストールできていることが確認できます。

>pip list
Package            Version
------------------ ------------
certifi            2022.12.7
charset-normalizer 2.1.1
filelock           3.9.0
idna               3.4
Jinja2             3.1.2
MarkupSafe         2.1.2
mpmath             1.2.1
networkx           3.0
numpy              1.24.1
Pillow             9.3.0
pip                23.2.1
requests           2.28.1
setuptools         68.0.0
sympy              1.11.1
torch              2.0.1+cu118
torchaudio         2.0.2+cu118
torchvision        0.15.2+cu118
typing_extensions  4.4.0
urllib3            1.26.13

Pytorch環境をインストールできたら以下の簡単なプログラムを作成して実行することでGPUの認識を確認します。

import torch

# GPUの認識を確認する
print(torch.cuda.is_available(), "\n")

# PyTorchで使用できるGPU(デバイス)の数やデフォルトのGPU番号を確認
print(torch.cuda.device_count())
print(torch.cuda.current_device(), "\n")

# GPUデバイス名を確認する
print(torch.cuda.get_device_name())
【実行結果】
True 

1
0 

NVIDIA GeForce RTX 2080 Ti

is_availableの実行結果として「True」が返ってきているのでPytorchがGPUを認識できています。また、各種メソッドを使うことでデバイスの情報が取得できていることが分かります。

is_availableの結果がFalseの場合はうまくGPUを認識できていませんので、GPUドライバーやCUDAのバージョンなどを再度確認してみてください。

まとめ

NVIDIAのGPUを使った並列計算のための環境であるCUDAや関連するライブラリのcuDNNをインストールする方法について解説しました。

CUDAとcuDNNは、どのバージョンをインストールするかで悩むと思いますし、プログラミングしようと思うとうまく動かないということがよくあります。私も最初の頃よく動かなくてはまりましたが、だんだんと関係性について理解できるようになってきました。

参考にしていただいて使用しているGPUやライブラリにあったディープラーニング実行環境を構築してもらえるといいかなと思います。