2017-08-15 94 views
0
tensorflow: 1.2.0 
gpu: TITAN X (Pascal) 
driver: 370.28 

我跑distrubuted tensorflow訓練圖像分類模型,但是沒有看到GPU使用(實際上,GPU UTIL MNIST或其他培訓工作也0)。GPU UTIL爲0時運行tensorflow培訓工作,上下文切換是非常高的

有當straced訓練過程中的許多民意調查系統調用(FD調查是/ dev/nvidia0):

poll([{fd=8, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=15, events=POLLIN}, {fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}, {fd=20, events=POLLIN}, {fd=21, events=POLLIN}], 10, 100 <unfinished ...> 
futex(0x2d1eca4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 3340677, {1502763800, 428734182}, ffffffff) = -1 ETIMEDOUT (Connection timed out) 

vmstat顯示很高的上下文切換,數以百萬計CS每秒。

有人見過這個嗎?

回答

0

我以前有過同樣的問題,但是這是因爲我的GPU沒有設置運行 - 我在我的CPU上運行tensorflow,但我認爲它運行在GPU上。如果你做的一切正確,它不會是這樣的。 1)你可以通過使用nvidia-smi來檢查:儘管gpu util是0%,gpu memory util也是0%嗎?如果流程中沒有任何流程?

- 如果是這樣,你的GPU完全不使用時,tensorflow必須在CPU上運行(您可以使用上,檢查CPU使用率,如果是100%以上,那麼它是一個額外的證明,該方案實際上是並列在CPU上)

在這種情況下,您應該檢查您是否安裝了tensorflow的gpu版本。您可以在www.tensorflow.org上分別找到針對cpu/gpu的2個不同版本的安裝介紹。 GPU版本tensorflow可能永遠不會在GPU上運行。

另外上面的一些機器環境要求你指定你想明確使用的gpu設備。使用如下命令來檢查:

CUDA_VISIBLE_DEVICES = 0蟒蛇rnn_mnist.py

(注=必須以正確的格式,如CUDA_VISIBLE_DEVICES = [0]是無效的,但沒有警告將被提升,該程序將運行在CPU上)

2)如果不是這種情況,python確實運行在GPU上,它只是util爲0%。還有另一種可能性,即數據獲取花費了太多時間,這在CPU上,並且GPU始終在等待數據,所以util是平均0%。

- 最可能的原因是您設置的batch_size太小,請嘗試128或1024.

相關問題