CUDA 同步函数在 long 运行 内核期间失败
CUDA synchronize function fails during long running kernel
我正在使用 PyCuda 运行 一个预计至少需要两个小时才能完成的内核,但它在大约一个小时后失败并出现简单错误:
pycuda._driver.Error: cuCtxSynchronize failed: unknown error
我正在使用 Windows,我添加了注册表项 TdrDelay 并将其设置为 120000000 以确保 Windows 不会使我的内核超时。
我调整内核参数时没有出现这个错误,预计30分钟左右完成。为什么在内核 运行 很长时间后同步调用会失败?
我的显卡会不会过热并抢先终止内核?如果 运行s 的时间太长,是否可以使用 CUDA 设置终止内核? 运行NVidia Visual Profiler 中的内核是否有助于找出问题所在?
通过在 "TdrDelay" 旁边添加注册表项 "TdrLevel" 并将其值设置为 0,我能够让我的长 运行 内核无错误地完成。
我正在使用 PyCuda 运行 一个预计至少需要两个小时才能完成的内核,但它在大约一个小时后失败并出现简单错误:
pycuda._driver.Error: cuCtxSynchronize failed: unknown error
我正在使用 Windows,我添加了注册表项 TdrDelay 并将其设置为 120000000 以确保 Windows 不会使我的内核超时。
我调整内核参数时没有出现这个错误,预计30分钟左右完成。为什么在内核 运行 很长时间后同步调用会失败?
我的显卡会不会过热并抢先终止内核?如果 运行s 的时间太长,是否可以使用 CUDA 设置终止内核? 运行NVidia Visual Profiler 中的内核是否有助于找出问题所在?
通过在 "TdrDelay" 旁边添加注册表项 "TdrLevel" 并将其值设置为 0,我能够让我的长 运行 内核无错误地完成。