4.18. 设备命令
本章介绍更改设备状态的 NVML 操作。 其中每一项都需要 root/admin 访问权限。 非管理员用户在调用任何这些方法时将看到 NVML_ERROR_NO_PERMISSION 错误代码。
函数
- nvmlReturn_t nvmlDeviceClearEccErrorCounts ( nvmlDevice_t device, nvmlEccCounterType_t counterType )
- nvmlReturn_t nvmlDeviceResetApplicationsClocks ( nvmlDevice_t device )
- nvmlReturn_t nvmlDeviceResetGpuLockedClocks ( nvmlDevice_t device )
- nvmlReturn_t nvmlDeviceResetMemoryLockedClocks ( nvmlDevice_t device )
- nvmlReturn_t nvmlDeviceSetAPIRestriction ( nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t isRestricted )
- nvmlReturn_t nvmlDeviceSetApplicationsClocks ( nvmlDevice_t device, unsigned int memClockMHz, unsigned int graphicsClockMHz )
- nvmlReturn_t nvmlDeviceSetAutoBoostedClocksEnabled ( nvmlDevice_t device, nvmlEnableState_t enabled )
- nvmlReturn_t nvmlDeviceSetComputeMode ( nvmlDevice_t device, nvmlComputeMode_t mode )
- nvmlReturn_t nvmlDeviceSetDefaultAutoBoostedClocksEnabled ( nvmlDevice_t device, nvmlEnableState_t enabled, unsigned int flags )
- nvmlReturn_t nvmlDeviceSetDefaultFanSpeed_v2 ( nvmlDevice_t device, unsigned int fan )
- nvmlReturn_t nvmlDeviceSetDriverModel ( nvmlDevice_t device, nvmlDriverModel_t driverModel, unsigned int flags )
- nvmlReturn_t nvmlDeviceSetEccMode ( nvmlDevice_t device, nvmlEnableState_t ecc )
- nvmlReturn_t nvmlDeviceSetFanControlPolicy ( nvmlDevice_t device, unsigned int fan, nvmlFanControlPolicy_t policy )
- nvmlReturn_t nvmlDeviceSetFanSpeed_v2 ( nvmlDevice_t device, unsigned int fan, unsigned int speed )
- nvmlReturn_t nvmlDeviceSetGpcClkVfOffset ( nvmlDevice_t device, int offset )
- nvmlReturn_t nvmlDeviceSetGpuLockedClocks ( nvmlDevice_t device, unsigned int minGpuClockMHz, unsigned int maxGpuClockMHz )
- nvmlReturn_t nvmlDeviceSetGpuOperationMode ( nvmlDevice_t device, nvmlGpuOperationMode_t mode )
- nvmlReturn_t nvmlDeviceSetMemClkVfOffset ( nvmlDevice_t device, int offset )
- nvmlReturn_t nvmlDeviceSetMemoryLockedClocks ( nvmlDevice_t device, unsigned int minMemClockMHz, unsigned int maxMemClockMHz )
- nvmlReturn_t nvmlDeviceSetPersistenceMode ( nvmlDevice_t device, nvmlEnableState_t mode )
- nvmlReturn_t nvmlDeviceSetPowerManagementLimit ( nvmlDevice_t device, unsigned int limit )
- nvmlReturn_t nvmlDeviceSetTemperatureThreshold ( nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, int* temp )
函数
- nvmlReturn_t nvmlDeviceClearEccErrorCounts ( nvmlDevice_t device, nvmlEccCounterType_t counterType )
-
参数
- device
- 目标设备的标识符
- counterType
- 指示应清除哪种类型错误的标志。
返回值
- NVML_SUCCESS 如果错误计数已清除
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 counterType 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
清除设备的 ECC 错误和其他内存错误计数。
适用于 Kepler 或更新的完全支持的设备。 仅适用于具有 ECC 的设备。 需要 NVML_INFOROM_ECC 版本 2.0 或更高版本才能清除基于位置的聚合 ECC 计数。 需要 NVML_INFOROM_ECC 版本 1.0 或更高版本才能清除所有其他 ECC 计数。 需要 root/admin 权限。 需要启用 ECC 模式。
将所有指定的 ECC 计数器设置为 0,包括详细计数和总计数。
此操作立即生效。
有关可用计数器类型的详细信息,请参阅 nvmlMemoryErrorType_t。
另请参阅
- nvmlReturn_t nvmlDeviceResetApplicationsClocks ( nvmlDevice_t device )
-
参数
- device
- 目标设备的标识符
返回值
- NVML_SUCCESS 如果新设置已成功设置
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
将应用程序时钟重置为默认值
这是系统重启或驱动程序重新加载后将使用的应用程序时钟。 默认值是恒定的,但可以使用 nvmlDeviceSetApplicationsClocks 更改当前值。
在 Pascal 及更新的硬件上,如果时钟之前已使用 nvmlDeviceSetApplicationsClocks 锁定,则此调用将解锁时钟。 这会使时钟恢复其默认行为,即在热限制允许的情况下自动提升到基本时钟之上。
另请参阅
nvmlDeviceGetApplicationsClock
nvmlDeviceSetApplicationsClocks
适用于 Fermi 或更新的非 GeForce 完全支持的设备以及 Maxwell 或更新的 GeForce 设备。
- nvmlReturn_t nvmlDeviceResetGpuLockedClocks ( nvmlDevice_t device )
-
参数
- device
- 目标设备的标识符
返回值
- NVML_SUCCESS 如果新设置已成功设置
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
将 GPU 时钟重置为默认值
这是系统重启或驱动程序重新加载后将使用的 GPU 时钟。 默认值是空闲时钟,但可以使用 nvmlDeviceSetApplicationsClocks 更改当前值。
另请参阅
适用于 Volta 或更新的完全支持的设备。
- nvmlReturn_t nvmlDeviceResetMemoryLockedClocks ( nvmlDevice_t device )
-
参数
- device
- 目标设备的标识符
返回值
- NVML_SUCCESS 如果新设置已成功设置
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
将内存时钟重置为默认值
这是系统重启或驱动程序重新加载后将使用的内存时钟。 默认值是空闲时钟,但可以使用 nvmlDeviceSetApplicationsClocks 更改当前值。
另请参阅
nvmlDeviceSetMemoryLockedClocks
适用于 Ampere 或更新的完全支持的设备。
- nvmlReturn_t nvmlDeviceSetAPIRestriction ( nvmlDevice_t device, nvmlRestrictedAPI_t apiType, nvmlEnableState_t isRestricted )
-
参数
- device
- 目标设备的标识符
- apiType
- 此操作的目标 API 类型
- isRestricted
- 目标限制
返回值
- NVML_SUCCESS 如果已设置 isRestricted
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 apiType 不正确
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持更改 API 限制,或者设备不支持要为其设置 API 限制的功能(例如,设备不支持启用/禁用自动加速时钟)
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
更改某些 API 的 root/admin 限制。 有关支持的 API 列表,请参阅 nvmlRestrictedAPI_t。 root/admin 用户可以使用此方法为非 root/admin 用户提供对某些原本受限的 API 的访问权限。 新设置在 NVIDIA 驱动程序的生命周期内有效; 它不是持久的。 请参阅 nvmlDeviceGetAPIRestriction 以查询当前限制设置。
适用于 Kepler 或更新的完全支持的设备。 需要 root/admin 权限。
另请参阅
- nvmlReturn_t nvmlDeviceSetApplicationsClocks ( nvmlDevice_t device, unsigned int memClockMHz, unsigned int graphicsClockMHz )
-
参数
- device
- 目标设备的标识符
- memClockMHz
- 请求的内存时钟频率,单位为 MHz
- graphicsClockMHz
- 请求的图形时钟频率,单位为 MHz
返回值
- NVML_SUCCESS 如果新设置已成功设置
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效,或者 memClockMHz 和 graphicsClockMHz 不是有效的时钟组合
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置应用程序将锁定的时钟。
设置计算和图形应用程序将运行的时钟。 例如,CUDA 驱动程序在上下文创建期间请求这些时钟,这意味着此属性定义 CUDA 应用程序将运行的时钟,除非发生某些超规格事件(例如,功率过高、温度过高或外部硬件制动)。
可用作请求恒定性能的设置。
在 Pascal 及更新的硬件上,这将自动禁用时钟的自动加速。
在 K80 及更新的 Kepler 和 Maxwell GPU 上,希望获得固定性能的用户还应调用 nvmlDeviceSetAutoBoostedClocksEnabled,以防止时钟自动加速到设置的时钟值之上。
适用于 Kepler 或更新的非 GeForce 完全支持的设备以及 Maxwell 或更新的 GeForce 设备。 需要 root/admin 权限。
有关如何列出可用时钟组合的详细信息,请参阅 nvmlDeviceGetSupportedMemoryClocks 和 nvmlDeviceGetSupportedGraphicsClocks。
系统重启或驱动程序重新加载后,应用程序时钟将恢复为其默认值。 请参阅 nvmlDeviceResetApplicationsClocks。
- nvmlReturn_t nvmlDeviceSetAutoBoostedClocksEnabled ( nvmlDevice_t device, nvmlEnableState_t enabled )
-
参数
- device
- 目标设备的标识符
- enabled
- 要尝试将目标设备的自动加速时钟设置为的状态
返回值
- NVML_SUCCESS 如果自动加速时钟已成功设置为 enabled 指定的状态
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持自动加速时钟
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
尝试设置设备上自动加速时钟的当前状态。
适用于 Kepler 或更新的完全支持的设备。
默认情况下,某些硬件上启用了自动加速时钟,允许 GPU 以更高的时钟速率运行,从而在热限制允许的情况下最大限度地提高性能。 如果需要固定时钟速率,则应禁用自动加速时钟。
默认情况下,非 root 用户可以使用此 API,但 root 用户可以通过调用 nvmlDeviceSetAPIRestriction 并将 apiType=NVML_RESTRICTED_API_SET_AUTO_BOOSTED_CLOCKS 设置为限制非 root 用户使用此 API。 注意:修改当前自动加速设置需要持久模式,因此必须启用持久模式。
在 Pascal 及更新的硬件上,自动加速时钟通过应用程序时钟进行控制。 使用 nvmlDeviceSetApplicationsClocks 和 nvmlDeviceResetApplicationsClocks 来控制自动加速行为。
- nvmlReturn_t nvmlDeviceSetComputeMode ( nvmlDevice_t device, nvmlComputeMode_t mode )
-
参数
- device
- 目标设备的标识符
- mode
- 目标计算模式
返回值
- NVML_SUCCESS 如果已设置计算模式
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 mode 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置设备的计算模式。
适用于所有产品。 需要 root/admin 权限。
计算模式确定 GPU 是否可用于计算操作以及是否可以在上下文之间共享。
此操作立即生效。 在 Linux 下,它不会跨重启持久存在,并且始终重置为“默认”。 在 Windows 下,它是持久的。
在 Windows 下,仅当在 WDDM 中运行时,计算模式才能设置为 DEFAULT
注意在启用 MIG 的 GPU 上,计算模式将设置为 DEFAULT,并且不支持更改它。
有关可用计算模式的详细信息,请参阅 nvmlComputeMode_t。
另请参阅
- nvmlReturn_t nvmlDeviceSetDefaultAutoBoostedClocksEnabled ( nvmlDevice_t device, nvmlEnableState_t enabled, unsigned int flags )
-
参数
- device
- 目标设备的标识符
- enabled
- 要尝试将目标设备的默认自动加速时钟设置为的状态
- flags
- 更改默认行为的标志。 当前未使用。
返回值
- NVML_SUCCESS 如果自动加速时钟的默认状态已成功设置为 enabled 指定的状态
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_NO_PERMISSION 如果调用用户没有权限更改自动加速时钟的默认状态。
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持自动加速时钟
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
尝试设置设备上自动加速时钟的默认状态。 这是当没有计算运行进程(例如,具有活动上下文的 CUDA 应用程序)运行时,自动加速时钟将返回到的默认状态
适用于 Kepler 或更新的非 GeForce 完全支持的设备以及 Maxwell 或更新的 GeForce 设备。 需要 root/admin 权限。
默认情况下,某些硬件上启用了自动加速时钟,允许 GPU 以更高的时钟速率运行,从而在热限制允许的情况下最大限度地提高性能。 如果需要固定时钟速率,则应禁用自动加速时钟。
在 Pascal 及更新的硬件上,自动加速时钟通过应用程序时钟进行控制。 使用 nvmlDeviceSetApplicationsClocks 和 nvmlDeviceResetApplicationsClocks 来控制自动加速行为。
- nvmlReturn_t nvmlDeviceSetDefaultFanSpeed_v2 ( nvmlDevice_t device, unsigned int fan )
-
参数
- device
- 目标设备的标识符
- fan
- 风扇的索引,从零开始
描述
将风扇控制策略的速度设置为默认值。
适用于所有带风扇的 CUDA 功能独立显卡产品
如果速度已调整,则返回 NVML_SUCCESS 如果库尚未成功初始化,则返回 NVML_ERROR_UNINITIALIZED 如果 device 无效,则返回 NVML_ERROR_INVALID_ARGUMENT 如果设备不支持此功能(没有风扇),则返回 NVML_ERROR_NOT_SUPPORTED 发生任何意外错误时,返回 NVML_ERROR_UNKNOWN
- nvmlReturn_t nvmlDeviceSetDriverModel ( nvmlDevice_t device, nvmlDriverModel_t driverModel, unsigned int flags )
-
参数
- device
- 目标设备的标识符
- driverModel
- 目标驱动程序模型
- flags
- 更改默认行为的标志
返回值
- NVML_SUCCESS 如果已设置驱动程序模型
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 driverModel 无效
- NVML_ERROR_NOT_SUPPORTED 如果平台不是 Windows 或设备不支持此功能
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置设备的驱动程序模型。
适用于 Fermi 或更新的完全支持的设备。 仅适用于 Windows。 需要 root/admin 权限。
在 Windows 平台上,设备驱动程序可以在 WDDM 或 WDM (TCC) 模式下运行。 如果显示器连接到设备,则必须在 WDDM 模式下运行。
即使显示器仍连接,也可以使用强制标志 (nvmlFlagForce) 强制更改为 WDM (TCC)。 仅当主机随后断电并且在下次重启之前显示器与设备分离时,才应执行此操作。
此操作在下次重启后生效。
当在 DEFAULT 计算模式下运行时,Windows 驱动程序模型只能设置为 WDDM。
当 GPU 不支持图形加速或重启后将不支持图形加速时,不支持将驱动程序模型更改为 WDDM。 请参阅 nvmlDeviceSetGpuOperationMode。
有关可用驱动程序模型的详细信息,请参阅 nvmlDriverModel_t。 请参阅 nvmlFlagDefault 和 nvmlFlagForce
另请参阅
nvmlDeviceGetDriverModel()
- nvmlReturn_t nvmlDeviceSetEccMode ( nvmlDevice_t device, nvmlEnableState_t ecc )
-
参数
- device
- 目标设备的标识符
- ecc
- 目标 ECC 模式
返回值
- NVML_SUCCESS 如果已设置 ECC 模式
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 ecc 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置设备的 ECC 模式。
适用于 Kepler 或更新的完全支持的设备。 仅适用于具有 ECC 的设备。 需要 NVML_INFOROM_ECC 版本 1.0 或更高版本。 需要 root/admin 权限。
ECC 模式确定 GPU 是否启用其 ECC 支持。
此操作在下次重启后生效。
有关可用模式的详细信息,请参阅 nvmlEnableState_t。
另请参阅
- nvmlReturn_t nvmlDeviceSetFanControlPolicy ( nvmlDevice_t device, unsigned int fan, nvmlFanControlPolicy_t policy )
-
描述
设置当前风扇控制策略。
适用于 Maxwell 或更新的完全支持的设备。
需要特权用户。
适用于所有带风扇的 CUDA 功能独立显卡产品
device 目标设备的标识符 policy 要设置的风扇控制策略
如果已设置策略,则返回 NVML_SUCCESS 如果库尚未成功初始化,则返回 NVML_ERROR_UNINITIALIZED 如果 device 无效或 policy 为 null,或者给定的风扇未引用存在的风扇,则返回 NVML_ERROR_INVALID_ARGUMENT 如果设备早于 Maxwell,则返回 NVML_ERROR_NOT_SUPPORTED 发生任何意外错误时,返回 NVML_ERROR_UNKNOWN
- nvmlReturn_t nvmlDeviceSetFanSpeed_v2 ( nvmlDevice_t device, unsigned int fan, unsigned int speed )
-
描述
设置指定风扇的速度。
警告:此函数将风扇控制策略更改为手动。 这意味着您必须监控温度并相应地调整风扇速度。 如果您将风扇速度设置得太低,可能会烧坏 GPU! 使用 nvmlDeviceSetDefaultFanSpeed_v2 恢复默认控制策略。
适用于所有配备风扇的 Maxwell 或更新的 CUDA 功能独立显卡产品。
device 目标设备的标识符 fan 风扇的索引,从零开始 speed 目标风扇速度,占最大速度的百分比 [0-100]
如果已设置风扇速度,则返回 NVML_SUCCESS 如果库尚未成功初始化,则返回 NVML_ERROR_UNINITIALIZED 如果 device 无效,或者速度超出可接受范围,或者如果风扇索引未引用实际风扇,则返回 NVML_ERROR_INVALID_ARGUMENT 如果设备早于 Maxwell,则返回 NVML_ERROR_NOT_SUPPORTED 如果发生意外错误,则返回 NVML_ERROR_UNKNOWN。
- nvmlReturn_t nvmlDeviceSetGpcClkVfOffset ( nvmlDevice_t device, int offset )
-
参数
- device
- 目标设备的标识符
- offset
- 要设置的 GPCCLK VF 偏移值
返回值
- NVML_SUCCESS 如果已设置 offset
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 offset 为 NULL
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
- nvmlReturn_t nvmlDeviceSetGpuLockedClocks ( nvmlDevice_t device, unsigned int minGpuClockMHz, unsigned int maxGpuClockMHz )
-
参数
- device
- 目标设备的标识符
- minGpuClockMHz
- 请求的最小 GPU 时钟频率,单位为 MHz
- maxGpuClockMHz
- 请求的最大 GPU 时钟频率,单位为 MHz
返回值
- NVML_SUCCESS 如果新设置已成功设置
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效,或者 minGpuClockMHz 和 maxGpuClockMHz 不是有效的时钟组合
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置设备将锁定的时钟。
将设备将运行的时钟设置为 minGpuClockMHz 到 maxGpuClockMHz 范围内的值。 设置此项将取代应用程序时钟值,并且无论 CUDA 应用程序是否正在运行,都将生效。 请参阅 /ref nvmlDeviceSetApplicationsClocks
可用作请求恒定性能的设置。
可以使用一对以 MHz 为单位的整数时钟频率,或一对 /ref nvmlClockLimitId_t 值来调用此函数。 有关这些值的有效组合,请参见下表。
minGpuClock | maxGpuClock | 效果 ------------+-------------+-------------------------------------------------- tdp | tdp | 将时钟锁定到 TDP unlimited | tdp | 上限为 TDP,但时钟可能会漂移到此值以下 tdp | unlimited | 下限为 TDP,但时钟可能会提升到此值以上 unlimited | unlimited | 已解锁(== nvmlDeviceResetGpuLockedClocks)
如果一个参数采用这些值之一,则另一个参数也必须采用这些值之一。混合数值和符号调用会返回 NVML_ERROR_INVALID_ARGUMENT 错误。
需要 root/管理员 权限。
系统重启或驱动程序重新加载后,应用程序时钟将恢复为默认值。请参阅 nvmlDeviceResetGpuLockedClocks。
适用于 Volta 或更新的完全支持的设备。
- nvmlReturn_t nvmlDeviceSetGpuOperationMode ( nvmlDevice_t device, nvmlGpuOperationMode_t mode )
-
参数
- device
- 目标设备的标识符
- mode
- 目标 GOM
返回值
- 如果模式已设置,则返回 NVML_SUCCESS
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- 如果设备无效或模式不正确,则返回 NVML_ERROR_INVALID_ARGUMENT
- 如果设备不支持 GOM 或特定模式,则返回 NVML_ERROR_NOT_SUPPORTED
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置新的 GOM。 有关详细信息,请参阅 nvmlGpuOperationMode_t。
适用于 Kepler 系列的 GK110 M 级和 X 级 Tesla 产品。NVML_GOM_LOW_DP 和 NVML_GOM_ALL_ON 模式在完全支持的 GeForce 产品上受支持。Quadro 和 Tesla C 级产品不支持。需要 root/管理员 权限。
更改 GOM 需要重启系统。未来可能会取消重启要求。
仅计算 GOM 不支持图形加速。在 Windows 系统下,当挂起的驱动程序模型为 WDDM 时,不支持切换到这些 GOM。请参阅 nvmlDeviceSetDriverModel。
另请参阅
- nvmlReturn_t nvmlDeviceSetMemClkVfOffset ( nvmlDevice_t device, int offset )
-
参数
- device
- 目标设备的标识符
- offset
- 要设置的 MemClk VF 偏移值
返回值
- NVML_SUCCESS 如果已设置 offset
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 offset 为 NULL
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
已弃用:将在未来版本中弃用。 请改用 nvmlDeviceSetClockOffsets。 它适用于 Maxwell 及更高版本的 GPU 架构。
设置 MemClk(显存时钟)VF 偏移值。 这需要提升的权限。
- nvmlReturn_t nvmlDeviceSetMemoryLockedClocks ( nvmlDevice_t device, unsigned int minMemClockMHz, unsigned int maxMemClockMHz )
-
参数
- device
- 目标设备的标识符
- minMemClockMHz
- 请求的最小显存时钟频率,单位为 MHz
- maxMemClockMHz
- 请求的最大显存时钟频率,单位为 MHz
返回值
- NVML_SUCCESS 如果新设置已成功设置
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效,或者 minGpuClockMHz 和 maxGpuClockMHz 不是有效的时钟组合
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置设备将锁定的显存时钟频率。
将设备的显存时钟设置为 minMemClockMHz 到 maxMemClockMHz 范围内的值。 设置此值将取代应用程序时钟值,并且无论 CUDA 应用程序是否正在运行,都将生效。 请参阅 /ref nvmlDeviceSetApplicationsClocks
可用作请求恒定性能的设置。
需要 root/管理员 权限。
系统重启或驱动程序重新加载后,应用程序时钟将恢复为默认值。请参阅 nvmlDeviceResetMemoryLockedClocks。
适用于 Ampere 或更新的完全支持的设备。
- nvmlReturn_t nvmlDeviceSetPersistenceMode ( nvmlDevice_t device, nvmlEnableState_t mode )
-
参数
- device
- 目标设备的标识符
- mode
- 目标持久模式
返回值
- 如果持久模式已设置,则返回 NVML_SUCCESS
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- NVML_ERROR_INVALID_ARGUMENT 如果 device 无效或 mode 无效
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_NO_PERMISSION 如果用户没有执行此操作的权限
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置设备的持久模式。
适用于所有产品。 仅适用于 Linux。 需要 root/管理员 权限。
持久模式决定了在最后一个客户端退出后是否卸载 GPU 驱动程序软件。
此操作立即生效。 它不会在重启后保持持久。 每次重启后,持久模式都会重置为“禁用”。
有关可用模式,请参阅 nvmlEnableState_t。
在具有自身 NUMA 内存的设备上,当调用此 API 并将模式设置为 NVML_FEATURE_DISABLED 后,给定的设备句柄将不再有效,要继续与此设备交互,应从 nvmlDeviceGetHandleBy*() API 之一获取新的句柄。 此限制目前仅适用于与系统内存具有一致性 NVLink 连接的设备。
另请参阅
- nvmlReturn_t nvmlDeviceSetPowerManagementLimit ( nvmlDevice_t device, unsigned int limit )
-
参数
- device
- 目标设备的标识符
- limit
- 要设置的功率管理限制,单位为毫瓦
返回值
- 如果限制已设置,则返回 NVML_SUCCESS
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- 如果设备无效或 defaultLimit 超出范围,则返回 NVML_ERROR_INVALID_ARGUMENT
- NVML_ERROR_NOT_SUPPORTED 如果设备不支持此功能
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
设置此设备的新功率限制。
适用于 Kepler 或更新的完全支持的设备。 需要 root/admin 权限。
请参阅 nvmlDeviceGetPowerManagementLimitConstraints 以检查允许的值范围。
注意限制不会在重启或驱动程序卸载后保持持久。 启用持久模式以防止在没有应用程序使用设备时卸载驱动程序。
另请参阅
- nvmlReturn_t nvmlDeviceSetTemperatureThreshold ( nvmlDevice_t device, nvmlTemperatureThresholds_t thresholdType, int* temp )
-
参数
- device
- 目标设备的标识符
- thresholdType
- 要设置的阈值类型
- temp
- 保存要设置的值的引用
返回值
- 如果 temp 已设置,则返回 NVML_SUCCESS
- NVML_ERROR_UNINITIALIZED 如果库尚未成功初始化
- 如果设备无效、thresholdType 无效或 temp 为 NULL,则返回 NVML_ERROR_INVALID_ARGUMENT
- 如果设备没有温度传感器或不受支持,则返回 NVML_ERROR_NOT_SUPPORTED
- NVML_ERROR_GPU_IS_LOST 如果目标 GPU 已脱离总线或无法访问
- NVML_ERROR_UNKNOWN 发生任何意外错误时
描述
以摄氏度为单位,为 GPU 设置具有指定阈值类型的温度阈值。
适用于 Maxwell 或更新的完全支持的设备。
有关可用温度阈值的详细信息,请参阅 nvmlTemperatureThresholds_t。