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

4.20. 事件处理方法

本章节介绍 NVML 可以针对每个设备执行的方法,用于注册和等待某些事件发生。

模块

 

struct 

类型定义

typedef nvmlEventSet_st *  nvmlEventSet_t

函数

nvmlReturn_t nvmlDeviceGetSupportedEventTypes ( nvmlDevice_t device, unsigned long long* eventTypes )
nvmlReturn_t nvmlDeviceRegisterEvents ( nvmlDevice_t device, unsigned long long eventTypes, nvmlEventSet_t set )
nvmlReturn_t nvmlEventSetCreate ( nvmlEventSet_t* set )
nvmlReturn_t nvmlEventSetFree ( nvmlEventSet_t set )
nvmlReturn_t nvmlEventSetWait_v2 ( nvmlEventSet_t set, nvmlEventData_t* data, unsigned int  timeoutms )

类型定义

typedef nvmlEventSet_st * nvmlEventSet_t

事件集合的句柄

函数

nvmlReturn_t nvmlDeviceGetSupportedEventTypes ( nvmlDevice_t device, unsigned long long* eventTypes )
参数
device (设备)
目标设备的标识符
eventTypes (事件类型)
用于返回支持事件的位掩码的引用
返回值

描述

返回有关设备上支持的事件的信息

适用于 Fermi 或更新的完全支持的设备。

Windows 不支持事件。因此,此函数在 Windows 上于 eventTypes 中返回一个空掩码。

另请参阅

事件类型

nvmlDeviceRegisterEvents

nvmlReturn_t nvmlDeviceRegisterEvents ( nvmlDevice_t device, unsigned long long eventTypes, nvmlEventSet_t set )
参数
device (设备)
目标设备的标识符
eventTypes (事件类型)
要记录的 事件类型 的位掩码
set (集合)
向其中添加新事件类型的集合
返回值

描述

开始在指定设备上记录事件,并将事件添加到指定的 nvmlEventSet_t

适用于 Fermi 或更新的完全支持的设备。ECC 事件仅在启用 ECC 的设备上可用(请参阅 nvmlDeviceGetTotalEccErrors)。电源限制事件仅在启用电源管理的设备上可用(请参阅 nvmlDeviceGetPowerManagementMode)。

仅适用于 Linux。

重要提示: 对集合的操作不是线程安全的

此调用开始在特定设备上记录事件。在此调用之前发生的所有事件都不会被记录。可以使用 nvmlEventSetWait_v2 检查是否发生了某些事件。

如果函数报告 NVML_ERROR_UNKNOWN,则事件集合处于未定义状态,应释放。如果函数报告 NVML_ERROR_NOT_SUPPORTED,则事件集合仍可使用。在这种情况下,不会注册任何请求的 eventTypes。

另请参阅

事件类型

nvmlDeviceGetSupportedEventTypes

nvmlEventSetWait

nvmlEventSetFree

nvmlReturn_t nvmlEventSetCreate ( nvmlEventSet_t* set )
参数
set (集合)
用于返回事件句柄的引用
返回值

描述

创建一个空的事件集合。事件集合应通过 nvmlEventSetFree 释放

适用于 Fermi 或更新的完全支持的设备。

另请参阅

nvmlEventSetFree

nvmlReturn_t nvmlEventSetFree ( nvmlEventSet_t set )
参数
set (集合)
要释放的事件的引用
返回值

描述

释放集合中的事件

适用于 Fermi 或更新的完全支持的设备。

另请参阅

nvmlDeviceRegisterEvents

nvmlReturn_t nvmlEventSetWait_v2 ( nvmlEventSet_t set, nvmlEventData_t* data, unsigned int  timeoutms )
参数
set (集合)
要等待的事件集合的引用
data (数据)
用于返回事件数据的引用
timeoutms (超时时间ms)
注册事件的最大等待时间,以毫秒为单位
返回值

描述

等待事件并传递事件

适用于 Fermi 或更新的完全支持的设备。

如果在调用时某些事件已准备好传递,则函数立即返回。如果没有准备好传递的事件,则函数会休眠直到事件到达,但不超过指定的超时时间。在某些情况下,此函数可以在指定的超时时间过去之前返回(例如,当中断到达时)。

在 Windows 上,如果发生 Xid 错误,该函数将返回系统看到的最新 Xid 错误类型。如果在调用 nvmlEventSetWait 之前生成了多个 Xid 错误,则为所有 Xid 错误事件返回最后看到的 Xid 错误类型。

在 Linux 上,每个 Xid 错误事件都将返回关联的事件数据和其他适用信息。

在 MIG 模式下,如果提供了设备句柄,则 API 会报告可用实例的所有事件,前提是调用者具有适当的权限。在缺少所需权限的情况下,仅报告影响所有实例(即整个设备)的事件。

此 API 当前不支持使用 MIG 设备句柄的按实例事件报告。

另请参阅

事件类型

nvmlDeviceRegisterEvents

事件类型


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