训练集合通信带宽监控
百舸平台支持实时集合通信带宽统计的功能,可以在训练过程中对集合通信性能进行实时观测,准确地展示集合通信在不同阶段的性能表现,为故障诊断排除、训练性能调优等提供数据支撑。本文将介绍如何查询训练过程中的集合通信带宽的监控。
集合通信监控指标是基于百度云高性能集合通信库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实例的详情页面。
- 单击 采集配置,进入采集任务配置页面。
- 点击 创建采集任务,采集任务的详情如下,点击 确认 即完成创建。
job_name: "ftagent"
scheme: http
scrape_interval: 15s
honor_timestamps: true
metrics_path: /metrics
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_label_training_kubeflow_org_operator_name]
action: keep
regex: "pytorchjob-controller"
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: metrics_path
regex: (.+)
- source_labels: [__meta_kubernetes_pod_host_ip]
action: replace
target_label: host_ip
regex: (.+)
- source_labels: [__meta_kubernetes_pod_node_name]
action: replace
target_label: node_name
regex: (.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
- source_labels:
[__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
创建训练任务
您需要在百舸控制台,使用包含百舸BCCL软件的训练镜像,创建训练任务。如何创建任务。
查看集合通信监控
- 登录百舸异构计算平台AIHC控制台。
- 左侧菜单栏单击 训练任务,进入训练任务列表页面
- 选择需要查询的训练任务,单击 监控 > 集合通信带宽监控,即可查询该任务的集合通信监控大盘