CUDA 会永久损坏 GPU 吗?

Can CUDA permanently damage the GPU?

我还没有进入 GPGPU 编程,所以我不知道 CUDA (OPENCL) 的确切细节,但假设 GPU 处于最佳(冷却良好,......)环境中 - 可以纯 CUDA (OPENCL) 代码永久损坏 GPU? GPGPU 编程系统是否足够强大以从代码中的所有错误中恢复?

我已经看到 this question,但是那个帖子是因为 eponte 有一个特定的问题需要解决而发布的。我问的比较笼统。

非常感谢您的意见。

过去几年在许多用户共享的开发和生产环境中使用 Nvidia Tesla 卡后,由于 "bad programming",这次我没有看到任何 "physically damaged" 卡。因此,根据经验回答第一个问题:我猜想(也是 GTX)是否能够最大 运行 危机。在不着火的情况下,它也应该在高负载的 OpenCL/CUDA 内核中存活下来。是的,正如您从 CPU 了解到的那样,供应商通常会处理热量水平并减少时钟等。然而,系统制造商需要获得认证以确保他们能够处理产生的热量,尤其是在多 GPU 系统中。

当然,过去有一些代码破坏了所有类型的硬件,这当然也可能发生在 GPU 上——但我从来没有读过具体的、代码驱动的案例,尽管它会成为一个有趣的研究问题。

一般来说,GPU 就像任何硅片一样,只要简单地使用它们就可能会损坏。这种情况时有发生,例如,由于晶体管老化或冷却不良导致的过热。我们还更换了使用几年后突然出现故障的 GPU,就像我们更换 CPUs.

一样

由于最初的问题相当广泛,所以再补充一点:今天的 CPUs/GPUs/APUs/... 包含如此多的晶体管,生产过程非常复杂,通常情况下并非芯片的所有组件都是实际可用(参见:PS3/Cell 具有 7/8 个活动通道的处理器;企业与游戏产品等)。我们去年确实遇到过这样的情况,驱动程序更新将一些以前 "working" 的 GPU 渲染成现在产生许多双 ECC 错误的 GPU。该问题已通过其他驱动程序更新再次修复,并且仅影响特定世代早期生产周期的卡。我们推测的一个想法是破坏驱动程序没有正确屏蔽 "unusable" 部分 RAM,这种行为对最终客户来说是透明的。

Is the GPGPU programming system robust enough to recover from all errors in the code?

我当然可以用否回答这个问题。在开发过程中,我们经常遇到这样的情况,即内核中频繁出现 "brutal" 段错误会使驱动程序崩溃。主机系统的完全重启通常是我们在这种情况下恢复以使该特定 GPU 再次可用的唯一方法。