如何从GPU的内存错误中正确恢复?

时间:2013-09-17 05:26:58

标签: cuda gpu gpgpu nvidia pycuda

Consumer-grade Nvidia GPUs are expected to have about 1-10 soft memory errors per week.

如果您以某种方式设法在没有ECC的系统上检测到错误 (例如如果结果异常)需要哪些步骤才能从中恢复?

将所有数据重新加载到GPU(PyCuda中的cuda.memcpy_htod)是否足够, 或者你需要重启系统?那么“内核”而不是数据呢?

2 个答案:

答案 0 :(得分:2)

软内存错误(由于某种噪音导致的错误结果)不应该重启。只需回到一些已知的好位置,将数据重新加载到GPU并继续。

答案 1 :(得分:1)

当然,这取决于内存中被破坏的内容。我不小心覆盖了需要重新启动修复的GPU上的内存,所以如果内存也随机损坏,似乎可能会发生这种情况。我认为GPU驱动程序部分驻留在GPU内存中。

对于关键计算,可以通过运行相同的计算两次(包括内存副本等)并比较结果来防止软内存错误。

由于带有ECC的计算卡通常是显卡的两倍以上,购买两块显卡并在两者上运行相同的计算并比较所有结果可能更便宜。这样可以使非关键计算的计算速度加倍。