策略
- group DCGMAPI_PO
本章介绍处理系统策略管理和违规设置的方法。
策略模块中的 API 可以分为以下几类
描述用于设置策略和注册回调以在特定策略条件被违反时接收通知的 API。
函数
-
dcgmReturn_t dcgmPolicySet(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicy_t *policy, dcgmStatus_t statusHandle)
在策略管理器内部设置当前违规策略。
给定 dcgmPolicy_t 结构中的条件,如果发生违规,则可能会执行后续操作以报告或包含故障。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
policy – IN: 对 dcgmPolicy_t 的引用,它将应用于组中的所有 GPU。
statusHandle – IN/OUT: 操作的结果状态。如果不需要详细的错误信息,请将其作为 NULL 传递。有关创建状态句柄的详细信息,请参阅 dcgmStatusCreate。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId 或 policy 无效,则返回 DCGM_ST_BADPARAM
如果任何不支持的 GPU 是 groupId 中指定的 GPU 组的一部分,则返回 DCGM_ST_NOT_SUPPORTED
DCGM_ST_* 发生了不同的错误,并存储在 statusHandle 中。请参阅 dcgmReturn_t
-
dcgmReturn_t dcgmPolicyGet(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, int count, dcgmPolicy_t *policy, dcgmStatus_t statusHandle)
获取策略管理器内部的当前违规策略。
给定 groupId,将检索多个策略结构。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
count – IN: 策略数组的大小。这是将要检索的最大策略数,最终应与组中指定的 GPU 数量相对应。
policy – OUT: 对 dcgmPolicy_t 的引用,它将用作存储应用于组中每个 GPU 的当前策略。
statusHandle – IN/OUT: 操作的结果状态。如果不需要操作的详细错误信息,请将其作为 NULL 传递。有关创建状态句柄的详细信息,请参阅 dcgmStatusCreate。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId 或 policy 无效,则返回 DCGM_ST_BADPARAM
DCGM_ST_* 发生了不同的错误,并存储在 statusHandle 中。请参阅 dcgmReturn_t
-
dcgmReturn_t dcgmPolicyRegister_v2(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyCondition_t condition, fpRecvUpdates callback, uint64_t userData)
注册一个函数,以便在特定策略条件(请参阅 dcgmPolicyCondition_t)被违反时调用。
当处于 DCGM_OPERATION_MODE_AUTO 模式时,将自动调用此回调,并且仅当处于 DCGM_OPERATION_MODE_MANUAL 模式时才在 dcgmPolicyTrigger 之后调用。所有回调都在单独的线程中进行。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
condition – IN: 条件集,指定为 OR 列表(请参阅 dcgmPolicyCondition_t),为其注册回调函数
callback – IN: 对函数的引用,如果发生违规,则应调用该函数。此函数将在执行策略指定的任何操作之前调用。
userData – IN: 用户数据指针,用于传递到回调的 userData 字段
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId、condition 无效,callback 为 NULL,则返回 DCGM_ST_BADPARAM
如果任何不支持的 GPU 是 groupId 中指定的 GPU 组的一部分,则返回 DCGM_ST_NOT_SUPPORTED
-
dcgmReturn_t dcgmPolicyUnregister(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyCondition_t condition)
取消注册要为特定策略条件(请参阅 dcgmPolicyCondition_t)调用的函数。
此函数将取消注册给定条件和句柄的所有回调。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
condition – IN: 条件集,指定为 OR 列表(请参阅 dcgmPolicyCondition_t),为其取消注册回调函数
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId、condition 无效,则返回 DCGM_ST_BADPARAM
如果策略注册的回调正在进行中,则返回 DCGM_ST_IN_USE
描述可用于对 GPU 组执行直接操作的 API(例如,
执行 GPU 重置,运行健康状况诊断)。
函数
-
dcgmReturn_t dcgmActionValidate(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyValidation_t validate, dcgmDiagResponse_v11 *response)
通知操作管理器对系统上的 GPU 组执行手动验证。
*************************************** 已弃用 ***************************************
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
validate – IN: 操作后要执行的验证。
response – OUT: 验证过程的结果。有关详细信息,请参阅 dcgmDiagResponse_t。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果不支持运行指定的 validate,则返回 DCGM_ST_NOT_SUPPORTED。这通常是由于系统上未安装 Tesla 推荐的驱动程序。
如果 groupId、validate 或 statusHandle 无效,则返回 DCGM_ST_BADPARAM
如果发生内部错误,则返回 DCGM_ST_GENERIC_ERROR
如果 groupId 指的是非同构 GPU 组,则返回 DCGM_ST_GROUP_INCOMPATIBLE。目前不允许这样做。
-
dcgmReturn_t dcgmActionValidate_v2(dcgmHandle_t pDcgmHandle, dcgmRunDiag_v10 *drd, dcgmDiagResponse_v11 *response)
通知操作管理器对系统上的 GPU 组执行手动验证。
- 参数:
pDcgmHandle – IN: DCGM 句柄
drd – IN: 包含组 ID、测试名称、测试参数、结构版本以及应执行的验证。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
response – OUT: 验证过程的结果。有关详细信息,请参阅 dcgmDiagResponse_t。注意:调用者有责任确保响应已零初始化,版本字段除外。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果不支持运行指定的 validate,则返回 DCGM_ST_NOT_SUPPORTED。这通常是由于系统上未安装 Tesla 推荐的驱动程序。
如果 groupId、validate 或 statusHandle 无效,则返回 DCGM_ST_BADPARAM
如果发生内部错误,则返回 DCGM_ST_GENERIC_ERROR
如果 groupId 指的是非同构 GPU 组,则返回 DCGM_ST_GROUP_INCOMPATIBLE。目前不允许这样做。
-
dcgmReturn_t dcgmRunDiagnostic(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmDiagnosticLevel_t diagLevel, dcgmDiagResponse_v11 *diagResponse)
对 GPU 组运行诊断。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
diagLevel – IN: 要运行的诊断级别
diagResponse –
IN/OUT: 运行 DCGM 诊断的结果。
.version 应设置为
dcgmDiagResponse_version 在调用此函数之前。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
DCGM_ST_NOT_SUPPORTED 如果不支持运行诊断。这通常是由于系统上未安装 Tesla 推荐驱动程序。
DCGM_ST_BADPARAM 如果提供的参数无效或缺失
如果发生内部错误,则返回 DCGM_ST_GENERIC_ERROR
如果 groupId 指的是非同构 GPU 组,则返回 DCGM_ST_GROUP_INCOMPATIBLE。目前不允许这样做。
DCGM_ST_VER_MISMATCH 如果 .version 未设置或无效。
-
dcgmReturn_t dcgmPolicySet(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicy_t *policy, dcgmStatus_t statusHandle)
设置和管理
- group DCGMAPI_PO_Setup
描述用于设置策略和注册回调以在特定策略条件被违反时接收通知的 API。
函数
-
dcgmReturn_t dcgmPolicySet(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicy_t *policy, dcgmStatus_t statusHandle)
在策略管理器内部设置当前违规策略。
给定 dcgmPolicy_t 结构中的条件,如果发生违规,则可能会执行后续操作以报告或包含故障。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
policy – IN: 对 dcgmPolicy_t 的引用,它将应用于组中的所有 GPU。
statusHandle – IN/OUT: 操作的结果状态。如果不需要详细的错误信息,请将其作为 NULL 传递。有关创建状态句柄的详细信息,请参阅 dcgmStatusCreate。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId 或 policy 无效,则返回 DCGM_ST_BADPARAM
如果任何不支持的 GPU 是 groupId 中指定的 GPU 组的一部分,则返回 DCGM_ST_NOT_SUPPORTED
DCGM_ST_* 发生了不同的错误,并存储在 statusHandle 中。请参阅 dcgmReturn_t
-
dcgmReturn_t dcgmPolicyGet(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, int count, dcgmPolicy_t *policy, dcgmStatus_t statusHandle)
获取策略管理器内部的当前违规策略。
给定 groupId,将检索多个策略结构。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
count – IN: 策略数组的大小。这是将要检索的最大策略数,最终应与组中指定的 GPU 数量相对应。
policy – OUT: 对 dcgmPolicy_t 的引用,它将用作存储应用于组中每个 GPU 的当前策略。
statusHandle – IN/OUT: 操作的结果状态。如果不需要操作的详细错误信息,请将其作为 NULL 传递。有关创建状态句柄的详细信息,请参阅 dcgmStatusCreate。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId 或 policy 无效,则返回 DCGM_ST_BADPARAM
DCGM_ST_* 发生了不同的错误,并存储在 statusHandle 中。请参阅 dcgmReturn_t
-
dcgmReturn_t dcgmPolicyRegister_v2(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyCondition_t condition, fpRecvUpdates callback, uint64_t userData)
注册一个函数,以便在特定策略条件(请参阅 dcgmPolicyCondition_t)被违反时调用。
当处于 DCGM_OPERATION_MODE_AUTO 模式时,将自动调用此回调,并且仅当处于 DCGM_OPERATION_MODE_MANUAL 模式时才在 dcgmPolicyTrigger 之后调用。所有回调都在单独的线程中进行。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
condition – IN: 条件集,指定为 OR 列表(请参阅 dcgmPolicyCondition_t),为其注册回调函数
callback – IN: 对函数的引用,如果发生违规,则应调用该函数。此函数将在执行策略指定的任何操作之前调用。
userData – IN: 用户数据指针,用于传递到回调的 userData 字段
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId、condition 无效,callback 为 NULL,则返回 DCGM_ST_BADPARAM
如果任何不支持的 GPU 是 groupId 中指定的 GPU 组的一部分,则返回 DCGM_ST_NOT_SUPPORTED
-
dcgmReturn_t dcgmPolicyUnregister(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyCondition_t condition)
取消注册要为特定策略条件(请参阅 dcgmPolicyCondition_t)调用的函数。
此函数将取消注册给定条件和句柄的所有回调。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
condition – IN: 条件集,指定为 OR 列表(请参阅 dcgmPolicyCondition_t),为其取消注册回调函数
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果 groupId、condition 无效,则返回 DCGM_ST_BADPARAM
如果策略注册的回调正在进行中,则返回 DCGM_ST_IN_USE
-
dcgmReturn_t dcgmPolicySet(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicy_t *policy, dcgmStatus_t statusHandle)
手动调用
- group DCGMAPI_PO_MI
描述可用于对 GPU 组执行直接操作的 API(例如,
执行 GPU 重置,运行健康状况诊断)。
函数
-
dcgmReturn_t dcgmActionValidate(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyValidation_t validate, dcgmDiagResponse_v11 *response)
通知操作管理器对系统上的 GPU 组执行手动验证。
*************************************** 已弃用 ***************************************
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
validate – IN: 操作后要执行的验证。
response – OUT: 验证过程的结果。有关详细信息,请参阅 dcgmDiagResponse_t。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果不支持运行指定的 validate,则返回 DCGM_ST_NOT_SUPPORTED。这通常是由于系统上未安装 Tesla 推荐的驱动程序。
如果 groupId、validate 或 statusHandle 无效,则返回 DCGM_ST_BADPARAM
如果发生内部错误,则返回 DCGM_ST_GENERIC_ERROR
如果 groupId 指的是非同构 GPU 组,则返回 DCGM_ST_GROUP_INCOMPATIBLE。目前不允许这样做。
-
dcgmReturn_t dcgmActionValidate_v2(dcgmHandle_t pDcgmHandle, dcgmRunDiag_v10 *drd, dcgmDiagResponse_v11 *response)
通知操作管理器对系统上的 GPU 组执行手动验证。
- 参数:
pDcgmHandle – IN: DCGM 句柄
drd – IN: 包含组 ID、测试名称、测试参数、结构版本以及应执行的验证。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
response – OUT: 验证过程的结果。有关详细信息,请参阅 dcgmDiagResponse_t。注意:调用者有责任确保响应已零初始化,版本字段除外。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果不支持运行指定的 validate,则返回 DCGM_ST_NOT_SUPPORTED。这通常是由于系统上未安装 Tesla 推荐的驱动程序。
如果 groupId、validate 或 statusHandle 无效,则返回 DCGM_ST_BADPARAM
如果发生内部错误,则返回 DCGM_ST_GENERIC_ERROR
如果 groupId 指的是非同构 GPU 组,则返回 DCGM_ST_GROUP_INCOMPATIBLE。目前不允许这样做。
-
dcgmReturn_t dcgmRunDiagnostic(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmDiagnosticLevel_t diagLevel, dcgmDiagResponse_v11 *diagResponse)
对 GPU 组运行诊断。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
diagLevel – IN: 要运行的诊断级别
diagResponse –
IN/OUT: 运行 DCGM 诊断的结果。
.version 应设置为
dcgmDiagResponse_version 在调用此函数之前。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
DCGM_ST_NOT_SUPPORTED 如果不支持运行诊断。这通常是由于系统上未安装 Tesla 推荐驱动程序。
DCGM_ST_BADPARAM 如果提供的参数无效或缺失
如果发生内部错误,则返回 DCGM_ST_GENERIC_ERROR
如果 groupId 指的是非同构 GPU 组,则返回 DCGM_ST_GROUP_INCOMPATIBLE。目前不允许这样做。
DCGM_ST_VER_MISMATCH 如果 .version 未设置或无效。
-
dcgmReturn_t dcgmActionValidate(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, dcgmPolicyValidation_t validate, dcgmDiagResponse_v11 *response)