Windows10環境でCUDAインストール

Tensorflow2.2に合わせて、CUDA v10.1、cuDNN v7.6.5をインストールする。

※最新はCUDA v11だが、Tensorflow2.2ではサポート外

※cuDNNはNVIDAアカウント(無料)が必要

CUDAのインストール

CUDAのインストーラ(cuda_10.1.243_426.00_win10.exe)

https://developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

  1. cuda_10.1.243_426.00_win10.exeをダウンロードして起動
  2. カスタムを選択
  3. とりあえずすべてチェック(VisualStudioがない場合は、"Visual Studio Integration"は外したほうが良いかも)
  4. インストールパスはデフォルトのままでインストール

環境変数の確認

複数バージョンをインストールする場合、PATHは有効にしたいバージョンを前にしておくか、それ以外のバージョンを外しておく

%PATH%に以下が指定されてること

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvpp

%CUDA_PATH%に以下が指定されてること

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

%CUDA_PATH_V10_1%に以下が指定されてること

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

nvccにパスが通っていること

> where nvcc
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc.exe

> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243

cuDNNのインストール

cuDNNについては、CUDAのバージョンと対になっているので、必ず指定のものをダウンロードする

https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-windows10-x64-v7.6.5.32.zip

ダウンロードしたcuDNNのZIPを解凍すると、cudaというフォルダが入っている。この中身を先ほどインストールした%CUDA_PATH%のフォルダに上書きする(同じフォルダ構成で、ファイルの重複はない)

bin
include
lib
NVIDIA_SLA_cuDNN_Support.txt

環境変数を追加する

%CUDNN_PATH%を作成して以下のパスを指定する

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

cuda001

ファイルとパスの確認

> where cudart64_101.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudart64_101.dll

> where cudnn64_7.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudnn64_7.dll

参考)TensorFlow 2.2.0のビルド方法(tf2.2.0-rc0, CUDA 10.2, cuDNN 7.6.5, Windows 10)

下記は、TensorflowとCUDAがデフォルトの組み合わせではなく、自前でビルドしている。

https://dev.infohub.cc/build-tensorflow-220rc0-gpu/

-->