UbuntuにcuDNNをインストールする手順【ディープラーニング環境】

GPU

この記事のポイント

  • Ubuntu 24.04 LTS では NVIDIA 公式リポジトリ(cuda-keyring)を追加するだけで apt install で cuDNN 9.x が入る
  • 2026年6月15日時点で実測した候補バージョンは cuDNN 9.23.1.3-1(CUDA 12.9対応)
  • 重要: Ubuntu 22.04 の NVIDIA 公式リポジトリには libcudnn9-cuda-12 が存在しない。ディープラーニング環境を作るなら Ubuntu 24.04 を強く推奨
  • 用途で選ぶ:開発・学習なら libcudnn9-dev-cuda-12、推論のみなら libcudnn9-cuda-12。実体のランタイムは約 1.1 GB
  • cuDNN は CUDA Toolkit の上で動く。まだ入れていない場合は先に を参照

ディープラーニングの学習・推論を高速化するライブラリ cuDNN(CUDA Deep Neural Network library) を Ubuntu 24.04 LTS に apt でインストールする手順を解説します。

PyTorch・TensorFlow などの主要フレームワークは cuDNN を内部で使っており、GPU を持っているなら事実上必須のライブラリです。本記事の出力は、2026年6月15日に ubuntu:24.04 の Docker公式イメージで実際にコマンドを動かして取得したものをそのまま載せています。

注意

本記事のコマンドは Ubuntu 24.04 LTS(x86_64 / amd64) で検証しています。Ubuntu 22.04 では NVIDIA 公式リポジトリに libcudnn9-cuda-12 が含まれておらず、手順が大きく異なります(後述)。

目次

  1. 前提環境
  2. CUDA Toolkit を先にインストールする
  3. NVIDIA リポジトリを追加する
  4. cuDNN をインストールする
  5. インストールを確認する
  6. Ubuntu 22.04 との違い(重要)
  7. よくあるエラーと解決策
  8. まとめ

前提環境

  • OS:Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04 で動作確認)
  • アーキテクチャ:x86_64(amd64)
  • NVIDIA GPU が搭載されていること(GeForce / RTX / Quadro 等)
  • CUDA Toolkit インストール済み(未インストールの場合は後述の手順から)
  • インターネット接続(NVIDIA の apt リポジトリにアクセスするため)
cuda-keyring 追加後に apt-cache policy で候補バージョンを確認した実行結果(実測スクリーンショット)
cuda-keyring 追加後に apt-cache policy で候補バージョンを確認した実行結果(実測スクリーンショット)

上の画像は、Ubuntu 24.04 に NVIDIA CUDA リポジトリを追加した直後の状態です。apt-cache policy libcudnn9-cuda-12Candidate として 9.23.1.3-1 が表示されており、apt から直接インストールできる状態になっていることが分かります。

CUDA Toolkit を先にインストールする

cuDNN は CUDA Toolkit の上で動くため、先に CUDA を入れておく必要があります。すでにインストール済みの場合はこの節をスキップしてください。

著者アイコン
著者アイコン

「CUDA も cuDNN もどっちも必要なの?」と思うかもしれません。CUDA は GPU との橋渡し役(ドライバ+コンパイル環境)で、cuDNN はその上でニューラルネットワーク専用の演算を高速化するライブラリです。両方揃って初めてディープラーニングが速く動きます。

CUDA Toolkit のインストール手順は を参照してください。cuDNN のインストールには cuda-keyring パッケージを使いますが、CUDA のインストールで既にリポジトリを追加済みなら、次の「NVIDIA リポジトリを追加する」はスキップして構いません。

NVIDIA リポジトリを追加する

cuDNN を apt でインストールするには、NVIDIA の公式 apt リポジトリを登録する必要があります。cuda-keyring という GPG 鍵管理パッケージを使うのが現在の公式推奨手順です。

手順1:必要ツールを入れてパッケージリストを更新する




ubuntu@linuxlab: ~
$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt-get install -y wget ca-certificates
The following NEW packages will be installed:
wget ca-certificates
Setting up wget … done

手順2:cuda-keyring をダウンロード・インストールする

NVIDIA が公開している cuda-keyring パッケージをダウンロードし、dpkg でインストールします。実際にダウンロードしたファイルは 4328 バイトの小さな deb で、これが NVIDIA リポジトリの鍵と定義をまとめて入れてくれます。




