GPU在执行Tensorflow或Theano代码时丢失。

12

在训练两个不同的神经网络,一个使用Tensorflow,另一个使用Theano时,有时候会在随机时间(几小时或几分钟,通常是几小时)后执行冻结,并且我运行“nvidia-smi”时会收到以下消息:

"Unable to determine the device handle for GPU 0000:02:00.0: GPU is lost. Reboot the system to recover this GPU"

我尝试监控GPU性能进行了13小时的执行,一切似乎都很稳定: enter image description here

我的工作环境如下:

  • Ubuntu 14.04.5 LTS
  • GPUs are Nvidia Titan Xp (在同一台机器上的另一个GPU上也有这种情况)
  • CUDA 8.0
  • CuDNN 5.1
  • Tensorflow 1.3
  • Theano 0.8.2

我不确定如何解决这个问题,请问有什么想法可以导致这种情况,并且如何诊断/解决这个问题?


你找到解决方案/答案了吗? - A. Attia
是的,我添加了一个答案,希望这能帮到你。 - Mega
1个回答

10

我之前发布过这个问题,但经过几周的调查后,我们找到了问题(和解决方案)。

现在我不记得所有的细节了,但是我会发布我们的主要结论,以防有人会发现它有用。

底线是 - 我们拥有的硬件不足以支持高负载的GPU-CPU通信。我们在一个装有1个CPU和4个GPU设备的机架服务器上观察到了这些问题,PCI总线上出现了超载。通过向机架服务器添加另一个CPU来解决了这个问题。


谢谢你的回答!你还记得是怎么发现这是由于PCI总线过载引起的吗? - A. Attia
我们试图通过运行的代码来确定这些故障发生的时间。我们发现,它们要么在同时使用3-4个GPU时发生,要么在运行引起大量CPU-GPU流量的代码时发生。然后,我们将我们的服务器规格与常用规格进行了比较,发现通常有两个CPU,而我们只有一个。因此,我们购买了另一个CPU,问题得到了解决。 - Mega
1
我还记得我们经常查看服务器的系统日志,并从PCI总线中看到许多警告/错误。很抱歉缺乏细节,我没有记录我们的调查过程。 - Mega

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接