修改注册表以增加GPU超时时间,Windows 7。

11

我正在尝试将GPU的超时时间从默认设置的2秒增加到稍长一些的时间。我找到了以下链接,但似乎在Windows 7中略有不同,因为我在网页上没有看到任何提到的内容。

有人以前做过这个吗?如果是,请填补空白部分。

谢谢

@RoBik,如果我想要6天(有点过分,但只是举个例子),应该怎么做?再次感谢您的帮助,+1。

编辑 这是我目前遇到的错误。

发生错误,操作已终止。 CUDA.NET异常:ErrorLaunchTimeOut。 以上错误的堆栈跟踪: 在Cudafy.Host.CudaGPU.HandleCUDAException(CUDAException ex) 在Cudafy.Host.CudaGPU.DoCopyFromDeviceAsync [T](Array devArray,Int32 devOffset,Array hostArray,Int32 hostOffset,Int32 count,Int32 streamId) 在Cudafy.Host.CudaGPU.DoCopyFromDevice [T](Array devArray,Int32 devOffset,Array hostArray,Int32 hostOffset,Int32 count) 在Cudafy.Host.CudaGPU.DoCopyFromDevice [T](Array devArray,Array hostArray) 在Cudafy.Host.GPGPU.CopyFromDevice [T](T [,] devArray,T [,] hostArray) 在FrazerMann.Profiler.UserInterface.TaskManager.DataRetrieval()中从设备复制[T]到主机的C:.....\TaskManager.cs:line 255 在FrazerMann.Profiler.UserInterface.MainView.btnEvaluation_Click(Object sender,EventArgs e)中,从设备复制[T]到主机的C:....\MainView.cs:line 338 内部异常:


“cuda”和“cudafy.net”标签真的相关吗? - BenC
1
@BenC 我已经移除了 cudafy.net 标签,但是我保留了 cuda 标签。当启动 cuda 内核时,TDR 超时问题非常普遍。 - RoBiK
@RoBiK:好的,我需要确认一下:o) - BenC
1个回答

15

你发帖中的链接是正确的,你只需要创建相应的键并设定所需的值。你可以在这里找到TDR注册表键的描述。你要找的设置是:

TdrDelay
Specifies the number of seconds that the GPU can delay the preempt request from the GPU scheduler. This is effectively the timeout threshold. The default value is 2 seconds.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDelay
ValueType : REG_DWORD
ValueData : Number of seconds to delay. 2 seconds is the default value.

你需要做的是在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers下创建一个类型为REG_DWORD的名为TdrDelay的新键,并将其值设置为所需的时间(以秒为单位)。之后,需要重新启动计算机才能使设置生效。


谢谢回复。我想我明白了,可以看上面的内容,但是还想确认一下,以防我搞砸了什么。 - Hans Rudel
嘿,我刚试着运行一个大约需要6分钟才能完成的内核。但是我一直收到以下错误(请参见原问题的编辑)。你有什么想法为什么会这样吗?TdrDelay设置仍然为518400,所以我很惊讶它不起作用。对于运行时间约为40秒的较小内核,它可以正常工作。但我还没有尝试过更大的内核。 - Hans Rudel
4
@HansRudel 这很奇怪,TdrDelay的默认值是3秒,但你能够执行40秒的内核,这意味着你已成功更改了它。为什么长内核失败我无法说。为什么不尝试通过将TdrLevel值设置为0来完全禁用看门狗? - RoBiK
是的,说得有道理。我现在不在家,但稍后我会尝试一下,看看情况如何。再次感谢。 - Hans Rudel
所需的注册表命令:reg query HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers /v TdrDelayreg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers /v TdrDelay /t REG_DWORD /d <秒数的十进制数字> - masterxilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接