停止失控的OpenCL内核

时间:2012-10-01 17:42:06

标签: opencl

我偶然写了一个永远不会在内核中断的while循环,我把它发送到了GPU。 30秒后我的屏幕开始闪烁,我意识到我做了什么,并强行终止了应用程序。问题是我不得不关闭计算机以确保内核不见了。因此我的问题是:

  1. 如果我强行终止程序(启动内核的程序)而没有释放GPU资源(释放缓冲区,队列,内核,CL.destroying),内核是否仍会运行?
  2. 如果他们还在跑,我可以做些什么来阻止他们吗?比方说,释放资源,我没有办法了。

1 个答案:

答案 0 :(得分:0)

如果您使用的是NVIDIA卡,那么通过终止该应用程序,您最终将释放卡上的资源以允许其再次运行。这是因为NVIDIA在设备上有一个看门狗监视器(你可以turn off)。

如果您使用的是AMD卡,那么AFAIK运气不佳,每次崩溃后都必须重启机器。