训练集合通信带宽监控
百舸平台支持实时集合通信带宽统计的功能,可以在训练过程中对集合通信性能进行实时观测,准确地展示集合通信在不同阶段的性能表现,为故障诊断排除、训练性能调优等提供数据支撑。本文将介绍如何查询训练过程中的集合通信带宽的监控。
集合通信监控指标是基于百度云高性能集合通信库BCCL实现,需要您的训练任务集成BCCL通信库。
监控指标说明
监控面板 |
指标 |
说明 |
集合通信带宽监控(通信组维度) |
集合通信带宽(avg/max) |
训练过程中,通信组维度的集合通信带宽平均值/最大值。 集合通信带宽=集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽 |
单次集合通信数据量 |
单次集合通信传输的数据量 |
集合通信带宽监控(GPU维度) |
集合通信带宽(avg/max) |
训练过程中,通信组中GPU维度的集合通信带宽平均值/最大值。 集合通信带宽=集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽 |
网络传输带宽(avg/max) |
训练过程中,通信组中GPU维度的网络传输带宽平均值/最大值 网络传输带宽=集合通信传输数据量 / 网络传输完成时间。仅统计集合通信期间,网络传输的带宽。 备注:集合通信完成时间=网络传输完成时间+GPU操作&等待时间
|
单次集合通信数据量 |
单次集合通信传输的数据量 |
使用限制
- 仅支持 Pytorch 训练框架的任务
-
集合通信带宽的监控有以下限制:
使用前提
-
训练任务使用百度云高性能集合通信库BCCL,提供两种使用方式:
- 资源池内 CCE Deep Learning Frameworks Operator 组件版本>=1.6.17。查询组件版本或者升级组件版本,可以通过 百舸资源池详情 > 计算资源集群(CCE) > 组件管理 中操作。
- 资源池已经接入百度云Prometheus监控服务。请参考资源池接入Prometheus监控实例。
操作步骤
在Cprom中实例中配置采集任务
与训练性能监控的采集任务配置一致,如已经配置,则此步骤忽略
在资源池关联的Cprom监控实例中,配置采集任务。
- 登录百舸异构计算平台AIHC控制台。
- 进入资源池列表页,点击 资源池名称,进入资源池的详情页面。
- 在 资源详情 中,点击 关联监控实例(CPROM)的实例ID,进入Cprom实例的详情页面。
- 单击 采集配置,进入采集任务配置页面。
- 点击 创建采集任务,采集任务的详情如下,点击 确认 即完成创建。
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软件的训练镜像,创建训练任务。点击查看如何创建任务。
查看集合通信监控
- 登录百舸异构计算平台AIHC控制台。
- 左侧菜单栏单击 分布式训练,进入训练任务列表页面
- 选择需要查询的训练任务,单击 监控 > 集合通信带宽监控,即可查询该任务的集合通信监控大盘