0

阅读 CUDA Runtime API 和 Driver API 文档,似乎这两个功能:

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

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

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

对于第一个和

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

他们真的会这样做吗?或者是否存在我遗漏或未记录的细微差异?例如与线程与进程相关的东西?

4

1 回答 1

1

他们完全不同。

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

  • cuDevicePrimaryCtxReset()仅销毁/重置主要上下文,不涉及其他上下文。
  • cudaDeviceReset()销毁指定设备的所有上下文,将它们从上下文堆栈中删除。
于 2020-07-14T07:37:03.937 回答