GPU utilization mostly 0% during training
(GTX 1080,Tensorflow 1.0.0)
在训练期间,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | +-----------------------------------------------------------------------------+ | NVIDIA-SMI 375.26 Driver Version: 375.26 | |-------------------------------+----------------------+----------------------+ | 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:01:00.0 On | N/A | | 33% 35C P2 49W / 190W | 7982MiB / 8110MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1093 G /usr/lib/xorg/Xorg 175MiB | | 0 1915 G compiz 90MiB | | 0 4383 C python 7712MiB | +-----------------------------------------------------------------------------+ |
正如我在本期中所描述的,这种情况发生在我身上。
可以使用该github存储库中的代码或通过遵循来自tensorflow网站的此简单重新培训示例并通过类似于会话中的受限per_process_gpu_memory_fraction(小于1.0)来复制该问题:
1 2 3 | config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.4 session = tf.Session(config=config, ...) |
问题1:如何在训练中使用<1.0的GPU时真正使用(利用)GPU?
问题2:如何在图形卡上真正使用完整的GPU(而不是将其设置为<1.0)?
帮助和提示表示赞赏!
当创建的图形大于GPU的内存时,TensorFlow会退回到CPU,因为它使用RAM和CPU而不是GPU。 因此,只需删除
如果仍然无法正常工作,您可能正在做其他事情。 例如,您在每次迭代中都保存一个检查点。 保存检查点是在CPU中完成的,并且可能比在GPU中进行简单的迭代花费更多的时间。 这可能是您看到GPU使用率激增的原因。