我有一个使用 Cuda / C++ 的工作应用程序,但有时,由于内存泄漏,会引发异常。我需要能够实时重置 GPU,我的应用程序是服务器,因此它必须保持可用。
我尝试过类似的方法,但似乎不起作用:
try
{
// do process using GPU
}
catch (std::exception &e)
{
// catching exception from cuda only
cudaSetDevice(0);
CUDA_RETURN_(cudaDeviceReset());
}
Run Code Online (Sandbox Code Playgroud)
我的想法是每次 GPU 出现异常时重置设备,但我无法使其正常工作。:( 顺便说一句,由于某些原因,我无法解决 Cuda 代码的所有问题,我需要一个临时解决方案。谢谢!