训练集合通信带宽监控
所有文档
menu

百舸异构计算平台 AIHC

训练集合通信带宽监控

百舸平台支持实时集合通信带宽统计的功能,可以在训练过程中对集合通信性能进行实时观测,准确地展示集合通信在不同阶段的性能表现,为故障诊断排除、训练性能调优等提供数据支撑。本文将介绍如何查询训练过程中的集合通信带宽的监控。

集合通信监控指标是基于百度云高性能集合通信库BCCL实现,需要您的训练任务集成BCCL通信库。

监控指标说明

监控面板 指标 说明
集合通信带宽监控(通信组维度) 集合通信带宽(avg/max) 训练过程中,通信组维度的集合通信带宽平均值/最大值。
集合通信带宽=集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽
单次集合通信数据量 单次集合通信传输的数据量
集合通信带宽监控(GPU维度) 集合通信带宽(avg/max) 训练过程中,通信组中GPU维度的集合通信带宽平均值/最大值。
集合通信带宽=集合通信传输数据量 / 集合通信完成时间,统计的是整个集合通信期间的平均带宽
网络传输带宽(avg/max) 训练过程中,通信组中GPU维度的网络传输带宽平均值/最大值
网络传输带宽=集合通信传输数据量 / 网络传输完成时间。仅统计集合通信期间,网络传输的带宽。
备注:集合通信完成时间=网络传输完成时间+GPU操作&等待时间
单次集合通信数据量 单次集合通信传输的数据量

使用限制

  1. 仅支持 Pytorch 训练框架的任务
  2. 集合通信带宽的监控有以下限制:

    • 暂时不支持机内的集合通信带宽监控

使用前提

  1. 训练任务使用百度云高性能集合通信库BCCL,提供两种使用方式:

    • 使用新版本的AIAK训练加速镜像。要求镜像版本>=v2.1.1.5

      • AIAK镜像中已集成 BCCL 通信库,默认采用 NCCL 通信库,可以通过设置环境变量来开启BCCL,开启方式为:export LD_LIBRARY_PATH=$BCCL_PATH:$LD_LIBRARY_PATH;
      registry.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:百度自研高性能集合通信库
  2. 资源池内 CCE Deep Learning Frameworks Operator 组件版本>=1.6.17。查询组件版本或者升级组件版本,可以通过 百舸资源池详情 > 计算资源集群(CCE) > 组件管理 中操作。
  3. 资源池已经接入百度云Prometheus监控服务。请参考资源池接入Prometheus监控实例

操作步骤

在Cprom中实例中配置采集任务

与训练性能监控的采集任务配置一致,如已经配置,则此步骤忽略

在资源池关联的Cprom监控实例中,配置采集任务。

  1. 登录百舸异构计算平台AIHC控制台
  2. 点击 资源池名称,进入资源池的详情页面。
  3. 在 资源信息中,点击 关联监控实例(CPROM)的实例ID,进入Cprom实例的详情页面。
  4. 单击 采集配置,进入采集任务配置页面。
  5. 点击 创建采集任务,采集任务的详情如下,点击 确认 即完成创建。
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软件的训练镜像,创建训练任务。如何创建任务

查看集合通信监控

  1. 登录百舸异构计算平台AIHC控制台
  2. 左侧菜单栏单击 训练任务,进入训练任务列表页面
  3. 选择需要查询的训练任务,单击 监控 > 集合通信带宽监控,即可查询该任务的集合通信监控大盘
上一篇
训练性能监控
下一篇
训练效果监控Tensorboard
上一篇
训练性能监控
下一篇
训练效果监控Tensorboard