作业统计信息
- group DCGMAPI_JOB_STATS
客户端可以调用 DCGM API 来启动和停止在进程边界(在序言和尾声期间)收集统计信息。
这将使 DCGM 能够在作业进行期间监控所有 PID,并提供在感兴趣的时间窗口内活动进程和资源使用情况的摘要。
函数
-
dcgmReturn_t dcgmWatchJobFields(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, long long updateFreq, double maxKeepAge, int maxKeepSamples)
请求 DCGM 开始记录使用 dcgmJobGetStats() 查询的字段的统计信息
请注意,字段的首次更新将不会发生,直到下一个字段更新周期。要强制执行字段更新周期,请调用 dcgmUpdateAllFields(1)。
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为 DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
updateFreq – IN: 以微秒为单位的字段更新频率
maxKeepAge – IN: 以秒为单位的字段数据保留时长
maxKeepSamples – IN: 要保留的最大样本数。0=无限制
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果参数无效,则返回 DCGM_ST_BADPARAM
如果主机引擎以非 root 用户身份运行,并且无法启用记帐模式(需要 root 用户权限),则返回 DCGM_ST_REQUIRES_ROOT。在启动 DCGM 之前,以 root 用户身份在节点上运行“nvidia-smi -am 1”以解决此问题。
-
dcgmReturn_t dcgmJobStartStats(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, char jobId[64])
客户端使用此 API 通知 DCGM 即将开始的作业。
应作为作业序言的一部分调用
- 参数:
pDcgmHandle – IN: DCGM 句柄
groupId – IN: 组 ID,表示一个或多个 GPU 的集合。有关创建组的详细信息,请查看 dcgmGroupCreate。或者,传入组 ID 作为 DCGM_GROUP_ALL_GPUS 以对所有 GPU 执行操作。
jobId – IN: 用户提供的字符串,用于表示作业
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果参数无效,则返回 DCGM_ST_BADPARAM
如果指定的 jobId 已在使用中,则返回 DCGM_ST_DUPLICATE_KEY
-
dcgmReturn_t dcgmJobStopStats(dcgmHandle_t pDcgmHandle, char jobId[64])
客户端使用此 API 通知 DCGM 停止收集由作业 ID 表示的作业的统计信息。
应作为作业尾声的一部分调用。作业 ID 仍然可用于随时查看统计信息,但不能用于启动新作业。在此调用之前,您必须调用 dcgmWatchJobFields() 以启用作业监视
- 参数:
pDcgmHandle – IN: DCGM 句柄
jobId – IN: 用户提供的字符串,用于表示作业
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果参数无效,则返回 DCGM_ST_BADPARAM
如果 jobId 不是有效的作业标识符,则返回 DCGM_ST_NO_DATA。
-
dcgmReturn_t dcgmJobGetStats(dcgmHandle_t pDcgmHandle, char jobId[64], dcgmJobInfo_t *pJobInfo)
获取由 DCGM 生成的作业 ID 标识的作业的统计信息。
可以在作业处理过程中的任何时候检索统计信息。如果要重用此 jobId,请在此调用之后调用 dcgmJobRemove。
- 参数:
pDcgmHandle – IN: DCGM 句柄
jobId – IN: 用户提供的字符串,用于表示作业
pJobInfo –
IN/OUT: 用于返回有关作业信息的结构。
.version 应设置为
dcgmJobInfo_version 在此调用之前。
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果参数无效,则返回 DCGM_ST_BADPARAM
如果 jobId 不是有效的作业标识符,则返回 DCGM_ST_NO_DATA。
如果 .version 未设置或无效,则返回 DCGM_ST_VER_MISMATCH。
-
dcgmReturn_t dcgmJobRemove(dcgmHandle_t pDcgmHandle, char jobId[64])
此 API 告知 DCGM 停止跟踪给定 jobId 的作业。
在此调用之后,您将无法再在此 jobId 上调用 dcgmJobGetStats()。但是,在此调用之后,您将能够重用 jobId。
- 参数:
pDcgmHandle – IN: DCGM 句柄
jobId – IN: 用户提供的字符串,用于表示作业
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果参数无效,则返回 DCGM_ST_BADPARAM
如果 jobId 不是有效的作业标识符,则返回 DCGM_ST_NO_DATA。
-
dcgmReturn_t dcgmJobRemoveAll(dcgmHandle_t pDcgmHandle)
此 API 告知 DCGM 停止跟踪所有作业。
在此调用之后,您将无法再调用 dcgmJobGetStats() 任何作业,直到您再次调用 dcgmJobStartStats。在此调用之后,您将能够重用任何先前使用过的 jobIds。
- 参数:
pDcgmHandle – IN: DCGM 句柄
- 返回值:
如果调用成功,则返回 DCGM_ST_OK
如果参数无效,则返回 DCGM_ST_BADPARAM
-
dcgmReturn_t dcgmWatchJobFields(dcgmHandle_t pDcgmHandle, dcgmGpuGrp_t groupId, long long updateFreq, double maxKeepAge, int maxKeepSamples)