问题
I am working with some GPU programs (using CUDA 4.1 and C), and sometimes (rarely) I have to kill the program midway using Ctrl+C to handle some exception. Earlier I tried using CudaDeviceReset() function, but this reply by talonmies displaced my trust in CudaDeviceReset() and hence I started handling such exceptions the Old-Fashioned way, that is 'computer restart'. As the project size grows, this method is becoming a headache. I would appreciate if anyone has come up with a better solution.
回答1:
I think this question is more fundamental -- it is really an app design issue and not a CUDA issue. If you design your app correctly to check for interrupts regularly, and exit your main loop and clean up resources upon interupt, then you shouldn't have this problem (and you can even call cudaDeviceReset()
properly on exit.
The answers to this question may be helpful. And this one. And this one.
来源:https://stackoverflow.com/questions/10294595/handling-ctrlc-exception-with-gpu