超时启动CUDA-Kernel



我正在尝试使用特定超时启动cuda内核。我知道cuda内核有设备超时,但由于我在共享服务器上工作,我无法设置此超时,即使可能。

我需要这个自动调优应用程序。我想设置一个超时来取消那些不会比已经找到的最快运行时更快的内核运行。

有没有办法启动一个CUDA内核超时像这样?提前感谢!

感谢tera发布的链接,我能够自己实现超时。正如在该线程中所述,它可以这样做:

const int timeout = 2000000;
int progressed = 0;
while (cudaEventQuery(stop) != cudaSuccess) {
    usleep(20000);
    progressed += 20000;
    if (progressed >= timeout) {
        cudaDeviceReset();
        throw std::runtime_error("timeout");
    }
}
// No timeout occured

在这种情况下,stop是内核执行后记录的事件。

最新更新