训练集合通信带宽监控
百舸平台支持实时集合通信带宽统计的功能,可以在训练过程中对集合通信性能进行实时观测,准确地展示集合通信在不同阶段的性能表现,为故障诊断排除、训练性能调优等提供数据支撑。本文将介绍如何查询训练过程中的集合通信带宽的监控。
集合通信监控指标是基于百度云高性能集合通信库BCCL实现,需要您的训练任务集成BCCL通信库。
监控指标说明
监控面板 |
指标 |
说明 |
集合通信带宽监控(通信组维度) |
集合通信带宽(avg/max) |
训练过程中,通信组维度的集合通信带宽平均值/最大值。 集合通信带宽=集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽 |
单次集合通信数据量 |
单次集合通信传输的数据量 |
集合通信带宽监控(GPU维度) |
集合通信带宽(avg/max) |
训练过程中,通信组中GPU维度的集合通信带宽平均值/最大值。 集合通信带宽=集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽 |
网络传输带宽(avg/max) |
训练过程中,通信组中GPU维度的网络传输带宽平均值/最大值 网络传输带宽=集合通信传输数据量 / 网络传输完成时间。仅统计集合通信期间,网络传输的带宽。 备注:集合通信完成时间=网络传输完成时间+GPU操作&等待时间
|
单次集合通信数据量 |
单次集合通信传输的数据量 |
使用限制
当前集合通信带宽的监控有以下限制:
- 暂不支持PP通信组集合通信带宽监控
- 暂时不支持机内的集合通信带宽监控
使用前提
-
训练任务使用百度云高性能集合通信库BCCL,提供两种使用方式:
- 使用新版本的AIAK训练加速镜像,默认已经集成BCCL软件。要求镜像版本>=v1.2.7.3.
A800 : registry.baidubce.com/aihc-aiak/aiak-megatron:ubuntu20.04-cu11.8-torch1.14.0-py38-bccl1.2.2.1_v1.2.7.3_release
H800 : registry.baidubce.com/aihc-aiak/aiak-megatron:ubuntu22.04-cu12.2-torch2.1.0-py310-bccl1.2.2.1_v1.2.7.3_release
- 通过BCCL的安装包集成。您可以在自定义的训练镜像中安装BCCL软件,详见安装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:
34. role: pod
relabel_configs:
36. source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
39. source_labels: [__meta_kubernetes_pod_label_training_kubeflow_org_operator_name]
action: keep
regex: "pytorchjob-controller"
42. source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: metrics_path
regex: (.+)
46. source_labels: [__meta_kubernetes_pod_host_ip]
action: replace
target_label: host_ip
regex: (.+)
50. source_labels: [__meta_kubernetes_pod_node_name]
action: replace
target_label: node_name
regex: (.+)
54. source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: namespace
57. source_labels:
[__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
63. action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
创建训练任务
您需要在百舸控制台,使用包含百舸BCCL软件的训练镜像,创建训练任务。如何创建任务。
查看集合通信监控
- 登录百舸异构计算平台AIHC控制台。
- 左侧菜单栏单击 训练任务,进入训练任务列表页面
- 选择需要查询的训练任务,单击 监控 > 集合通信带宽监控,即可查询该任务的集合通信监控大盘