【问题标题】:How to Properly Recover from Memory Errors in GPU?如何正确从 GPU 中的内存错误中恢复?
【发布时间】:2013-09-21 10:06:15
【问题描述】:

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

如果您设法在没有 ECC 的系统上检测到错误 (例如如果结果异常)哪些步骤是必要且足够的才能从中恢复?

只需将所有数据重新加载到 GPU 就足够了(PyCuda 中的cuda.memcpy_htod), 还是您需要重新启动系统? “内核”而不是数据呢?

【问题讨论】:

    标签: cuda gpu gpgpu nvidia pycuda


    【解决方案1】:

    软内存错误(意味着由于某种噪音导致的错误结果),不需要重新启动。只需倒带回到某个已知的良好位置,将数据重新加载到 GPU 并继续。

    【讨论】:

      【解决方案2】:

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

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

      由于带有 ECC 的计算卡通常比显卡贵一倍以上,因此购买两张显卡并在两者上运行相同的计算并比较所有结果可能会更便宜。这样做的另一个好处是可以将非关键计算的计算速度提高一倍。

      【讨论】:

      • 重新加载驱动程序(Linux 上的modprobe -r ...; modprobe ...)是否也能解决此问题?
      猜你喜欢
      • 2017-07-27
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2011-01-20
      • 2014-04-06
      • 1970-01-01
      相关资源
      最近更新 更多