pyCUDA 同步功能在长时间运行的内核期间失败



我正在使用 PyCuda 运行一个内核,预计至少需要两个小时才能完成,但它在大约一个小时后失败,并出现以下简单错误:

pycuda._driver.Error: cuCtxSynchronize failed: unknown error

我正在使用 Windows,我添加了注册表项 TdrDelay 并将其设置为 120000000,以确保 Windows 不会使我的内核超时。

当我调整内核的参数时,不会发生此错误,因此预计在大约 30 分钟内完成。为什么内核长时间运行后同步调用会失败?

我的显卡会不会过热并抢先终止内核?是否有一个 CUDA 设置,如果内核运行时间过长,它会终止内核?在 NVidia Visual Profiler 中运行内核是否有助于找出问题所在?

通过在"TdrDelay"旁边添加注册表项"TdrLevel"并将其值设置为 0,我能够让我长时间运行的内核顺利完成。

最新更新