CUDA Toolkit / cuDNN インストールガイド

Windows / Linux に CUDA Toolkit と cuDNN を導入し、ailia SDK で NVIDIA GPU による高速推論を有効にする手順を説明します。

概要

CUDA Toolkit は NVIDIA が提供する GPGPU のためのプラットフォームです。cuDNN は NVIDIA が提供する DNN (ディープニューラルネットワーク) のためのライブラリです。ailia SDK はこれらを導入することで、NVIDIA GPU を使ったより高速な推論が可能になります。

バージョンの対応関係

cuDNN のバージョンに応じて、必要な CUDA Toolkit と ailia SDK の最低バージョンが異なります。

cuDNN バージョン 必要な CUDA Toolkit 必要な ailia SDK
cuDNN 8.0.2 - 8.2.4 CUDA Toolkit 11.0 以上 ailia SDK 1.2.4 以降
cuDNN 8.3.0 - 8.7.0 CUDA Toolkit 11.5 以上 ailia SDK 1.2.11 以降
cuDNN 8.8.0 - 8.9.7 CUDA Toolkit 12.0 以上 ailia SDK 1.2.15 以降
cuDNN 9.0.0 - 9.x CUDA Toolkit 12.0 以上 ailia SDK 1.4.0 以降
cuDNN 10.0.0 - CUDA Toolkit 12.0 以上 ailia SDK 1.7.0 以降 (予定)

Windows

1. CUDA Toolkit のインストール

CUDA Toolkit 公式ページ にアクセスし、「Download Now」をクリックします。

OS、アーキテクチャ、バージョン、インストーラタイプを選択します。

「Base Installer」の「Download」ボタンをクリックしてダウンロードします。

CUDA Toolkit ダウンロードページ - OS、アーキテクチャ、バージョン、インストーラタイプを選択

ダウンロードしたインストーラを実行します。展開先のワークディレクトリはデフォルトのままで問題ありません。

CUDA セットアップパッケージ - 展開先の指定

NVIDIA ソフトウェア使用許諾契約書を確認し、「同意して続行する」をクリックします。

NVIDIA インストーラ - 使用許諾契約書

「カスタム (詳細)」を選択します。

インストールオプション - カスタム (詳細) を選択
注意: 一部のバージョンの CUDA Toolkit では、「高速 (推奨)」でインストールすると失敗する場合があります。その場合はカスタムインストールで以下のコンポーネントのみを選択してください。詳細は NVIDIA フォーラム を参照してください。

カスタムインストールオプションで、以下のコンポーネントを有効にします。

カスタムインストールオプション - CUDA コンポーネントの選択 カスタムインストールオプション - Driver components の選択

インストールが完了すると、インストールされたコンポーネントの一覧が表示されます。

NVIDIA インストーラ - インストール完了画面

2. cuDNN のインストール

cuDNN 公式ページ にアクセスし、「Download cuDNN Library」をクリックします。

NVIDIA cuDNN ページ - Download cuDNN Library をクリック

cuDNN のダウンロードには NVIDIA 開発者アカウントが必要です。アカウントをお持ちでない場合は新規登録してください。

NVIDIA 開発者アカウント ログイン / サインアップ画面

ログイン後、ダウンロードページで「Local Installer for Windows (Zip)」を選択してダウンロードします。

cuDNN ダウンロードページ - Local Installer for Windows (Zip) を選択

ダウンロードした zip ファイルを展開します。展開されたフォルダ (例: cudnn-windows-x86_64-8.9.6.50_cuda12-archive) を任意の場所 (例: C:\nvidia\) に配置します。

cuDNN 展開後のフォルダ構成 - bin, include, lib, LICENSE

3. 環境変数の設定

cuDNN の DLL をシステムから参照できるように、環境変数 PATH に cuDNN の bin フォルダを追加します。

Windows の「設定」→「システム」→「詳細情報」を開き、「システムの詳細設定」をクリックして「システムのプロパティ」を表示します。「環境変数」ボタンをクリックします。

Windows システムのプロパティ - 環境変数ボタン

ユーザー環境変数の「Path」を選択し、「編集」をクリックします。「新規」をクリックして、cuDNN の bin フォルダのパスを追加します。

C:\nvidia\cudnn-windows-x86_64-8.9.6.50_cuda12-archive\bin
環境変数の編集 - cuDNN の bin フォルダを PATH に追加

4. zlib のインストール

Windows 版の cuDNN 8.3 以上の利用には zlibwapi.dll が必要です。

ZLIB DLL ホームページ から zlib123dllx64.zip をダウンロードし、展開します。

zlib ダウンロードページ

展開した中にある zlibwapi.dll を、PATH の通った場所にコピーします。cuDNN の bin フォルダにコピーするのが簡単です。

copy dll_x64\zlibwapi.dll C:\nvidia\cudnn-windows-x86_64-8.9.6.50_cuda12-archive\bin\

Linux (Ubuntu)

1. NVIDIA CUDA リポジトリの追加

まず、NVIDIA CUDA の apt リポジトリを追加します。CUDA Toolkit 公式ページ で Linux / x86_64 / Ubuntu / バージョン / deb (network) を選択し、表示されるコマンドに従います。一般的な手順は以下の通りです。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
注意: keyring パッケージの URL は Ubuntu のバージョンにより異なります。必ず NVIDIA のダウンロードページに表示される最新のコマンドを使用してください。

2. CUDA Toolkit と cuDNN のインストール

リポジトリを追加したら、apt で CUDA Toolkit と cuDNN の両方をインストールします。

sudo apt install cuda-toolkit libcudnn9-cuda-12
注意: cuDNN のパッケージ名はバージョンにより異なります。cuDNN v8 の場合は libcudnn8、cuDNN v9 + CUDA 12.x の場合は libcudnn9-cuda-12 を使用してください。apt search libcudnn で利用可能なパッケージを確認できます。

3. 環境変数の設定

シェルの設定ファイル (~/.bashrc または ~/.zshrc) に CUDA のパスを追加します。

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

シェルをリロードし、インストールを確認します。

source ~/.bashrc
nvcc --version

NVIDIA Jetson

NVIDIA Jetson デバイス (Jetson Orin Nano、Jetson AGX Orin など) では、NVIDIA JetPack SDK に CUDA Toolkit と cuDNN が最初から含まれています。追加のインストールは不要です。

プリインストールされているバージョンは以下のコマンドで確認できます。

nvcc --version
dpkg -l | grep cudnn
注意: JetPack に含まれる cuDNN のバージョンに対応した ailia SDK を使用してください。上記のバージョン対応表を参照してください。

インストールの確認

Python API の場合

ailia-models のサンプルを使って、CUDA が認識されているかを確認します。

cd ailia-models/image_classification/resnet50
python3 resnet50.py --env_list

出力に CUDA を含む環境が表示されれば成功です。

env[2]=Environment(id=2, type='GPU',
name='cuDNN-NVIDIA GeForce RTX 3080 (8.6, FP32)',
backend='CUDA', props=[])

Unity Plugin の場合

GPU の名称に「CUDA」が表示されていれば成功です。

ヒント: デフォルトでは ailia SDK はプラットフォーム上で最速の環境を自動選択します。特定の環境を使用したい場合は env_id を明示的に指定してください。