GPU 在执行 Tensorflow 或 Theano 代码期间丢失

Posted

技术标签:

【中文标题】GPU 在执行 Tensorflow 或 Theano 代码期间丢失【英文标题】:GPU is lost during execution of either Tensorflow or Theano code 【发布时间】:2018-02-04 03:01:11 【问题描述】:

当训练两个不同的神经网络中的任何一个时,一个使用 Tensorflow,另一个使用 Theano,有时在随机时间(可能是几小时或几分钟,主要是几小时)之后,执行冻结,我得到此消息通过运行“nvidia-smi”:

“无法确定 GPU 0000:02:00.0 的设备句柄:GPU 丢失。重新启动系统以恢复此 GPU”

我尝试监控 GPU 性能 13 小时执行,一切似乎都很稳定:

我正在合作:

Ubuntu 14.04.5 LTS GPU 是 Nvidia Titan Xp(此行为在同一台机器上的另一个 GPU 上重复) CUDA 8.0 CuDNN 5.1 张量流 1.3 Theano 0.8.2

我不知道如何解决这个问题,任何人都可以就可能导致此问题的原因以及如何诊断/解决此问题提出建议吗?

【问题讨论】:

您找到解决方案/答案了吗? 是的,添加了一个答案,我希望这会有所帮助。 【参考方案1】:

我不久前发布了这个问题,但经过几周的调查后,我们设法找到了问题(和解决方案)。 我现在不记得所有细节了,但我会发布我们的主要结论,以防有人发现它有用。

底线是 - 我们拥有的硬件不够强大,无法支持高负载 GPU-CPU 通信。我们在具有 1 个 CPU 和 4 个 GPU 设备的机架式服务器上观察到这些问题,只是 PCI 总线过载。通过在机架服务器上添加另一个 CPU 解决了这个问题。

【讨论】:

感谢您的回答!你还记得你是怎么知道这是由于 PCI 总线过载造成的吗? 我们试图根据我们正在运行的代码来描述这些故障何时发生。我们发现它们发生在我们并行使用 3-4 个 GPU 或运行导致大量 CPU-GPU 流量的代码时。然后我们将我们的服务器规格与常用规格进行比较,发现通常有两个 CPU,而我们只有一个。于是我们又买了一个,问题就解决了。 我还记得我们查看了很多服务器的系统日志,并看到了许多来自 PCI 总线的警告/错误。抱歉没有详细说明,我没有记录我们的调查过程。

以上是关于GPU 在执行 Tensorflow 或 Theano 代码期间丢失的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow函数

TensorFlow 常用函数汇总

TensorFlow基础——常用函数

TensorFlow 常用函数与方法

TensorFlow——tensorflow指定CPU与GPU运算

由于总线错误,无法使用Anaconda运行tensorflow GPU