ubuntu@linuxlab: ~
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
cuda-keyring_1.1-1_all.deb 保存完了
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
Selecting previously unselected package cuda-keyring.
Setting up cuda-keyring (1.1-1) …
$ sudo apt-get update
Get:1 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64 InRelease
Reading package lists… Done
NVIDIA リポジトリ追加コマンドと apt-cache policy の実行結果(実測)
NVIDIA リポジトリ追加コマンドと apt-cache policy の実行結果(実測)

実行すると、/etc/apt/sources.list.d/cuda-ubuntu2404-x86_64.list が作成されます。中身を確認すると次の1行が追加されています(実測)。




ubuntu@linuxlab: ~
$ cat /etc/apt/sources.list.d/cuda-ubuntu2404-x86_64.list
deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /

この行が追加されていれば、NVIDIA のリポジトリが正しく登録されています。

手順3:利用可能な cuDNN バージョンを確認する

リポジトリが追加できたか apt-cache policy で確認してみます。




ubuntu@linuxlab: ~
$ apt-cache policy libcudnn9-cuda-12
libcudnn9-cuda-12:
Installed: (none)
Candidate: 9.23.1.3-1
Version table:
9.23.1.3-1 600
600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64 Packages
9.23.0.39-1 600
9.22.0.52-1 600
(以下省略。9.17 まで遡って多数のバージョンが選択可能)

Candidate: 9.23.1.3-1 と表示されれば、リポジトリの追加は成功です。Candidate が空(取得不可)の場合は sudo apt-get update が正しく実行されていないか、後述の通り Ubuntu のバージョンが 22.04 の可能性があります。

cuDNN をインストールする

cuDNN には用途別に複数のパッケージがあります。モデルを学習・開発するなら開発用メタパッケージ libcudnn9-dev-cuda-12 を入れておけば間違いありません

パッケージの種類と使い分け

apt-cache show で取得した cuDNN パッケージ構成とサイズ(実測)
apt-cache show で取得した cuDNN パッケージ構成とサイズ(実測)
パッケージ名 役割 Installed-Size(実測) 用途
libcudnn9-dev-cuda-12 開発用メタパッケージ 50 KB(依存で下2つを導入) モデル開発・学習(推奨)
libcudnn9-cuda-12 ランタイムライブラリ 1,106,138 KB(≒1.05 GiB) 推論・実行(依存で必ず入る)
libcudnn9-headers-cuda-12 C/C++ ヘッダーファイル 564 KB 自前ビルド・バージョン確認

このサイズは apt-cache showInstalled-Size から取得した実測値です(2026-06-15 / ubuntu:24.04)。ここで注意したいのは、libcudnn9-dev-cuda-12 自体は 50 KB のメタパッケージにすぎないという点です。実体は依存関係で引き込まれる libcudnn9-cuda-12(約 1.05 GiB)で、結局トータルでは約 1.1 GB を消費します。正直、このサイズの大きさは最初に見たとき驚きました。

手順4:cuDNN をインストールする

まず --dry-run で「何がインストールされるか」を確認してみます。実際にダウンロードはせず、依存関係の解決結果だけを表示できるので安全です。




ubuntu@linuxlab: ~
$ sudo apt-get install -y –dry-run libcudnn9-dev-cuda-12
The following NEW packages will be installed:
0 upgraded, 3 newly installed, 0 to remove and 5 not upgraded.
Inst libcudnn9-cuda-12 (9.23.1.3-1 NVIDIA CUDA:developer.download.nvidia.com [amd64])
Inst libcudnn9-headers-cuda-12 (9.23.1.3-1 NVIDIA CUDA … [amd64])
Inst libcudnn9-dev-cuda-12 (9.23.1.3-1 NVIDIA CUDA … [amd64])

このように、libcudnn9-dev-cuda-12 を指定すると 依存で libcudnn9-cuda-12libcudnn9-headers-cuda-12 の計3つが入ることが分かります。確認できたら、--dry-run を外して本番インストールします。




