处理Tensorflow中的双位异常/GPU错误



我们正在谷歌云平台中使用K80 GPU的一些机器上使用Keras和Tensorflow进行深度学习应用程序。

我们在双位ECC(DBE(错误方面遇到了一些问题。根据官方文件https://docs.nvidia.com/deploy/dynamic-page-retirement/index.html:

应用程序将收到一个DBE事件通知,表示退出正常,并且在DBE被规划。

当出现这些错误时,我们的应用程序将使用100%的CPU。目前我们还不知道它在做什么,但我们将努力增加一些监控它的方法

我的问题是我的应用程序如何接收这些DBE事件通知?这是一个SIGTERM,是我在调用Keras时应该捕捉的某种类型的错误,还是我应该做的其他事情?

提前感谢

当GPU出现无法纠正的ECC错误时,不会直接向任何应用程序报告。内核驱动程序记录Xid 48,然后是Xid 63,GPU被有效禁用,直到它被nvidia smi实用程序或重新启动机器重置为止。请在此处查看详细信息:https://docs.nvidia.com/deploy/xid-errors/index.html

从应用程序的角度来看,结果是在某个时间点内核开始无法启动。根据应用程序的不同,您可能会收到错误报告。我相信tensorflow在大多数时候都会检查错误,应用程序最终会因断言而失败。故障消息很可能没有任何迹象表明崩溃与ECC错误有关。

在检测到不可纠正的错误之后的第一次失败可能看起来特别令人困惑。此时,错误会导致一些正在进行的操作中止,最终可能会报告相当广泛的可能错误。同样,它们中没有一个会说明ECC错误,您需要自己检查。

最新更新