训练集合通信带宽监控
更新时间:2026-10-21
概述
本文档介绍如何在百舸平台查询训练过程中的集合通信带宽监控。百舸平台支持实时集合通信带宽统计,可以在训练过程中对集合通信性能进行实时观测,展示集合通信在不同阶段的性能表现,为故障诊断排除、训练性能调优等提供数据支撑。
集合通信监控指标是基于百度云 高性能集合通信库 BCCL 实现,需要您的训练任务集成 BCCL 通信库。
监控指标说明
集合通信带宽监控(通信组维度)
| 指标 | 说明 |
|---|---|
| 集合通信带宽(avg/max) | 训练过程中,通信组维度的集合通信带宽平均值和最大值。集合通信带宽 = 集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽。 |
| 单次集合通信数据量 | 单次集合通信传输的数据量。 |
集合通信带宽监控(GPU 维度)
| 指标 | 说明 |
|---|---|
| 集合通信带宽(avg/max) | 训练过程中,通信组中 GPU 维度的集合通信带宽平均值和最大值。集合通信带宽 = 集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽。 |
| 网络传输带宽(avg/max) | 训练过程中,通信组中 GPU 维度的网络传输带宽平均值和最大值。网络传输带宽 = 集合通信传输数据量 / 网络传输完成时间。仅统计集合通信期间网络传输的带宽。 |
| 单次集合通信数据量 | 单次集合通信传输的数据量。 |
说明: 集合通信完成时间 = 网络传输完成时间 + GPU 操作及等待时间。
使用限制
- 仅支持 PyTorch 训练框架的任务。
- 集合通信带宽监控暂不支持机内集合通信带宽监控。
前提条件
-
训练任务使用百度云 高性能集合通信库 BCCL。支持以下两种方式:
-
使用新版本的 AIAK 训练加速镜像,镜像版本需不低于 v2.1.1.5。AIAK 镜像中已集成 BCCL 通信库,默认采用 NCCL 通信库,可以通过设置环境变量开启 BCCL:
export LD_LIBRARY_PATH=$BCCL_PATH:$LD_LIBRARY_PATH可使用满足版本要求的 AIAK 训练加速镜像地址:
Text1registry.baidubce.com/aihc-aiak/aiak-training-llm:ubuntu22.04-cu12.3-torch2.2.0-py310-bccl1.2.7.2_v2.1.1.5_release - 在自定义训练镜像中一键注入 BCCL 软件,详情请参见 BCCL:百度自研高性能集合通信库。
-
- 资源池内 CCE Deep Learning Frameworks Operator 组件版本需不低于 1.6.17。您可以在 AI 计算资源 -> 全托管资源池 -> 资源池名称 -> 计算资源集群(CCE)-> 组件管理 中查询或升级组件版本。
- 资源池已接入百度云 Prometheus 监控服务。接入方式请参见 资源池接入 Prometheus 监控实例。
操作步骤
在 CPROM 实例中配置采集任务
与训练性能监控的采集任务配置一致,如已配置,则可跳过此步骤。
- 登录 百舸 AI 计算平台 AIHC 控制台,在左侧导航栏选择 AI 计算资源 -> 全托管资源池,进入资源池列表页面。
- 单击目标资源池名称,进入资源池详情页面。
- 在 资源详情 区域,单击 关联监控实例(CPROM) 的实例 ID,进入 CPROM 实例详情页面。
- 单击 【采集配置】,进入采集任务配置页面。
- 单击 【创建采集任务】,配置采集任务信息,然后单击 【确认】 完成创建。
YAML
1job_name: "ftagent"
2scheme: http
3scrape_interval: 15s
4honor_timestamps: true
5metrics_path: /metrics
6kubernetes_sd_configs:
7 - role: pod
8relabel_configs:
9 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
10 action: keep
11 regex: true
12 - source_labels: [__meta_kubernetes_pod_label_training_kubeflow_org_operator_name]
13 action: keep
14 regex: "pytorchjob-controller"
15 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
16 action: replace
17 target_label: metrics_path
18 regex: (.+)
19 - source_labels: [__meta_kubernetes_pod_host_ip]
20 action: replace
21 target_label: host_ip
22 regex: (.+)
23 - source_labels: [__meta_kubernetes_pod_node_name]
24 action: replace
25 target_label: node_name
26 regex: (.+)
27 - source_labels: [__meta_kubernetes_namespace]
28 action: replace
29 target_label: namespace
30 - source_labels:
31 [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
32 action: replace
33 regex: ([^:]+)(?::\d+)?;(\d+)
34 replacement: $1:$2
35 target_label: __address__
36 - action: labelmap
37 regex: __meta_kubernetes_pod_label_(.+)
创建训练任务
您需要在百舸控制台,使用包含百舸BCCL软件的训练镜像,创建训练任务。点击查看如何 创建任务。
查看集合通信监控
- 登录 百舸AI计算平台AIHC控制台。
- 左侧菜单栏单击 分布式训练,进入训练任务列表页面
- 选择需要查询的训练任务,单击 监控 > 集合通信带宽监控, 即可查询该任务的集合通信监控大盘
评价此篇文章
