私のTF
グラフが実際にGPUで実行されていることを確認する簡単な方法を探しています。
PS。 cuDNN
ライブラリが使用されていることを確認するのもよいでしょう。
Op配置を表示するにはいくつかの方法があります。
RunOptionsとRunMetadataをセッション呼び出しに追加して、Tensorboardでの演算と計算の配置を表示します。ここのコードを参照してください: https://www.tensorflow.org/get_started/graph_viz
セッションConfigProtoでlog_device_placementオプションを指定します。これは、操作が行われたデバイスをコンソールに記録します。 https://www.tensorflow.org/api_docs/python/tf/ConfigProto
Nvidia-smiを使用して、ターミナルでGPUの使用状況を表示します。
PythonにTFをインポートするとき
import tensorflow as tf
CUDAライブラリの使用状況を示すこれらのログを取得します
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
また、グラフを作成し、Config Protoでlog_device_placementを使用してセッションを実行すると、次のログが表示されます(GPUデバイスが見つかったことを示します)。
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1060 6GB
major: 6 minor: 1 memoryClockRate (GHz) 1.759
pciBusID 0000:01:00.0
Total memory: 5.93GiB
Free memory: 4.94GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0)
関連する TensorFlowアップストリームの問題 があります。基本的に、Python APIはそのような情報をまだ公開していません。
ただし、C++ APIにはあります。例えば。 tensorflow::KernelsRegisteredForOp()
があります。私は小さなPythonラッパーを書いて、それから実装しましたsupported_devices_for_op
ここ ( このコミット )。