Windows での,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.6 のインストール,nvcc の使用例を説明する. NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.
GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.
【目次】
【サイト内の関連ページ】
GPU は,グラフィックス・プロセッシング・ユニット(Graphics Processing Unit)の略である.現在は,3次元のビデオゲーム,さまざまな計算,ディープラーニングの高速な並列処理などに用いられている
NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている.
【サイト内の関連ページ】
【関連する外部ページ】
【NVIDIA CUDA ツールキットの動作に必要なもの】
Windows で,NVIDIA グラフィックス・カードの種類を調べたいときは, hwinfo (URL: https://www.hwinfo.com/index.html) を使って調べることができる.
【Windows でインストールするときの注意点】
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
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 の動作に必要なもの】
Windows で,NVIDIA グラフィックス・カードの種類を調べたいときは, hwinfo (URL: https://www.hwinfo.com/index.html) を使って調べることができる.
最新のNVIDIA CUDA ツールキットでは動かないということもあるので注意.
ZLIB DLL は,データの圧縮と展開(解凍)の機能を持ったライブラリ.
ZLIB DLL のインストールを行うため, Windows で,コマンドプロンプトを管理者として実行
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行.
但し,「v11.8」のところは,実際にインストールされている NVIDIA CUDA ツールキットのバージョンを確認し,読み替えてください.
cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin" curl -O http://www.winimage.com/zLibDll/zlib123dllx64.zip call powershell -command "Expand-Archive -Path zlib123dllx64.zip" copy zlib123dllx64\dll_x64\zlibwapi.dll .
NVIDIA Developer Program の公式ページ: https://developer.nvidia.com/developer-program
NVIDIA ドライバは,NVIDIA 社製の GPU を動作させるのに必要なドライバである.次の NVIDIA の公式サイトからダウンロードできる.ダウンロードのときは,使用しているオペレーティングシステムとGPUに適したものを選ぶこと.
【関連する外部ページ】
NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
Tensorflowは, データフローグラフ (data flow graph) を特色とするフレームワークの機能を持つ Pythonのパッケージ. データフローグラフでは, 節が数値演算,枝が多次元の配列(テンソル)になっている. Python, C/C++ 言語から利用可能.機械学習のアプリケーションを簡単に作成できるもの. プロセッサ(CPU), GPU, Google TPU で動く. Google 社のディープラーニング研究プロジェクト. 2015年11月に最初のリリース.
TensorFlow のデータセットとして,https://github.com/tensorflow/datasets などで・音声,画像,テキスト,ビデオのデータが多数公開されており,学習に利用できる
TensorFlow GPU 版の動作に必要なもの(2023年4月時点)
Windows で,NVIDIA グラフィックス・カードの種類を調べたいときは, hwinfo (URL: https://www.hwinfo.com/index.html) を使って調べることができる.
TensorFlow の動作に,cudart64_110.dll, cusolver64_11.dll, cudnn64_8.dll が必要であるため,NVIDIA CUDA ツールキット 11 をインストールする.
注意点の1:NVIDIA CUDA ツールキット 11は,NVIDIA cuDNN が対応しているものを選ぶこと. 新しいNVIDIA CUDA ツールキット 11では,NVIDIA cuDNN が対応していない場合がある.詳細は,NVIDIA cuDNN のページ https://developer.nvidia.com/cudnn で確認で確認できる.
注意点の2:NVIDIA CUDA ツールキット は,バージョン12 でなくバージョン11 の最新版を使うこと.バージョン 12 は,2023年 4月に Tensorflow 2.10.1 で試したが動作しなかった.
最新の NVIDIA cuDNNに対応するNVIDIA CUDA ツールキットのバージョンは,
古いバージョンである2.4.4 あるいはそれ以前のバージョン のTensorFlow を使う場合は, 最新の NVIDIA cuDNNを使わないこと. 詳しくは,別ページ »で説明
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)は,Windows で動くMicrosoft の C++ コンパイラーである.
(例)cl hello.c
「cl hello.c」でコンパイルしたときは「hello.exe」ファイルができるので確認
【サイト内の関連ページ】
Windows での Build Tools for Visual Studio 2022(ビルドツール for Visual Studio 2022)のインストール: 別ページ »で説明
【関連する外部ページ】
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)の公式ダウンロードページ: https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
Windows での Visual Studio Community 2022 のインストール: 別ページ »で説明
Visual Studio Community 2022 に, Build Tools for Visual Studio 2022の機能が含まれている.
次の手順で,Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022) のインストールを行う.
【関連する外部ページ】
Microsoft Visual Studio の C/C++ をコマンドで使いたいときは, Visual Studio の x64 Native Tools コマンドプロンプトを使う.
Windows のスタートメニューで「Visual Studio 2022」の下の「x64 Native Tools Command Prompt for VS 2022」で起動する.(あるいは類似のものを探す).「x64」は,64ビット版の意味である.
以下の操作は,x64 Native Tools コマンドプロンプトで行う
エラーメッセージが出ていないことを確認.
where cl
※ 「cl が無い」 という場合は,次の手順で,Visual Studio Build Tools 2022 の C++ についての設定を行う.
Windowsのスタートメニューからの起動が簡単
まず,エディタを開く. ここではメモ帳 (notepad) を使っている.
x64 Native Tools コマンドプロンプト で,次のコマンドを実行する. ファイル名は hello.c としている.
c: cd %HOMEPATH% 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
実行結果例
NVIDIA ドライバは,NVIDIA 社製の GPU を動作させるのに必要なドライバである.
Windows で,NVIDIA グラフィックス・カードの種類を調べたいときは, hwinfo (URL: https://www.hwinfo.com/index.html) を使って調べることができる.
次の NVIDIA の公式サイトからダウンロードできる.ダウンロードのときは,使用しているオペレーティングシステムとGPUに適したものを選ぶこと.
NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
最新の NVIDIA CUDA ツールキットをインストールする予定があるときは, NVIDIA CUDA ツールキットに同封の NVIDIA ドライバを使うことができる (NVIDIA CUDA ツールキットのインストールのときに,同時に NVIDIA ドライバもインストール).
NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
ここでは,NVIDIA CUDA ツールキット 11.8.0を選んでいる.
Windows 11 のときは,「11」を選ぶ.
既定(デフォルト)のままでよい.「OK」をクリック.
「CUDA」にチェックする.その他は,必要なものがあればチェックする.「次へ」をクリック.
表示されなくても問題はない.
表示された場合には,次のように判断する.
ここで,NVIDIA CUDA ツールキットのインストールを中止. 先に, Visual Studio 2022 のインストールを行う.
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 がインストール済みのときは,Nsight Visual Studio がインストールされたことが確認できる.確認したら「次へ」をクリック.
Visual Studio をインストールしていないときは,Nsight for Visual Studio はインストールされない.
※ 「コンピュータを再起動してください」と表示される場合がある.そのときは,再起動する.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
バージョン 11.8 系列の場合
次のように自動設定される.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvpp
※ 複数の版の CUDA ツールキットをインストールする場合には, 複数のパスが設定される このとき・古い版の方が先に来ている場合には、後になるように調整する
バージョン 11.8 系列の場合
次のように自動設定される.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
※ 複数の版の CUDA ツールキットをインストールしている場合には,最後にインストールしたものが設定される
バージョン 11.8 系列の場合
システム環境変数 CUDA_PATH_V11_8
次のように自動設定される.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
nvcc にパスが通っていることを確認する
Windows のコマンドプロンプトを開き、次のコマンドを実行する. エラーメッセージが出ないことを確認.
where nvcc
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 の動作に必要なもの】
Windows で,NVIDIA グラフィックス・カードの種類を調べたいときは, hwinfo (URL: https://www.hwinfo.com/index.html) を使って調べることができる.
最新のNVIDIA CUDA ツールキットでは動かないということもあるので注意.
ZLIB DLL は,データの圧縮と展開(解凍)の機能を持ったライブラリ.
ZLIB DLL のインストールを行うため, Windows で,コマンドプロンプトを管理者として実行
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行.
但し,「v11.8」のところは,実際にインストールされている NVIDIA CUDA ツールキットのバージョンを確認し,読み替えてください.
cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin" curl -O http://www.winimage.com/zLibDll/zlib123dllx64.zip call powershell -command "Expand-Archive -Path zlib123dllx64.zip" copy zlib123dllx64\dll_x64\zlibwapi.dll .
NVIDIA Developer Program の公式ページ: https://developer.nvidia.com/developer-program
【インストールの概要】
Windows では,基本,NVIDIA cuDNN のインストールは,次の手順になる.
zip ファイルを展開したら,展開先の下の bin にパスを通す.
コマンドプロンプトを管理者として実行: 別ページ »で説明
call powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDNN_PATH\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\", \"Machine\")"
パスが通っていることの確認のため, コマンドプロンプトを開き,次のコマンドを実行する.エラーメッセージが出ないことを確認.
where cudnn64_8.dll
Windows では,コマンドプロン プトを管理者として実行し, 次のコマンドを実行する.
「v11.8」のところは,実際にインストールされている NVIDIA CUDA ツールキットのバージョンを確認し,読み替えてください.
cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin" curl -O http://www.winimage.com/zLibDll/zlib123dllx64.zip call powershell -command "Expand-Archive -Path zlib123dllx64.zip" copy zlib123dllx64\dll_x64\zlibwapi.dll .
NVIDIA cuDNN のダウンロードのため.
「Join now」をクリック.その後,画面の指示に従う. 利用者本人が,電子メールアドレス,表示名,パスワード,生年月日を登録.利用条件等に合意.
ここでは「NVIDIA cuDNN v8.8.0 for CUDA 11.x」を選んでいる.
このとき,画面の「for CUDA ...」のところを確認し,使用するNVIDIA CUDA のバージョンに合うものを選ぶこと.
次の操作により,cudnn64_8.dll にパスが通っていることを確認する.
Windows のコマンドプロンプトを開き、次のコマンドを実行する.エラーメッセージが出ないことを確認.
where cudnn64_8.dll
コマンドプロンプトを管理者として実行: 別ページ »で説明
call powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDNN_PATH\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\", \"Machine\")"
起動は,Windows のメニューで「Visual Studio 2022」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.
※ 32ビットのNative Tools コマンドプロンプトでは nvcc が動かない.
以下の操作は,x64 Native Tools コマンドプロンプトで行う
エラーメッセージが出ていないことを確認.
where cl
https://devblogs.nvidia.com/easy-introduction-cuda-c-and-c/に記載のソースコードを使用. まず,エディタを開く. ここではメモ帳 (notepad) を使っている.
x64 Native Tools コマンドプロンプト で,次のコマンドを実行する. ファイル名は hello.cu としている.
cd %HOMEPATH% notepad hello.cu
その後,ファイルを編集し,ファイルを保存.
ファイル hello.cu ができる.
「nvcc hello.cu」で a.exe というファイルができる. 「Max error: 0.000000」と表示されればOK.
del a.exe nvcc hello.cu
.\a.exe
うまく動かない場合がある.
放置しない方が良い. NVIDIA CUDA,NVIDIA cuDNN のインストールがうまくできていない. インストール操作を間違っていた可能性があるため,アンインストールの後,再度,インストールを行ってみる. あるいは「最新版だとうまく動かない」という可能性もゼロではないため,古い版を試してみるということもありえる.
このときは,ユーザ環境変数 TEMP に日本語を含まないディレクトリを設定する.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
この設定を終わったあと,確認のため,新しくx64 Native Tools コマンドプロンプトを開き,nvcc hello.cu と .\a.exe をもう一度実行して確認する.
nvcc hello.cu .\a.exe