我们使用大量 GPGPU 计算(主要使用 CUDA,但也有一些使用 OpenCL)。通常,当用户运行代码时,代码只会在我们的一台主机上因内存错误而出错。我怀疑其中一张卡有问题。有时它会导致整个系统瘫痪,有时程序会崩溃。
全面测试 GPU 可能出现的故障的最简单、最快和最彻底的方法是什么?
我知道有一些程序是 nvidia 的 CUDA SDK 的一部分:
deviceQuery
nvidia-smi
但我需要更彻底的东西。建议?经验?
我们使用大量 GPGPU 计算(主要使用 CUDA,但也有一些使用 OpenCL)。通常,当用户运行代码时,代码只会在我们的一台主机上因内存错误而出错。我怀疑其中一张卡有问题。有时它会导致整个系统瘫痪,有时程序会崩溃。
全面测试 GPU 可能出现的故障的最简单、最快和最彻底的方法是什么?
我知道有一些程序是 nvidia 的 CUDA SDK 的一部分:
deviceQuery
nvidia-smi
但我需要更彻底的东西。建议?经验?
事实上的标准似乎是CUDA GPU Memtest。正如 @c2h5oh 所提到的,它看起来像是基于 memtest86 测试模式,所以我确信它做得很好。它在我正在测试的高端 GPU 上运行相对较快(在 Quadro 6000 上运行 30 分钟,在 Tesla C2075 上运行 20 分钟)。它在操作系统内部运行(与 memtest 不同),因此监控有点不同。您可能希望将 stdout 和 stderr 输出到一个文件以供稍后查看。因此,考虑像这样运行它,以防万一您丢失了终端输出,您可以查看测试发现的内容:
您还需要确保没有人在使用系统和/或卡片。您可以使用以下方法将 GPU 设置为独占模式:
如果您对给出的测试信息感兴趣,以下是 Quadro 和 Tesla 的示例运行的一些输出:
Google:Memtest + GPU:前 3 个结果中的任何一个似乎都是有效答案。没有亲身经历。
http://sourceforge.net/projects/cudagpumemtest/
http://www.softpedia.com/get/Tweak/Memory-Tweak/CUDA-MemTest.shtml
https://simtk.org/home/memtest/