本文提供一种解决单个英伟达独立显卡(终端用户常见的情形)上计算密集导致程序崩溃和电脑界面卡死的问题参考方法,采取降低效率和花费更多时间的思路来解决崩溃和卡顿的问题,即让CPU占有率不是一直100%,也不会因为被TDR机制打断。
如上图,在GPU-Z软件中看到“GPU Load”没有沾满,并且运行了较长时间。
一、现象
现象1:计算超时程序报错
(1)如果计算量过大,即使是CUDA自带的例子vectorAdd(搜索vectorAdd.cu),如果数字从50000改成50000000或更多,或者__global__ vectorAdd()函数中做更多的操作,都有可能导出程序报错(cudaErrorLaunchFailure = 4)。
(2) 初步了解原因是GPU的TDR机制(超时检测和恢复 ,Timeout Detection and Recovery),参考微软官网:超时检测和恢复 (TDR) - Windows drivers | Microsoft Learn。在wi