Windows10でのTensorFlow-GPUセットアップ

Google Colaboratoryもいいけど、長時間実行が必要な場合にセッション再接続やチェックポイントの外だしなど面倒ということで、GPU PCが欲しくなって買ってしまいました。。。

セットアップのメモを残しておきます。

1. 前提環境

下記以外のスペック等々はおそらくセットアップに影響しないので省略します。ちなみにノートPCです。

  • OS:Windows10 Pro ※Preview Build 18932
  • GPU:RTX2060 (laptop)
  • Python:3.6
  • TensorFlow:1.14.0

2. GPUの確認

nvidia-smiで確認できます。

なお、GPUが刺さってOS認識されている状態でtensorflow-gpuをimportしようとするとこんな感じになります。
動かすにあたって、VS2017(主にC++コンパイラ)と、CUDA、cuDNNが必要になります。

>>> import tensorflow as tf
Traceback (most recent call last):
File “C:\Program Files\Python37\lib\site-packages\tensorflow\python\platform\self_check.py”, line 87, in preload_check
ctypes.WinDLL(build_info.cudnn_dll_name)
File “C:\Program Files\Python37\lib\ctypes\__init__.py”, line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 指定されたモジュールが見つかりません。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “C:\Program Files\Python37\lib\site-packages\tensorflow\__init__.py”, line 28, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File “C:\Program Files\Python37\lib\site-packages\tensorflow\python\__init__.py”, line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File “C:\Program Files\Python37\lib\site-packages\tensorflow\python\pywrap_tensorflow.py”, line 30, in <module>
self_check.preload_check()
File “C:\Program Files\Python37\lib\site-packages\tensorflow\python\platform\self_check.py”, line 97, in preload_check
% (build_info.cudnn_dll_name, build_info.cudnn_version_number))
ImportError: Could not find ‘cudnn64_7.dll’. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Note that installing cuDNN is a separate step from installing CUDA, and this DLL is often found in a different directory from the CUDA DLLs. You may install the necessary DLL by downloading cuDNN 7 from this URL: https://developer.nvidia.com/cudnn

3. Visual Studio 2017のインストール

2019だと、CUDA10.0が対応していないので、2017をインストールする必要があります。Visual Studio Installerから「C++によるデスクトップ開発」の項目のみインストールすれば良いです。

インストーラの直リンクはココです。※直なので切れていたら自分で探してください。

4. CUDA10のインストール

TensorFlow1.14.0(v2.0 AlphaおよびBetaも?)では、CUDA10.0でビルドされているようなので、バージョンは10.0を選択します。こちらはVS2017が先に入っていれば何ら問題なくインストールできるはずです。

インストーラの直リンクはココです。 ※直なので切れていたら自分で探してください。

5. cuDNN 7.4

cuDNNは少なくとも7.4系であれば問題なくいけるはずです。今回は7.4.2を入れました。

cuDNNはインストーラでなく、ファイルを直接配置します。ダウンロードしたzipを展開し、CUDA Toolkitのインストール場所(デフォルトであれば、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0)配下のbin、include、libフォルダにそれぞれファイル配置してやればOKです。

インストーラの直リンクはココです。 ※直なので切れていたら自分で探してください。

6. 動作確認

ここまですればTensorFlow GPUが動くはずです。

device_lib.list_local_devices()を実行し、 device typeにGPUが見えれば確認OKです。

>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()
2019-07-22 18:09:54.411614: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:
name: GeForce RTX 2060 major: 7 minor: 5 memoryClockRate(GHz): 1.2
pciBusID: 0000:01:00.0
2019-07-22 18:09:54.412906: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-07-22 18:09:54.417972: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0
2019-07-22 18:09:54.418119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-07-22 18:09:54.419491: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187] 0
2019-07-22 18:09:54.420114: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0: N
2019-07-22 18:09:54.427048: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/device:GPU:0 with 4730 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2060, pci bus id: 0000:01:00.0, compute capability: 7.5)
[name: “/device:CPU:0”
device_type: “CPU”
memory_limit: 268435456
locality {
}
incarnation: 15726035352977000265
, name: “/device:GPU:0”
device_type: “GPU”
memory_limit: 4960485376
locality {
bus_id: 1
links {
}
}
incarnation: 18204797299922840497
physical_device_desc: “device: 0, name: GeForce RTX 2060, pci bus id: 0000:01:00.0, compute capability: 7.5”
]

シェアする

  • このエントリーをはてなブックマークに追加

フォローする