TensorFlowのWindows版がでてた
「Windows10上のTensorFlowでGPUを利用しようとしてダメだった→できるようになったみたいです!」なんと、Windows版でGPU利用も可能なものが出てるらしい。「Google、オープンソースの機械学習ライブラリ「TensorFlow」のWindows版を公開」
Windows版は「Python」言語のパッケージ管理システム「PyPI」のパッケージとして配布されており、Windows 7/10およびWindows Server 2016で利用が可能。GPUアクセラレーションとして“CUDA 8.0”と“cuDNN 5.1”がサポートされている。
インストール
「TensorFlow が正式に Windows サポートして GPU が使えたので試してみた」ここに色々インストール手順が書いてあります。自分はNVIDAのサイトで登録とかすでにしているのですが、どんな登録をして、何をパソコンにインストールしたのかとかは忘れました。Pythonはanacondaでインストールしたはずでバージョンは3.5です。前は確かTensorFlowはPython2.7に対応していた気がしますが、3.3以上も対応しているようです。
$ python --version Python 3.5.2 :: Anaconda 4.1.1 (64-bit)
Anacondaの64bit版の4.1.1で、Pythonのバージョンは3.5.2でした。
以下2つを実行して、TensorFlowとTensorFlow-GPUがインストールできるようです。
$ pip install tensorflow
Successfully installed protobuf-3.1.0.post1 tensorflow-0.12.1
$ pip install tensorflow-gpu
Successfully installed tensorflow-gpu-0.12.1
インストールできました。
動くかチェック
とりあえず使えるのかチェックしてみます。 tensor.pyというファイルに、下記を書いて実行してみます。
import tensorflow as tf
結果
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cublas64_80.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_blas.cc:2294] Unable to load cuBLAS DSO. I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cudnn64_5.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:3459] Unable to load cuDNN D SO I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cufft64_80.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_fft.cc:344] Unable to load cuFFT DS O. I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary nvcuda.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library curand64_80.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_rng.cc:338] Unable to load cuRAND D SO.
GPU関連のインストール・設定等は全くできていなかったようです。
下記を書いて実行してみました。
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) a = tf.constant(10) b = tf.constant(32) print(sess.run(a + b))
結果
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cublas64_80.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_blas.cc:2294] Unable to load cuBLAS DSO. I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cudnn64_5.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:3459] Unable to load cuDNN D SO I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library cufft64_80.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_fft.cc:344] Unable to load cuFFT DS O. I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary nvcuda.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:119] Couldn't open CUDA library curand64_80.dll I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_rng.cc:338] Unable to load cuRAND D SO. I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] Found device 0 wit h properties: name: GeForce GTX 970 major: 5 minor: 2 memoryClockRate (GHz) 1.1775 pciBusID 0000:01:00.0 Total memory: 4.00GiB Free memory: 3.31GiB I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0 I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0: Y I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlo w device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0) b'Hello, TensorFlow!' 42
GPU関連でWarning的メッセージが沢山でるものの一応動いています。搭載しているGPUも認識されていて名前とかが表示されてます。
NVIDA関連の設定
CUDA Toolkit 8.0
https://developer.nvidia.com/cuda-downloads 上記のように設定してダウンロードして、インストールしました。結構時間かかりました。
cuDNN v5.1
下記でユーザ登録したらダウンロードできます。 https://developer.nvidia.com/rdp/cudnn-download zip内のcudaフォルダの中身をC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0にコピーします。
動作チェック
パソコンを再起動して、改めてtensor.pyを実行してみました。
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary cublas64_80.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary cudnn64_5.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary cufft64_80.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary nvcuda.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA l ibrary curand64_80.dll locally I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] Found device 0 wit h properties: name: GeForce GTX 970 major: 5 minor: 2 memoryClockRate (GHz) 1.1775 pciBusID 0000:01:00.0 Total memory: 4.00GiB Free memory: 3.31GiB I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0 I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0: Y I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlo w device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0) b'Hello, TensorFlow!' 42
全部successfullyと書いてるのでうまくいっているようです。