为什么Tensorflow在GPU升级后没有提高速度?

时间:2017-12-28 16:01:06

标签: tensorflow gpu tensorflow-gpu

我安装了Tensorflow 1.4 GPU版本。 Cuda8也已安装。

我在MNIST数据上训练了我非常简单的GAN网络。 我有AMD FX 8320 CPU,16Gb系统内存和SSD硬盘。

GeForce 720 GPU上每个纪元花了大约17秒,内存为1GB。 该培训使用了大约25%的GPU和99%的内存。 CPU装得很高,接近100%。

然后我插入了其他视频板与GeForce1050 Ti GPU和4Gb内存而不是之前的。 GPU仅加载5-6%,内存使用率为93%。 但是我的每个纪元仍然有大约17秒和CPU的高负荷。

所以也许Tensorflow有一些设置可以使用更多的GPU? 或者是高CPU负载和低GPU负载的原因是什么?

2 个答案:

答案 0 :(得分:0)

如果您要训练一个简单的GAN网络,则很可能您的旧GPU最初并不是瓶颈。因此,对其进行改进没有任何效果。如果每个sess.run()调用完成的工作量很小,那么开销(执行Python代码,将输入数据复制到GPU,启动和运行TensorFlow执行程序,将所有操作调度到GPU等)可能会占主导地位计算。

知道发生什么情况的唯一确定的方法是分析。您可以在这里https://www.tensorflow.org/performance/performance_guide作为起点。它提到的时间轴工具可能非常有用。有关更多详细信息,请参见此处:Can I measure the execution time of individual operations with TensorFlow?

答案 1 :(得分:0)

同意,对于MNIST数据集,系统中可能存在其他瓶颈,而不是GPU。我并排运行了2个TensorFlows,

  1. 具有NVIDIA Quadro K1100M GPU和12 GB RAM(这是第四代Haswell Intel机器)的Intel i7 4600M,以及
  2. 英特尔i5 8300U,没有Cuda GPU和16GB RAM。

基本上是第8代Kaby Lake Intel CPU与第4代Intel,

  1. 具有NVIDIA GPU的第四代Intel芯片: 311.5秒,315.9秒和313.0秒,以完成MNIST运行中的所有10次epocs
  2. 没有GPU的第8代Intel芯片: 252.7秒,243.5秒,254.9秒

因此,在没有GPU(只有新一代Intel芯片)的情况下,我的运行速度提高了20%。