NVML API 参考指南 (PDF) - vR570 (旧版本) - 最后更新于 2025 年 1 月 29 日 - 发送反馈

4.11. 初始化和清理

本章介绍处理 NVML 初始化和清理的方法。用户有责任在调用任何其他方法之前调用 nvmlInit_v2(),并在不再使用 NVML 时调用 nvmlShutdown()

定义

#define NVML_INIT_FLAG_NO_ATTACH 2
不要附加 GPU。
#define NVML_INIT_FLAG_NO_GPUS 1
当未找到 GPU 时,nvmlInit() 不要失败。

函数

nvmlReturn_t nvmlInitWithFlags ( unsigned int  flags )
nvmlReturn_t nvmlInit_v2 ( void )
nvmlReturn_t nvmlShutdown ( void )

定义

#define NVML_INIT_FLAG_NO_ATTACH 2

#define NVML_INIT_FLAG_NO_GPUS 1

函数

nvmlReturn_t nvmlInitWithFlags ( unsigned int  flags )
参数
flags
行为修饰符标志
返回值

描述

nvmlInitWithFlags 是 nvmlInit() 的变体,它允许传递一组布尔值来修改 nvmlInit() 的行为。除了 “flags” 参数外,它与 nvmlInit_v2 完全相似。

适用于所有产品。

nvmlReturn_t nvmlInit_v2 ( void )
返回值

描述

初始化 NVML,但暂不初始化任何 GPU。

注意
  • nvmlInit_v3 引入了一个 “flags” 参数,允许传递布尔值来修改 nvmlInit() 的行为。

  • 在 NVML 5.319 中,新的 nvmlInit_v2 已取代 nvmlInit"_v1"(NVML 4.304 及更旧版本中的默认设置),后者会初始化系统中的所有 GPU 设备。

这允许 NVML 在系统中其他 GPU 不稳定或处于不良状态时与 GPU 通信。使用此 API 时,GPU 将在 nvmlDeviceGetHandleBy* 函数中被发现和初始化。

注意

为了将 nvmlInit_v2 与 nvmlInit"_v1" 进行对比,当任何检测到的 GPU 处于不良或不稳定状态时,NVML 4.304 nvmlInit"_v1" 将会失败。

适用于所有产品。

此方法应在调用库中的任何其他方法之前调用一次。维护初始化的引用计数。只有当引用计数达到零时才会发生关闭。

nvmlReturn_t nvmlShutdown ( void )
返回值

描述

通过释放先前使用 nvmlInit_v2() 分配的所有 GPU 资源来关闭 NVML。

适用于所有产品。

此方法应在完成 NVML 工作后调用,对于每次调用 nvmlInit_v2() 调用一次。维护初始化的引用计数。只有当引用计数达到零时才会发生关闭。为了向后兼容,如果 nvmlShutdown() 的调用次数多于 nvmlInit(),则不会报告错误。


NVML API 参考指南 (PDF) - vR570 (旧版本) - 最后更新于 2025 年 1 月 29 日 - 发送反馈