2017-06-01 23 views
1

我安裝tensorflow的GPU版本,當我創建一個會話,它讓我看到這篇日誌:張量流會話究竟做了什麼?

我tensorflow /核心/ common_runtime/GPU/gpu_device.cc:885]發現設備0 與性能:名稱:GeForce GTX TITAN黑色主要:3次要:5 memoryClockRate(GHz)0.98 pciBusID 0000:01:00.0總內存:5.94GiB 空閒內存:5.31GiB I tensorflow/core/common_runtime/gpu/gpu_device.cc: 906] DMA:0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:YI tensorflow/core/common_runtime/gpu/gpu_device.cc:975]創建 TensorFlow設備(/ gpu:0) - >(設備:0,名稱:的GeForce GTX TITAN 黑色,PCI總線ID:0000:01:00.0)

當我檢查我的GPU內存使用情況,圍繞它的90%將被佔用。

Tensorflow文檔對此沒有任何說明。它是否控制了GPU?爲什麼它會消耗大部分內存?

+0

我不確切地知道tf.Session()做了什麼,但是關於GPU的內存分配,請參閱https://stackoverflow.com/questions/44278021/memory-estimation-for -convolution-neural-network-tensorflow/44278911#44278911 –

+0

@PietroTortella謝謝你。我對你有個問題,我通過嘗試在單個腳本中執行tensorflow,PyTorch,caffe來達到這個帖子。當我試圖在同一個腳本中將會話作爲全局變量時,它給了我一個錯誤:「當前上下文不是由StreamExecutor創建的」,但是當我在函數內部創建此會話時,我沒有看到它。你知道發生了什麼問題嗎?這就是爲什麼我想知道Session正在做什麼。 – deepdebugging

回答

0

TensorFlow會話在啓動時分配所有GPU內存,因此它們可以繞過cuda分配器。

不要在同一個進程中運行多個使用cuda的庫,或者會發生奇怪的事情(比如這個流執行器錯誤)。

+0

感謝您的回答。那麼這就像是一個tensorflow特定的問題?因爲我一直在同一個腳本中運行其他機器學習庫,所以我沒有發現任何問題。 – deepdebugging

+0

您可能看不到錯誤,但可能會在cuda環境中出現奇怪的情況。 –

+0

完美,這解決了我的疑惑。謝謝。 – deepdebugging