Делают ли cuDevicePrimaryCtxReset () и cudaDeviceReset () одно и то же?

Читая документы CUDA Runtime API и Driver API, кажется, что две функции:

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

сделать то же самое (до того, чтобы cudaSetDevice(dev) перед вызовом API среды выполнения):

Уничтожьте все выделения и сбросьте все состояние в первичном контексте.

для первого и

Удалите все выделения и сбросьте все состояние на текущем устройстве в текущем процессе.

Действительно ли они делают то же самое? Или, возможно, есть тонкие различия, которые мне не хватает или которые не задокументированы? например, что-то связанное с потоками и процессами?

1 ответ

Изучив программу, с которой связана @RobertCrovella, кажется, cudaDeviceReset() похоже, уничтожает все контексты для указанного устройства, удаляя их из стека контекстов.

Другие вопросы по тегам