作业统计信息

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: 用户提供的字符串,用于表示作业

返回值:

dcgmReturn_t dcgmJobStopStats(dcgmHandle_t pDcgmHandle, char jobId[64])

客户端使用此 API 通知 DCGM 停止收集由作业 ID 表示的作业的统计信息。

应作为作业尾声的一部分调用。作业 ID 仍然可用于随时查看统计信息,但不能用于启动新作业。在此调用之前,您必须调用 dcgmWatchJobFields() 以启用作业监视

参数:
  • pDcgmHandle – IN: DCGM 句柄

  • jobId – IN: 用户提供的字符串,用于表示作业

返回值:

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 在此调用之前。

返回值:

dcgmReturn_t dcgmJobRemove(dcgmHandle_t pDcgmHandle, char jobId[64])

此 API 告知 DCGM 停止跟踪给定 jobId 的作业。

在此调用之后,您将无法再在此 jobId 上调用 dcgmJobGetStats()。但是,在此调用之后,您将能够重用 jobId。

参数:
  • pDcgmHandle – IN: DCGM 句柄

  • jobId – IN: 用户提供的字符串,用于表示作业

返回值:

dcgmReturn_t dcgmJobRemoveAll(dcgmHandle_t pDcgmHandle)

此 API 告知 DCGM 停止跟踪所有作业。

在此调用之后,您将无法再调用 dcgmJobGetStats() 任何作业,直到您再次调用 dcgmJobStartStats。在此调用之后,您将能够重用任何先前使用过的 jobIds。

参数:

pDcgmHandle – IN: DCGM 句柄

返回值: