1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows10でGPU(RTX 2060 SUPER)をtensorflow2.0に認識させる手順

Last updated at Posted at 2020-07-16

0. はじめに

Windows10上で次の出力を得る手順をメモします。

2021-08-01 23:28:55.688957: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
2021-08-01 23:28:57.038229: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-08-01 23:28:57.042125: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library nvcuda.dll
2021-08-01 23:28:57.070942: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 2060 SUPER computeCapability: 7.5
coreClock: 1.665GHz coreCount: 34 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 417.29GiB/s
2021-08-01 23:28:57.071056: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
2021-08-01 23:28:57.076423: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublas64_11.dll
2021-08-01 23:28:57.076514: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublasLt64_11.dll
2021-08-01 23:28:57.095707: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cufft64_10.dll
2021-08-01 23:28:57.096702: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library curand64_10.dll
2021-08-01 23:28:57.103773: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusolver64_10.dll
2021-08-01 23:28:57.137910: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusparse64_11.dll
2021-08-01 23:28:57.138539: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudnn64_8.dll
2021-08-01 23:28:57.138651: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0
2021-08-01 23:28:57.611757: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-08-01 23:28:57.611871: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267]      0
2021-08-01 23:28:57.611945: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0:   N
2021-08-01 23:28:57.614067: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 6640 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 2060 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5)
2021-08-01 23:28:57.615031: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14078343090718274700
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 6963513280
locality {
  bus_id: 1
  links {
  }
}
incarnation: 16342930098274601856
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 2060 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5"
]

試行錯誤の末に達成したため、各操作について必要十分が明確でない点をはじめにご了承ください。
不要な操作などありましたらコメント等でご連絡頂けると幸いです。
また、個人的なメモとしての側面からダウンロードURLを直接書き込んでいますが、実行できる保証はございませんので利用しないことを推奨します。

1. 環境

  • Windows10 (20H2)
    • GPU RTX 2060 SUPER
    • CPU i9-9900
  • Python 3.8.11
  • NVIDIA ドライバー 471.41
  • CUDA 11.0
  • cuDNN 8.0.5
  • TensorFlow 2.4.0

2. 手順

NVIDIA ドライバーのインストール

Geforce Experienceがプリインストールされている場合はそちらからアップグレードの確認ができます。そうでなければ次のURLからドライバーのダウンロードが可能です。
https://jp.download.nvidia.com/Windows/471.41/471.41-desktop-win10-64bit-international-dch-whql.exe

適宜こちらのサイトからバージョンを確認してください。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp

CUDAのインストール

CUDAのインストーラにはVisual StudioのVC++が必要になります。以下のURLからダウンロード可能です。
https://visualstudio.microsoft.com/ja/thank-you-downloading-visual-studio/?sku=Community&rel=16#
VC2019ではCUDAをインストールできない場合は以下のVC2017を利用してください
https://aka.ms/vs/15/release/vs_Community.exe

インストーラでC++によるデスクトップ開発のワークロードを選択しインストールを実行します。(必要及び不要なオプションは未確認)

次にCUDAのインストールを実行します。次のURLからインストーラをダウンロードし実行します。
https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_451.48_win10.exe
ダウンロードページ:https://developer.nvidia.com/cuda-11.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

最後にインストールしたCUDAにパスを通します。自動で追加されているパスがあり、この作業が不要である可能性があります。したがって、実行せずにエラーを確認した場合はこの作業によって改善を見込めます。
以下のパスを追加
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64

cuDNNのインストール

cuDNNのダウンロードにはNVIDIAアカウントを要求されます。作成してから実行してください。
以下のURLからcuDNNをダウンロードします。
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.5/11.0_20201106/cudnn-11.0-windows-x64-v8.0.5.39.zip

ダウンロードしたファイルは解凍し、CUDAと対応するディレクトリにファイルをコピーします。
cuda\bin\*.dllCUDA\v10.0\bin
cuda\include\cudnn*CUDA\v10.0\include
cuda\lib\x64\cudnn*CUDA\v10.0\lib\x64へコピーします。

Pythonのインストール

次のURLからインストーラをダウンロードして実行する。
https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe

上のURLは以下のサイトに記載されたものです。
https://www.python.org/downloads/windows/

Tensorflowのインストール

試行錯誤のためにvirtualenvを利用して仮想環境を作成し作成と消去を繰り返しました。不要と考える場合は仮想環境の作成をスキップしてかまいません。

virtualenvのインストール

pip install --upgrade virtualenv

仮想環境の作成と有効化

virtualenv tensorflow_env
 .\tensorflow_env\Scripts\activate

Tensorflowのインストール

pip install tensorflow-gpu==2.4.0

動作確認

以下のコマンドでTensorFlowのインポートを確認します。
環境変数を登録した後にターミナルを開きなおしていない場合は環境変数が適用されないので開きなおしてください。

 python -c "import tensorflow as tf; print( tf.__version__ )"

2.4.0と出力されると成功です。

次に、以下のコマンドでGPUが認識されるか確認します。

python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"

以下の出力が得られたら成功です。

2021-08-01 23:28:55.688957: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
2021-08-01 23:28:57.038229: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-08-01 23:28:57.042125: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library nvcuda.dll
2021-08-01 23:28:57.070942: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 2060 SUPER computeCapability: 7.5
coreClock: 1.665GHz coreCount: 34 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 417.29GiB/s
2021-08-01 23:28:57.071056: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
2021-08-01 23:28:57.076423: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublas64_11.dll
2021-08-01 23:28:57.076514: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublasLt64_11.dll
2021-08-01 23:28:57.095707: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cufft64_10.dll
2021-08-01 23:28:57.096702: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library curand64_10.dll
2021-08-01 23:28:57.103773: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusolver64_10.dll
2021-08-01 23:28:57.137910: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusparse64_11.dll
2021-08-01 23:28:57.138539: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudnn64_8.dll
2021-08-01 23:28:57.138651: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0
2021-08-01 23:28:57.611757: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-08-01 23:28:57.611871: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267]      0
2021-08-01 23:28:57.611945: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0:   N
2021-08-01 23:28:57.614067: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 6640 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 2060 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5)
2021-08-01 23:28:57.615031: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14078343090718274700
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 6963513280
locality {
  bus_id: 1
  links {
  }
}
incarnation: 16342930098274601856
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 2060 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5"
]

3. 参考:バージョン情報

tensorflow, python, cuDNN, CUDA: https://www.tensorflow.org/install/source?hl=ja#tested_build_configurations
cuda, nvidia-driver:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?