博客
故障排除
检查 NVIDIA GPU 上的内存错误
2021.07.14
11分钟阅读
专业的英伟达 GPU( Tesla 和 Quadro 产品)配备了纠错代码(ECC)内存,这使得系统能够在内存发生错误时进行检测。较小的 "单比特 "错误会被透明地纠正。较大的 "双位 "内存错误将导致应用程序崩溃,但至少会被检测到(没有ECC内存的GPU将继续在损坏的数据上运行)。
在某些情况下,GPU 事件会被报告给 Linux 内核,在这种情况下,你会在系统日志中看到此类错误。然而,GPU 本身也会存储事件的类型和日期。
值得注意的是,并非所有的 ECC 错误都是由于硬件故障造成的。众所周知,杂散的宇宙射线会导致比特翻转。由于这个原因,当一个错误发生时(甚至当一些错误发生时),内存不被认为是 "坏的"。如果你有一个设备报告了几十或几百个双位错误,请联系联泰集群的技术支持进行审查。你也可以查看一下 NVIDIA 的文档
要审查系统中 GPU 的当前健康状况,请使用 nvidia-smi 工具。
上面的输出显示了一张没有问题的卡和一张有少量单比特错误的卡(该卡仍在运作,并在运行)。
如果上述报告显示内存页已经报废,那么你可能希望看到更多的细节(包括这些页是什么时候报废的)。如果 nvidia-smi 报告说 ,那么自上次系统重启以来,内存错误已经发生。在这两种情况下,可能有更早的页面退出发生了。
要查看已经退出的 GPU 内存页的完整列表(包括每个 GPU 的唯一 ID),请运行:
必须选择一个不同的输出类型,以读取页面退订的时间戳。该输出是 XML 格式的,可能需要更多的努力来解析。简而言之,请尝试运行一个如下所示的报告: