cuDevicePrimaryCtxReset()和cudaDeviceReset()做同样的事情吗



阅读CUDA Runtime API和Driver API文档,似乎有两个函数:

CUresult cuDevicePrimaryCtxReset ( CUdevice dev );
__host__ ​cudaError_t cudaDeviceReset ( void );

做同样的事情(直到在运行时API调用之前必须cudaSetDevice(dev)(:

销毁所有分配并重置主上下文上的所有状态。

用于第一个和

销毁当前进程中当前设备上的所有分配并重置所有状态。

他们确实也这么做吗?或者,是否存在我遗漏的或没有记录的细微差异?例如与线程和进程相关的东西?

它们完全不同

检查@RobertCrovella链接的程序,似乎是:

  • cuDevicePrimaryCtxReset()仅破坏/重置主上下文,不涉及其他上下文
  • cudaDeviceReset()破坏指定设备的所有上下文,将它们从上下文堆栈中删除

相关内容

  • 没有找到相关文章

最新更新