0
我想用特定的超時啓動CUDA內核。我知道CUDA內核有一個設備超時,但是由於我在共享服務器上工作,即使有可能,我也無法設置此超時。用超時啓動CUDA內核
我需要這個用於自動調整應用程序。我想設置一個超時來取消內核運行,它不會比已經找到的最快的運行時更快。
有沒有辦法像這樣的超時啓動CUDA內核? 在此先感謝!
我想用特定的超時啓動CUDA內核。我知道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是內核執行後記錄的事件。
https://devtalk.nvidia.com/default/topic/902660/per-kernel-timeout-/ – tera