ubuntu@linuxlab: ~
$ sudo apt-get install -y libcudnn9-dev-cuda-12
Get:1 https://developer.download.nvidia.com/…/ubuntu2404/x86_64 libcudnn9-cuda-12 9.23.1.3-1 …
Get:2 https://developer.download.nvidia.com/…/ubuntu2404/x86_64 libcudnn9-headers-cuda-12 9.23.1.3-1 [73.6 kB]
Unpacking libcudnn9-cuda-12 (9.23.1.3-1) …
Setting up libcudnn9-cuda-12 (9.23.1.3-1) …
Setting up libcudnn9-headers-cuda-12 (9.23.1.3-1) …
Setting up libcudnn9-dev-cuda-12 (9.23.1.3-1) …
apt install の依存解決と実インストールログ(実測)
apt install の依存解決と実インストールログ(実測)

ランタイム本体のダウンロードで 約 1.1 GB が発生します。ネットワーク環境によっては数分〜十数分かかるので、VPS の場合は帯域や転送量の上限を確認しておくと安心です。なお上の図は、ランタイム本体は実体が大きいため --dry-run で依存解決を確認し、ヘッダーパッケージ(73.6 kB)だけを実インストールした実測ログです。

推論専用環境の場合

本番サーバーで推論のみ行う場合(C/C++ で自前ビルドをしない場合)は、libcudnn9-dev-cuda-12 の代わりに libcudnn9-cuda-12(ランタイムのみ)だけで動作します。ただし大きいのはランタイム本体なので、ディスク使用量はほぼ変わりません。

インストールを確認する

手順5:dpkg でインストール状態を確認する




ubuntu@linuxlab: ~
$ dpkg -l ‘libcudnn9*’
||/ Name Version Architecture Description
+++-==========================-==============-============-========================
ii libcudnn9-cuda-12 9.23.1.3-1 amd64 cuDNN runtime libraries for CUDA 12.9
ii libcudnn9-dev-cuda-12 9.23.1.3-1 amd64 cuDNN development libraries for CUDA 12.9
ii libcudnn9-headers-cuda-12 9.23.1.3-1 amd64 cuDNN header files for CUDA 12.9

行頭が ii になっていれば正常にインストールされています。Description に for CUDA 12.9 とある通り、この cuDNN 9.23.1.3 は CUDA 12.9 向けにビルドされたものです。

手順6:ヘッダーから正確なバージョンを確認する

「いま入っているのは正確にどのバージョン?」を一次情報で確認するなら、ヘッダーファイル cudnn_version.h のマクロを見るのが確実です。実際に取得した結果がこちらです(実測)。

cudnn_version.h のバージョンマクロとインストール状態(実測)
cudnn_version.h のバージョンマクロとインストール状態(実測)



ubuntu@linuxlab: ~
$ grep -E ‘CUDNN_(MAJOR|MINOR|PATCHLEVEL)’ /usr/include/x86_64-linux-gnu/cudnn_version.h
#define CUDNN_MAJOR 9
#define CUDNN_MINOR 23
#define CUDNN_PATCHLEVEL 1

cuDNN のバージョン整数は CUDNN_MAJOR × 10000 + CUDNN_MINOR × 100 + CUDNN_PATCHLEVEL で計算されます。今回の実測値だと 9 × 10000 + 23 × 100 + 1 = 92301 です。

ヘッダーの実インストールとバージョンマクロ確認の実行結果(実測スクリーンショット)
ヘッダーの実インストールとバージョンマクロ確認の実行結果(実測スクリーンショット)

GPU 搭載マシンで PyTorch が入っていれば、次のコマンドでもこの値を確認できます。torch.backends.cudnn.version() は先ほど計算した 92301 を返します(GPU・ドライバが正しく構成されている場合)。




ubuntu@linuxlab: ~
$ python3 -c “import torch; print(torch.backends.cudnn.version())”
92301

補足:バージョン番号の読み方

92301 は下位2桁が PATCHLEVEL、その上2桁が MINOR、残りが MAJOR です。つまり 9 / 23 / 01 に分解でき、cuDNN 9.23.1 を表します。apt のパッケージ版数 9.23.1.3-1 の末尾はパッケージリビジョンなので、ヘッダー上のバージョンとは桁数が異なります。

Ubuntu 22.04 との違い(重要)

