详情请参考网址:链接
为什么GPU驱动程序会发生崩溃
为了防止任何渲染或 GPU 计算锁定系统,Windows 操作系统在渲染需要几秒钟以上时都会杀掉 GPU 驱动程序。当驱动被杀掉时,使用它的应用程序会自动崩溃。无法知道渲染任务或计算可能需要多长时间(这取决于 GPU、驱动程序、操作系统、网格大小、纹理大小等),因此无法限制计算机应处理多长时间,并从应用程序级别避免崩溃。
在 Windows 上有一个注册表项,指定操作系统在杀死 GPU 驱动程序之前应等待多长时间。应用程序无权直接修改此设置,此设置必须手动完成。
解决方案
调整注册表 TDR 值:将TdrDelay和TdrDdiDelay更改为更高值,如 60 秒,设置方案详见下文。值得一提的是,TdrDelay默认设置为2s,TdrddiDelay默认设置为5s。
TDR值的作用
TdrDelay:此值表示操作系统判断GPU无响应之前等待多少秒
TdrDdiDelay:此值表示操作系统让软件任务离开GPU之前等待多少秒。
如何编辑 TDR 值
Win+R,输入regedit,打开注册表,进入如下路径:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
如果TdrDelay值尚不存在,请右键单击右窗格并选择新建DWORD (32bit) 值。命名它为TdrDelay
,将基数改为十进制,将值设置为默认值2以外的数字,推荐60。
TdrDdiDelay值同上进行设置,推荐十进制60。
编辑完成后需要重启。
另外,3C(十六进制)等于60(十进制)。
将TDR值恢复到默认值
删除注册表中的TdrDelay和TdrDdiDelay项。
或更改TDR值为默认值,将TdrDelay设置为2s,将 TdrddiDelay设置为5s。