CUDA/cuDNNのインストール方法(Windows)
.jpg)
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 Toolkit と cuDNN のインストール方法について紹介します。
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 が必要か調べます。
「>=」という表現は、その数値以上のドライババージョンが必要ということです。例えば、CUDA 12.2 GA を使う場合には、Windows では 536.25 以上の Driver バージョンが必要ということです。

今回 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 を選択してください。



使用するディープラーニングライブラリ(PyTorch や TensorFlow 等)の対応状況も確認が必要です。
例えば、今回は PyTorch 2.0.1 を使用することを前提として PyTorch のページを調べてみます。最新バージョンはこちらを、過去バージョンはこちらのページを参考にしてください。以下は記事執筆時点で最新のページを確認した際のキャプチャです。

上記の表を見ればわかるように CUDA 11.7 や CUDA11.8 に対応しているようです。今回の環境のドライバでは 11.7、11.8 いずれも要件を満たしていましたので、今回は CUDA 11.8 をインストールしてみたいと思います。
CUDA のダウンロードとインストール
CUDA については CUDA Toolkit Archive のページから指定バージョンのダウンロードページへ遷移してダウンロードします。インストールしたいバージョンをクリックしてください。この記事では 11.8.0 をクリックした場合で説明していきます。

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

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

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

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

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

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

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

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


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

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

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

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 の対応表を確認します。

今回インストールした CUDA 11.8 の場合は「cuDNN 8.9.3 for CUDA 11.x」が適切であることが分かります。(記事執筆時点)
cuDNN のダウンロードとインストール
cuDNN はこちらのページから「Download cuDNN」でダウンロードします。

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

ダウンロードした zip を展開すると bin 等のフォルダがあるので CUDA フォルダの配下に配置します。私の場合は以下のフォルダを作ってファイルを配置しました。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\cudnn

次に cuDNN のライブラリフォルダに環境変数のパスを通します。システムのプロパティから環境変数を開き Path に以下のような CUDA 関連のパスを設定します。
(機械学習のプログラミングをしていて CUDA や cuDNN 関連でうまくプログラムが実行できない場合は、環境変数を確認してみると解決する可能性があります)

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

以上で cuDNN のインストールは完了です。
GPU の認識を確認(PyTorch)
今回は Pytorch 2.0.1 を想定しつつ CUDA のインストールを試したので PyTorch での GPU の認識を確認してみます。任意の Python プロジェクトを作成して以下のコマンドで Pytorch をインストールします。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
上記は、記事前半で確認したこちらのバージョンページにて「Run this Command:」で指定されているインストールコマンドです。

インストール後に 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 やライブラリにあったディープラーニング実行環境を構築してもらえるといいかなと思います。

