NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.6.2,NVIDIA cuDNN v8.4.0 のインストールと動作確認(Windows 上)
Windows での,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.6.2,NVIDIA cuDNN v8.4.0 のインストール,nvcc の使用例をスクリーンショット等で説明する.
このページでは,TensorFlow 2.8 の運用を想定している.TensorFlow の他のバージョンでも同様の手順になる(TensorFlow のインストールは別ページ »で説明). NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.
GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.
【目次】
- Build Tools for Visual Studio 2019 (ビルドツール for Visual Studio 2019)のインストール
- NVIDIA ドライバのインストール(Windows 上)
- NVIDIA CUDA ツールキット 11.6.2 のインストール(Windows 上)
- NVIDIA cuDNN v8.4.0 のインストール
- nvcc を動かしてみる(x64 Native Tools コマンドプロンプトを利用)
- NVIDIA CUDA サンプルプログラムのビルドと実行
【サイト内の関連ページ】
● YouTube 動画, 「NVIDIA ドライバ, CUDA 11.6, cuDNN 8.4 のインストール (Windows 上) 」:
YouTube 動画のURL: https://www.youtube.com/watch?v=Np1u6cFSz9E
ドクセルの URL: https://www.docswell.com/s/6674398749/KJ62N5-2022-04-19-133927
GPU
GPUは,グラフィックス・プロセッシング・ユニット(Graphics Processing Unit)の略である.3次元コンピュータグラフィックスや3次元ゲーム,動画編集,仮想通貨のマイニング,科学計算,ディープラーニングなど,並列処理が必要な幅広い分野で活用されている.
TensorFlow GPU 版
TensorFlowは,Googleが開発した機械学習フレームワークである.Python,C/C++言語から利用可能で,CPU,GPU,TPU上で動作する.TensorFlowの特徴として「データフローグラフ」がある.これは,「データの流れ」を表現するもので,グラフの節点は演算(オペレーション)を,エッジはデータ(テンソル)の流れを表す.TensorFlowを使用することで,音声,画像,テキスト,ビデオなど多様なデータを扱う機械学習アプリケーションの開発が容易になる.2015年11月に初版がリリースされて以来,継続的にバージョンアップが続いている.
TensorFlow GPU版の動作要件(2024年7月現在)
- NVIDIA グラフィックス・ボード
Windows で,NVIDIA グラフィックス・ボードの種類を確認するには,次のコマンドを実行する.
wmic path win32_VideoController get name
- NVIDIA ドライバ
- NVIDIA CUDA ツールキット
TensorFlow バージョン 2.10.1の動作には,cudart64_110.dll, cusolver64_11.dll, cudnn64_8.dll が必要である. そのために,NVIDIA CUDA ツールキット 11 をインストールしてください. Windows では,NVIDIA CUDA ツールキット 12 と TensorFlow バージョン 2.10.1 の互換性が確認されていません.
そして, NVIDIA CUDA ツールキット のバージョンを選ぶときは,NVIDIA cuDNNに対応したバージョンを選択することも重要である. 互換性の詳細はcuDNNの公式ページで確認できる.
- NVIDIA cuDNN
TensorFlow GPU版の動作のためにNVIDIA cuDNNが必要である.
TensorFlow 2.4.4以前のバージョンを使用する場合は,NVIDIA cuDNN のバージョン選択に特に注意が必要である. その詳細は,別ページ »で説明
Build Tools for Visual Studio 2019 (ビルドツール for Visual Studio 2019)のインストール
【手順】
- Windows で,コマンドプロンプトを管理者として実行
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Build Tools for Visual Studio 2019と VC2015 再配布可能パッケージをインストールするものである.
- Visual Studio Installer の起動
起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.
- Visual Studio Build Tools 2019 で「変更」を選ぶ.
- 「C++ によるデスクトップ開発」をクリック.そして,画面右側の「インストール」の詳細で「v142 ビルドツール用 C++/CLI サポート(最新)」,「ATL」,「MFC」をチェックする.その後,「インストール」をクリック.
- ダウンロードとインストールが始まる
- インストール終了の確認
- コンパイラの動作確認
- Visual Studio の x64 Native Tools コマンドプロンプトを起動.
起動方法: Windows のスタートメニューで「Visual Studio 2019」の下の「x64 Native Tools Command Prompt for VS 2019」で起動する.(あるいは類似のものを探す).「x64」は,64ビット版の意味である.
- エディタを起動.
ここではメモ帳 (notepad) を使っている.
x64 Native Tools コマンドプロンプト で,次のコマンドを実行する. ファイル名は hello.c としている.
C: cd /d %USERPROFILE% notepad hello.c
- いまメモ帳で開いたファイルを,
次のように編集する(コピー&ペーストしてください).そして保存する.
#include<stdio.h> int main() { printf("Hello,World!\n"); printf("sizeof(size_t)=%ld\n", sizeof(size_t)); return 0; }
- x64 Native Tools コマンドプロンプト を新しく開き,次のコマンドを実行
結果として,「Hello,World!」「sizeof(size_t)=8」と表示されればOK.
del hello.exe cl hello.c .\hello.exe
実行結果例
- Visual Studio の x64 Native Tools コマンドプロンプトを起動.
【サイト内の関連ページ】 Windows での ビルドツール for Visual Studio 2019 (Build Tools for Visual Studio 2019) のインストール(winget を使用しないインストール): 別ページ »で説明
【関連項目】 Build Tools for Visual Studio(ビルドツール for Visual Studio)
NVIDIA ドライバのインストール(Windows 上)
NVIDIA ドライバ
NVIDIA ドライバは,NVIDIA製GPUを動作させるための重要なソフトウェアである.このドライバをインストールすることにより,GPUの性能を引き出すことができ,グラフィックス関連のアプリ,AI関連のアプリの高速化が期待できる.
ドライバはNVIDIA公式サイトである https://www.nvidia.co.jp/Download/index.aspx?lang=jp からダウンロードできる.このサイトからダウンロードするときには,グラフィックスカードとオペレーティングシステムを選択する. なお,NVIDIA GeForce Experiance を用いてインストールすることも可能である.
【サイト内の関連ページ】
- NVIDIA グラフィックス・ボードの確認
Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, 次のコマンドを実行することにより調べることができる.
wmic path win32_VideoController get name
- NVIDIA ドライバのダウンロード
NVIDIA ドライバは,以下の NVIDIA 公式サイトからダウンロードできる.
- ダウンロードの際には,使用しているグラフィックス・ボードの型番とオペレーティングシステムを選択する.
- NVIDIA グラフィックス・ボードの確認
Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, 次のコマンドを実行することにより調べることができる.
wmic path win32_VideoController get name
- NVIDIA ドライバのダウンロード
NVIDIA ドライバは,以下の NVIDIA 公式サイトからダウンロードできる.
- ダウンロードの際には,使用しているグラフィックス・ボードの型番とオペレーティングシステムを選択する.
NVIDIA CUDA ツールキット 11.6.2 のインストール(Windows 上)
NVIDIA CUDA ツールキットのインストール時の注意点
NVIDIAのGPUを使用して並列計算を行うためのツールセット
主な機能: GPU を利用した並列処理,GPU のメモリ管理,C++をベースとした拡張言語とAPIとライブラリ
【NVIDIA CUDA ツールキットの動作に必要なもの】
- CUDA対応のNVIDIA GPUが必要.
そのために,NVIDIA グラフィックス・ボードを確認する. Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, 次のコマンドを実行することにより調べることができる.
wmic path win32_VideoController get name
- NVIDIA ドライバのダウンロードとインストール
NVIDIA ドライバは,以下の NVIDIA 公式サイトからダウンロードできる. ダウンロードの際には,使用しているグラフィックス・ボードの型番とオペレーティングシステムを選択する.
- Windows では,インストール前に,Build Tools for Visual Studio もしくは Visual Studio をインストールしておくことが必要である.
【Windows でインストールするときの注意点】
- Windows では, NVIDIA CUDA ツールキットのインストール中は,なるべく他のウインドウはすべて閉じておくこと.
- NVIDIA CUDA ツールキットのインストールが終わったら,ユーザ環境変数 TEMP の設定を行う.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
【関連する外部ページ】
- NVIDIA CUDA ツールキットのアーカイブの公式ページ: https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA CUDA ツールキット の公式のドキュメント: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
- NVIDIA CUDA ツールキットのインストールに関する,NVIDIA CUDA クイックスタートガイドの公式ページ: https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html
【関連項目】 NVIDIA CUDA ツールキット, NVIDIA CUDA ツールキット 12.5 のインストール(Windows 上), NVIDIA CUDA ツールキット 11.8 のインストール(Windows 上)
- NVIDIA CUDA ツールキットのアーカイブのページを開く
- NVIDIA CUDA ツールキットのバージョンを選ぶ
ここでは,NVIDIA CUDA ツールキットの11.6 系列の最新版を選んでいる.
- 「Windows」,「10」,「exe [local]」を選ぶ.
Windows 11 のときは,「11」を選んでください.
- 「Base Installer」の右横の「Download」をクリックして,.exe ファイルをダウンロード
- exe ファイルのダウンロードが始まる
- ダウンロードした .exe ファイルを実行する.
- 展開(解凍)先ディレクトリ(フォルダ)の指定.
既定(デフォルト)のままでよい.「OK」をクリック.
- 展開(解凍)が自動で行われるので,しばらく待つ.
- ライセンス条項の確認.
- インストールオプションは,「カスタム(詳細)」を選び,「次へ」をクリック.
- コンポーネントを確認する.
「CUDA」にチェックする.その他は,必要なものがあればチェックする.「次へ」をクリック.
- このとき,NVIDIA ドライバを選択することもできる(NVIDIA ドライバが未インストールであれば,インストールする).
- 複数の版の NVIDIA CUDA ツールキットをインストールする場合には,古い版のNVIDIA CUDA ツールキットをインストールするときに「CUDA」だけを選ぶようにする.
- インストール場所の選択は,既定(デフォルト)のままでよい.「次へ」をクリック.
- Visual Studio Integration について表示された場合
表示されなくても問題はない.
表示された場合には,次のように判断する.
- Visual Studio をインストールする予定があるとき
ここで,NVIDIA CUDA ツールキットのインストールを中止. 先に, Visual Studio 2022 のインストールを行う.
- Visual Studio をインストールする予定がないとき
NVIDIA CUDA ツールキットのインストールを中止する必要はない.
あとで構わないので,Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)のインストールを行っておく
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)のインストールが終わっていても,Visual Studio Community のインストールを行っていない場合には,この表示は出るが,問題はない
- Visual Studio をインストールする予定があるとき
- このとき,Windows セキュリティの画面が開くことがある.開いた場合には,「インストール」をクリック.
- インストールが始まるので,確認する.
- このとき,グラフィックス・カードのドライバのインストールについての画面が表示される場合がある.「インストール」をクリックして,インストールを続行する.
- Visual Studio がインストール済みのときは,Nsight Visual Studio がインストールされたことが確認できる.確認したら「次へ」をクリック.
Visual Studio をインストールしていないときは,Nsight for Visual Studio はインストールされない.
- インストール終了の確認.「閉じる」をクリック.
* 「コンピュータを再起動してください」と表示される場合がある.そのときは,再起動する.
- NVIDIA CUDA ツールキットのインストールが終わったら,ユーザ環境変数 TEMP の設定を行う.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
インストール後の環境変数の確認
- システム環境変数 PATH
バージョン 11.6.2 の場合
次のように自動設定される.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\libnvpp
* 複数の版の CUDA ツールキットをインストールする場合には, 複数のパスが設定される このとき・古い版の方が先に来ている場合には、後になるように調整する
- システム環境変数 CUDA_PATH
バージョン 11.6.2 の場合
次のように自動設定される.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6
* 複数の版の CUDA ツールキットをインストールしている場合には,最後にインストールしたものが設定される
- その他
バージョン 11.6.2 の場合
システム環境変数 CUDA_PATH_V11_6
次のように自動設定される.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6
nvcc の動作確認
nvcc にパスが通っていることを確認する
Windows のコマンドプロンプトを開き,次のコマンドを実行する. エラーメッセージが出ないことを確認.
where nvcc
NVIDIA cuDNN v8.4.0 のインストール
NVIDIA cuDNN
NVIDIA cuDNN は, NVIDIA CUDA ツールキット上で動作するディープラーニング・ライブラリである. 畳み込みニューラルネットワークや リカレントニューラルネットワークなど,さまざまなディープラーニングで利用されている.
Windows で,NVIDIA cuDNN の利用時に 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときは, ZLIB DLL をインストールすること.
【関連する外部ページ】
- NVIDIA cuDNN のダウンロードの公式ページ: https://developer.nvidia.com/cudnn
NVIDIA cuDNN のインストール(Windows 上)の概要
- NVIDIA Developer Program メンバーシップへの加入が必要.
NVIDIA Developer Program の公式ページ: https://developer.nvidia.com/developer-program
- 公式サイトより,使用中の NVIDIA CUDA のバージョンに適合するzipファイルをダウンロード.ダウンロードしたファイルを展開(解凍).展開先のbinフォルダにパスを通す.システム環境変数CUDNN_PATHを設定.パスが正しく設定されたか確認(where cudnn64_8.dllコマンドでエラーが出ないことを確認)
zlib のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者として実行
コマンドプロンプトを管理者として実行: 別ページ »で説明
- 次のコマンドを実行
次のコマンドは,zlibをインストールし,パスを通すものである.
cd /d c:%HOMEPATH% rmdir /s /q zlib git clone https://github.com/madler/zlib cd zlib del CMakeCache.txt rmdir /s /q CMakeFiles\ cmake . -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_INSTALL_PREFIX=c:/zlib cmake --build . --config RELEASE --target INSTALL powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\zlib\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")" powershell -command "[System.Environment]::SetEnvironmentVariable(\"ZLIB_HOME\", \"C:\zlib\", \"Machine\")"
【関連する外部ページ】
- zlib の公式ページ: https://www.zlib.net/
【関連項目】 zlib
NVIDIA cuDNN のダウンロードとインストールの手順
- NVIDIA cuDNN のウェブページを開く
- ダウンロードしたいので,cuDNNのところにある「Download cuDNN」をクリック.
- NVIDIA Developer Program メンバーシップに入る
NVIDIA cuDNN のダウンロードのため.
「Join now」をクリック.その後,画面の指示に従う. 利用者本人が,電子メールアドレス,表示名,パスワード,生年月日を登録.利用条件等に合意.
- ログインする
- 調査の画面が出たときは,調査に応じる
- ライセンス条項の確認
- ダウンロードしたいバージョンを選ぶ
ここでは「NVIDIA cuDNN v8.4.0 for CUDA 11.x」を選んでいる.
このとき,画面の「for CUDA ...」のところを確認し,使用するNVIDIA CUDA のバージョンに合うものを選ぶこと.
- Windows にインストールするので Windows 版を選ぶ
- ダウンロードが始まる.
- ダウンロードした .zip ファイルを展開(解凍)する.展開の結果 cuda という名前のディレクトリができる.その中のサブディレクトリを確認しておく.
- NVIDIA CUDA ツールキットをインストールしたディレクトリは,「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6」
のようになっている.確認する.
- 確認したら,
さきほど展開してできたディレクトリcuda の下にあるすべてのファイルとディレクトリを,NVIDIA CUDA ツールキットをインストールしたディレクトリにコピーする
- パスが通っていることを確認.
次の操作により,cudnn64_8.dll にパスが通っていることを確認する.
Windows のコマンドプロンプトを開き,次のコマンドを実行する.エラーメッセージが出ないことを確認.
where cudnn64_8.dll
- Windows の システム環境変数 CUDNN_PATH の設定を行う.
システム環境変数 CUDNN_PATH の設定のため, Windows で,コマンドプロンプトを管理者として実行
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDNN_PATH\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\", \"Machine\")"
nvcc を動かしてみる(x64 Native Tools コマンドプロンプトを利用)
- C/C++ をコマンドで使いたいので,Visual Studio の x64 Native Tools コマンドプロンプトを起動.
起動は,Windows のメニューで「Visual Studio 2022」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.
* 32ビットのNative Tools コマンドプロンプトでは nvcc が動かない.
以下の操作は,x64 Native Tools コマンドプロンプトで行う
- 確認のため,「where cl」を実行.
エラーメッセージが出ていないことを確認.
where cl
- nvccの動作確認のため,
https://devblogs.nvidia.com/easy-introduction-cuda-c-and-c/に記載のソースコードを使用. まず,エディタを開く. ここではメモ帳 (notepad) を使っている.
x64 Native Tools コマンドプロンプト で,次のコマンドを実行する. ファイル名は hello.cu としている.
cd /d c:%HOMEPATH% notepad hello.cu
その後,ファイルを編集し,ファイルを保存.
ファイル hello.cu ができる.
- ビルドと実行.
「nvcc hello.cu」で a.exe というファイルができる. 「Max error: 0.000000」と表示されればOK.
うまく動かないときは,まず,マイクロソフト C++ ビルドツールの動作を,別ページの手順により確認し,異常があれば,マイクロソフト C++ ビルドツールのインストールなどで対処.それでも動かないときは,NVIDIA CUDA ツールキット 11.6.2 のインストールしたときの作業に間違いがなかったかを再確認.
del a.exe nvcc hello.cu
.\a.exe
うまく動かない場合がある.
Windows で,ユーザ名が日本語を含むとき,次のように,「nvcc hello.cu」がうまく動作しない上に,エラーメッセージも出ない場合がある.
このときは,ユーザ環境変数 TEMP に日本語を含まないディレクトリを設定する.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
この設定を終わったあと,確認のため,新しくx64 Native Tools コマンドプロンプトを開き,nvcc hello.cu と .\a.exe をもう一度実行して確認する.
nvcc hello.cu .\a.exe
NVIDIA CUDA サンプルプログラムのビルドと実行
付属のサンプルプログラムを Visual Studio Community 2022 の C++ を用いてビルドし実行してみる.
前準備
Visual Studio Community 2022 のインストールを行う.
CUDA Samples にあるソースコードのビルド
- C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.6 を開く
ここに,サンプルプログラムについての記載があるので確認する.
- サンプルプログラムのダウンロード
cd "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.6" git clone https://github.com/nvidia/cuda-samples
- 自分が持っている Visual Studio のバージョンにあった sln ファイル(ソリューションファイル)を開く.
ここでは, ソリューションファイル Samples_vs2022.slnを開いている.
しばらく待つ
- ソリューションエクスプローラーの「ソリューション 'Sample_vs2022' 」をクリックすると,下にプロパティが表示されるので確認する.
- ビルドする前に、
右クリックメニューで、
「ソリューションの再ターゲット」を選ぶ.
これは、SDK のバージョンに起因するエラーを回避するための操作
- 「ビルド」メニューを開き,「ソリューションのビルド」を選ぶ.
- 画面の下にあるコンソールを見て,ビルドの終了を確認.
* ビルドの終了までしばらく待つこと.
- プログラムができる.いくつかを実行してみる.
プログラムの場所は C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\bin\win64\Debug