CUDA

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

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

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

注意点

※記載している画面やバージョンは、記事執筆時点のものです。

CUDA 12.x 以降では cuDNN の提供方法が変わるなど、一部仕様が更新されています。ただし、インストール時の基本的な考え方(GPU ドライバの確認 → 適切な CUDA の選択 → 対応する 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 が必要か調べます。

「>=」という表現は、その数値以上のドライババージョンが必要ということです。例えば、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 を選択してください。

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 いずれも要件を満たしていましたので、今回は CUDA 11.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)

今回は 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:」で指定されているインストールコマンドです。

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

あわせて読みたい
【Python Tech】プログラミングガイド
【Python Tech】プログラミングガイド
ABOUT ME
ホッシー
ホッシー
システムエンジニア
はじめまして。当サイトをご覧いただきありがとうございます。 私は製造業のメーカーで、DX推進や業務システムの設計・開発・導入を担当しているシステムエンジニアです。これまでに転職も経験しており、以前は大手電機メーカーでシステム開発に携わっていました。

プログラミング言語はこれまでC、C++、JAVA等を扱ってきましたが、最近では特に機械学習等の分析でも注目されているPythonについてとても興味をもって取り組んでいます。これまでの経験をもとに、Pythonに興味を持つ方のお役に立てるような情報を発信していきたいと思います。どうぞよろしくお願いいたします。

※キャラクターデザイン:ゼイルン様
記事URLをコピーしました