2017-04-20 9 views
0

Ubuntu 14.04で動作するNvidia GTX 1080があります。私はtensorflow 1.0.1を使用して畳み込みオートエンコーダーを実装しようとしていますが、プログラムはGPUをまったく使用していないようです。私はこれをwatch nvidia-smihtopを使って確認しました。次のようにプログラムを実行した後、出力は次のようになります。GPUを使用しないテンソルフローコード

1 I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally 
    2 I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally 
    3 I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally 
    4 I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally 
    5 I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally 
    6 Extracting MNIST_data/train-images-idx3-ubyte.gz 
    7 Extracting MNIST_data/train-labels-idx1-ubyte.gz 
    8 Extracting MNIST_data/t10k-images-idx3-ubyte.gz 
    9 Extracting MNIST_data/t10k-labels-idx1-ubyte.gz 
10 getting into solving the reconstruction loss 
11 Dimension of z i.e. our latent vector is [None, 100] 
12 Dimension of the output of the decoder is [100, 28, 28, 1] 
13 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available  on your machine and could speed up CPU computations. 
14 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are availab le on your machine and could speed up CPU computations. 
15 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are availab le on your machine and could speed up CPU computations. 
16 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available  on your machine and could speed up CPU computations. 
17 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available  on your machine and could speed up CPU computations. 
18 W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available  on your machine and could speed up CPU computations. 
19 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
20 name: GeForce GTX 1080 
21 major: 6 minor: 1 memoryClockRate (GHz) 1.7335 
22 pciBusID 0000:0a:00.0 
23 Total memory: 7.92GiB 
24 Free memory: 7.81GiB 
25 W tensorflow/stream_executor/cuda/cuda_driver.cc:590] creating context when one is currently active; existing: 0x34bccc0 
26 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 1 with properties: 
27 name: GeForce GTX 1080 
28 major: 6 minor: 1 memoryClockRate (GHz) 1.7335 
29 pciBusID 0000:09:00.0 
30 Total memory: 7.92GiB 
31 Free memory: 7.81GiB 
32 W tensorflow/stream_executor/cuda/cuda_driver.cc:590] creating context when one is currently active; existing: 0x34c0940 
33 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 2 with properties: 
34 name: GeForce GTX 1080 
35 major: 6 minor: 1 memoryClockRate (GHz) 1.7335 
36 pciBusID 0000:06:00.0 
37 Total memory: 7.92GiB 
38 Free memory: 7.81GiB 
39 W tensorflow/stream_executor/cuda/cuda_driver.cc:590] creating context when one is currently active; existing: 0x34c45c0 
40 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 3 with properties: 
41 name: GeForce GTX 1080 
42 major: 6 minor: 1 memoryClockRate (GHz) 1.7335 
43 pciBusID 0000:05:00.0 
44 Total memory: 7.92GiB 
45 Free memory: 7.81GiB 
46 I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 1 2 3 
47 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y Y Y Y 
48 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 1: Y Y Y Y 
49 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 2: Y Y Y Y 
50 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 3: Y Y Y Y 
51 I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus i d: 0000:0a:00.0) 
52 I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080, pci bus i d: 0000:09:00.0) 
53 I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080, pci bus i d: 0000:06:00.0) 
54 I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080, pci bus i d: 0000:05:00.0) 

私のコードで問題がある可能性があります、私はまた、グラフを作成する前にwith tf.device("/gpu:0"):を使用して特定のデバイスを使用することを指定しようとしています。さらなる情報が必要な場合はお知らせください。ホテルトップ

[email protected]:~$ nvidia-smi 
Wed Apr 19 20:50:07 2017  
+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 367.48     Driver Version: 367.48     | 
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. | 
|===============================+======================+======================| 
| 0 GeForce GTX 1080 Off | 0000:05:00.0  Off |     N/A | 
| 38% 54C P8 12W/180W | 7715MiB/8113MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 1 GeForce GTX 1080 Off | 0000:06:00.0  Off |     N/A | 
| 38% 55C P8  8W/180W | 7715MiB/8113MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 2 GeForce GTX 1080 Off | 0000:09:00.0  Off |     N/A | 
| 36% 50C P8  8W/180W | 7715MiB/8113MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 3 GeForce GTX 1080 Off | 0000:0A:00.0  Off |     N/A | 
| 35% 54C P2 41W/180W | 7833MiB/8113MiB |  8%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0  24228 C python3          7713MiB | 
| 1  24228 C python3          7713MiB | 
| 2  24228 C python3          7713MiB | 
| 3  24228 C python3          7831MiB | 
+-----------------------------------------------------------------------------+ 

NVIDIA-SMIの

編集1出力は、CPUコアの一方の周りに100%を使用していることを示しています。 gpuを使用していないと言う私の根拠は、GPU使用率のためです。これは8%を示しましたが、通常は0%です。

+0

4つのGPUが見つかったようですが、出力に異常は見られません。 'tf.device("/gpu:0 ")'を指定する必要はありません。トレーニング中にすべてのCPUが使用されていますか? nvidia-smiの出力を貼り付けることはできますか?あなたはnividia-smiの出力でPythonのプロセスを見ますか?それともGPUの使用率は0%ですか? –

+0

@DavidParks nvidia-smiの出力を追加しました。そして、pythonのプロセスがあります。 –

答えて

0

あなたはGPU上で動作しているので、すべてのことがその観点から正しく設定されていますが、スピードが本当に悪いようです。それが何をしているかの感覚を得るために何度もnvidia-smiを実行することを忘れないでください。それは100%の瞬間と8%の別のものを表示するかもしれません。

GPUから約80%の稼働率を得るのは正常です。これは、各実行前にコアメモリからGPUへの各バッチのロードに時間がかかるためです(新しい機能が近々リリースされるようになりました。 TF)。

GPUから約80%低いパフォーマンスが得られたら、間違ったことをしています。おそらく2つの可能性のある一般的な原因が考えられます。

1)ステップ間で一連の前処理が行われるため、GPUは高速で実行されますが、1つのCPUスレッドでブロックされます非テンソル流仕事の束。これを独自のスレッドに移動し、PythonからGPUにデータをロードします。Queue

2)CPUとGPUメモリ間で大きなチャンクが前後に移動しています。 CPUとGPUの間の帯域幅は、これを行うとボトルネックになる可能性があります。

トレーニング/推論バッチの開始と終了の間にいくつかのタイマーを追加して、テンソルフロー操作以外に多くの時間を費やしているかどうかを確認してください。

+0

ありがとうございました。それは一貫して約90%です。私はもう一つのことについて助言が必要です。現在、GPUのコアのうちの1つだけを使用しており、残りは0%です。それをどうやって解決できるか。 –

+0

ここに複数のgpuを使用する方法についての議論がありますが、一番下の例の実装へのリンクもあります。https://www.tensorflow.org/tutorials/using_gpu –

+0

@saharudraでは、複数のGPU実装の例を次のリンク:https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py – Nandeesh

関連する問題