Ubuntu 22.04, 24.04, 26.04 での NVIDIA cuDNN のインストール

NVIDIA cuDNN は,畳み込み,プーリング,正規化,アテンションなどのディープラーニングの基本演算を NVIDIA GPU 向けに実装したライブラリである.TensorFlow や PyTorch などの GPU 版が内部で利用する.

NVIDIA cuDNN のダウンロードのページ: https://developer.nvidia.com/cudnn-downloads

NVIDIA cuDNN の現行系列は cuDNN 9 であり,NVIDIA CUDA ツールキット 12.x および 13.x に対応する.NVIDIA がサポートする Ubuntu は 22.04, 24.04, 26.04 である.

前提となる確認

cuDNN は,インストール済みの NVIDIA CUDA ツールキット のメジャーバージョンに対応するものを選ぶ.

端末で,次のコマンドを実行する. 表示された「release」の値が,インストール済みの NVIDIA CUDA ツールキットのバージョンである.

nvcc --version

端末で,次のコマンドを実行する. Ubuntu のバージョンを確認する.

lsb_release -a
TensorFlow や PyTorch の GPU 版を pip でインストールする場合,cuDNN は依存パッケージ(nvidia-cudnn-cu12 など)として自動的に入るため,システムへの cuDNN のインストールは不要である.C/C++ から cuDNN を直接利用する場合や,ソースからビルドする場合に,以下の手順でインストールする.

パッケージ管理システムを用いたインストール

NVIDIA が推奨する方法である.CUDA のネットワークリポジトリを有効化したうえで,cuDNN のメタパッケージをインストールする.

  1. 端末で,次のコマンドを実行する.

    CUDA のネットワークリポジトリを有効化する.NVIDIA CUDA ツールキットのインストール時に有効化済みの場合は,この手順は不要である.コマンド中の ubuntu2404 の箇所は,Ubuntu 22.04 では ubuntu2204,Ubuntu 24.04 では ubuntu2404,Ubuntu 26.04 では ubuntu2604 とする.

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    
  2. 端末で,次のコマンドを実行する.

    リポジトリの情報を更新する.

    sudo apt update
    
  3. 端末で,次のコマンドを実行する.

    NVIDIA CUDA ツールキット 12.x を使用している場合.

    sudo apt -y install cudnn9-cuda-12
    

    NVIDIA CUDA ツールキット 13.x を使用している場合.

    sudo apt -y install cudnn9-cuda-13
    
1 つのシステムに同時にインストールできるのは,1 つの CUDA メジャーバージョン向けの cuDNN 9 のみである.また,cuDNN 9.10.0 以降では旧バージョンとの併存インストールができないため,旧バージョンがインストールされている場合は,apt が自動的にアンインストールする.

tar 形式のファイルを用いたインストール

パッケージ管理システムを使用せずに,特定のバージョンの cuDNN を配置する場合の方法である.

  1. NVIDIA cuDNN のダウンロードのページを開く

    https://developer.nvidia.com/cudnn-downloads

  2. Operating System で Linux,Architecture で x86_64,Distribution で Tarball,CUDA のメジャーバージョン(12 または 13)を選び,表示されたリンクから .tar.xz ファイルをダウンロードする.

    ファイル名は cudnn-linux-x86_64-<バージョン>_cuda12-archive.tar.xz の形式である.各バージョンのファイルは https://developer.download.nvidia.com/compute/cudnn/redist/ からも取得できる.

  3. 端末で,次のコマンドを実行する.

    ダウンロードしたディレクトリに移動し,ファイルを展開する.バージョンの箇所は,ダウンロードしたファイルに合わせる.

    cd <ダウンロードしたディレクトリ>
    tar -xvf cudnn-linux-x86_64-9.25.0.15_cuda12-archive.tar.xz
    
  4. 端末で,次のコマンドを実行する.

    ヘッダファイルとライブラリを NVIDIA CUDA ツールキットのディレクトリにコピーする.ライブラリのシンボリックリンクを保つため,cp -P を使用する.

    sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
    sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
    
  5. 端末で,次のコマンドを実行する.

    共有ライブラリの検索パスに /usr/local/cuda/lib64 を追加し,キャッシュを更新する.

    echo "/usr/local/cuda/lib64" | sudo tee /etc/ld.so.conf.d/cuda.conf
    sudo ldconfig
    

インストールの確認

端末で,次のコマンドを実行する. CUDNN_MAJORCUDNN_MINORCUDNN_PATCHLEVEL の値により,インストールされている cuDNN のバージョンを確認できる.

grep -A 2 "define CUDNN_MAJOR" /usr/include/cudnn_version*.h /usr/local/cuda/include/cudnn_version*.h 2>/dev/null

端末で,次のコマンドを実行する. 共有ライブラリが検索パスに登録されている場合,libcudnn.so.9 などが表示される.

ldconfig -p | grep libcudnn

サンプルプログラムにより動作を確認する場合は,端末で,次のコマンドを実行する. 最後に「Test passed!」と表示されれば,cuDNN が動作している.

sudo apt -y install libcudnn9-samples
cp -r /usr/src/cudnn_samples_v9 $HOME
cd $HOME/cudnn_samples_v9/mnistCUDNN
make clean && make
./mnistCUDNN