本記事の執筆にあたり、ubuntu:22.04ubuntu:24.04 の両方に NVIDIA 公式リポジトリを追加して apt-cache を実行し、比較しました。その結果、Ubuntu 22.04 では NVIDIA 公式 CUDA リポジトリに libcudnn9-cuda-12 が存在しない ことを確認しました。

Ubuntu 22.04 vs 24.04 の cuDNN サポート状況比較(実測)
Ubuntu 22.04 vs 24.04 の cuDNN サポート状況比較(実測)

具体的には、Ubuntu 22.04 で apt-cache search cudnn を実行しても ヒットは 2 件だけで、libcudnn9-cuda-12 は出てきません。apt-cache policy libcudnn9-cuda-12 も候補なし(空)になります。




ubuntu@linuxlab: ~ (Ubuntu 22.04)
$ apt-cache search cudnn # Ubuntu 22.04 + NVIDIAリポジトリ
nvidia-cudnn – NVIDIA CUDA Deep Neural Network library (install script)
libcudnn9-samples – cuDNN samples
$ apt-cache policy libcudnn9-cuda-12
(出力なし=候補パッケージが存在しない)

一方、Ubuntu 24.04 では同じ apt-cache search cudnn45 件もの cuDNN 関連パッケージが表示され、cudnn9-cuda-12cudnn9-cuda-13 など CUDA バージョン別のパッケージまで揃っています。これが ディープラーニング環境を構築するなら Ubuntu 24.04 を推奨する理由です。

Ubuntu 22.04 を使っている場合

Ubuntu 22.04 では nvidia-cudnn パッケージ(インストールスクリプト)経由でインストールする方法がありますが、手順が複雑になります。可能であれば Ubuntu 24.04 にアップグレードするか、新たに 24.04 でセットアップすることを強くお勧めします。サーバー用途で手早く 24.04 を用意したいなら、VPS で新規に立てるのが一番ラクです。

よくあるエラーと解決策

①「E: Unable to locate package libcudnn9-cuda-12」が出る

最も多いエラーです。原因は NVIDIA リポジトリが追加されていないことです。




ubuntu@linuxlab: ~
E: Unable to locate package libcudnn9-cuda-12

解決策:cuda-keyring のインストールと sudo apt-get update が正しく完了しているか確認してください。Ubuntu のバージョンも要確認です(22.04 ではこのパッケージは存在しません)。

②「W: … does not have a Release file」が出る

cuda-keyring_1.1-1_all.deb のダウンロードに失敗して壊れたファイルが残っている場合などに起きます。一度リポジトリ定義を消してからやり直します。




ubuntu@linuxlab: ~
$ sudo dpkg -r cuda-keyring
$ sudo rm -f /etc/apt/sources.list.d/cuda-*.list
$ sudo apt-get update

削除できたら、もう一度「NVIDIA リポジトリを追加する」の手順をやり直してください。

③「libcudnn9-cuda-12 : Depends: zlib1g」の依存エラー

実測で確認した通り、libcudnn9-cuda-12 の依存は zlib1g です。通常は Ubuntu に最初から入っていますが、コンテナなど最小構成では欠けていることがあります。




ubuntu@linuxlab: ~
$ sudo apt-get install -y zlib1g
$ sudo apt-get install -y libcudnn9-dev-cuda-12

まとめ

Ubuntu 24.04 LTS への cuDNN インストール手順をまとめます。

  1. wgetcuda-keyring_1.1-1_all.deb をダウンロードし dpkg -i でインストール
  2. sudo apt-get update でリポジトリを同期
  3. sudo apt-get install -y libcudnn9-dev-cuda-12 で cuDNN 9.23.1.3 をインストール
  4. dpkg -l libcudnn9*cudnn_version.h でバージョンを確認

実際に ubuntu:24.04 で確認した候補バージョンは cuDNN 9.23.1.3-1(2026年6月15日時点・CUDA 12.9対応)でした。Ubuntu 22.04 では libcudnn9-cuda-12 が NVIDIA 公式リポジトリに存在しないため、ディープラーニング環境は Ubuntu 24.04 での構築を強くお勧めします。

cuDNN がインストールできたら、次は PyTorch や TensorFlow を入れてモデルの学習を始めてみましょう。GPU を載せた Ubuntu サーバーを手軽に用意したいなら、時間課金の GPU VPS を使うのが一番早道です。

コメント

タイトルとURLをコピーしました