CUDA&cuDNN環境構築のためのバージョン確認方法(Windows)

はじめに

深層学習技術を用いたソフトを使用する際に、CUDAとcuDNNの導入が必要なケースも増えてきました。 ダウンロードやインストールもそこそこ難易度が高いですが、インストールできたとしても動かないことがよくあります。よくある問題の1つは、バージョンの相性問題です。

そこでこの記事では、各ツールのバージョンを確認する方法を記載します。(※各ツールのインストール方法は扱いません)

バージョン合わせの重要性

ハード側は、GPU ドライバーのバージョンによって、動作するCUDAバージョンが決まり1、そのCUDAバージョンによって動作するcuDNNのバージョンが決まり2ます。

この条件を満たした上でさらに、ソフト側がサポートするバージョンであること、が求められます。

※ソフト側からすれば使いたいのはcuDNNやCUDAなので、以下のように逆の流れで決まるわけですね。

  • ソフトはcuDNNのバージョンXに対応。
  • cuDNNのバージョンXに対応するCUDAはバージョンY。
  • CUDAのバージョンYに対応するGPUドライバーはバージョンZ。

特に古いバージョン向けのソフトを新しいバージョンの環境では動かせない(下位互換性がない)ことがあるため、バージョン合わせが重要になります。

作業情報

筆者環境

確認内容

  • GPUの型番
  • NVIDIA ドライバーのバージョン
  • CUDA Toolkit のバージョン
  • cuDNN のバージョン

手順

GPUの型番

GUIで確認する】

  • Ctrlキー + Shiftキー + Escキーを押して、タスクマネージャーを開きます。
  • 簡易表示になっている場合は、左下の「詳細」をクリックします。 f:id:shift101:20220227173147p:plain

  • 「パフォーマンス」タブを開き、左側のリストの一番下の項目にGPUと書かれたものがある(はず)なので、クリックします。

  • 右上に表示されているのがGPUの型番です。 f:id:shift101:20220227173158p:plain

CLIで確認する】

  • コマンドプロンプトを開き、以下を実行します。

    nvidia-smi --query-gpu=name --format=csv
    
  • 2行目に表示されているのがGPUの型番です。 f:id:shift101:20220227173200p:plain

NVIDIA ドライバーのバージョン

GUIで確認する】

  • Winキー + Sキー を押し、検索ボックスに「NVIDIA Control Panel」のように入力し、NVIDIA コントロール パネルを起動します。 f:id:shift101:20220227173207p:plain

  • メニューバーの「ヘルプ」 > 「システム情報」をクリックします。 f:id:shift101:20220227173208p:plain

  • 表示されたシステム情報の、詳細欄の「ドライバーのバージョン」で表示されているのがインストールされているNVIDIA ドライバーのバージョンです。 f:id:shift101:20220227173210p:plain

CLIで確認する】

CUDA Toolkit のバージョン

CLIで確認する】

  • コマンドプロンプトを開き、以下を実行します。

    nvcc -V
    
  • Cuda compilation tools,のあとに表示されているバージョンがCUDA Toolkit のバージョンです。 f:id:shift101:20220227173233p:plain

    • 見つからないと表示された場合は、未導入か、CUDA Toolkitがうまくインストールできていない可能性があります。

cuDNN のバージョン

CLIで確認する】

  • コマンドプロンプトを開き、以下を実行します。

    where cudnn64_*.dll
    
  • OSが認識しているcuDNNが表示されます。 f:id:shift101:20220227173241p:plain

    • 見つからないと表示された場合は未導入か、ファイルの配置ができていても、PATHが通っていない場合があります。
  • 表示されているパスをメモ帳などにコピーし、bin\以降のパスをinclude\cudnn.hに置き換えます。

    #例:置き換え前
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\cudnn64_8.dll
    
    #例:置き換え後
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include\cudnn.h
    
  • 作成したパスに向けて以下のようなfindコマンドで#defineを検索します。

    find "#define" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include\cudnn.h"
    
  • 以下のような、結果が返ってきていれば、上から順番に数字を並べるとcuDNNのバージョンになります。

    #define CUDNN_MAJOR 8
    #define CUDNN_MINOR 1
    #define CUDNN_PATCHLEVEL 1
    
    • この場合は、バージョン8.1.1です。
  • 上記のような結果が返ってこなければ、最後のcudnn.hcudnn_version.hに変更して再試行します。

    find "#define" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include\cudnn_version.h"
    

    f:id:shift101:20220227173248p:plain

    • 筆者環境では、cudnn_version.hに変更して確認することができました。

確認手順は以上です。

参考サイト