昇腾社区首页
中文
注册

组件调用流程

断点续训组件调用流程如图1所示。

图1 架构原理
表1 组件说明

名称

类型

功能说明

AI平台

用户提供

通过用户的AI平台在K8s集群中创建训练任务

NodeD

MindX DL提供,已开源

用于上报节点心跳

Ascend Device Plugin

MindX DL提供,已开源

用于芯片的发现与上报,故障检查与上报,执行芯片的热恢复

Volcano

MindX DL提供,已开源

负责正常调度基于芯片的训练任务,检查故障并重调度故障的训练任务

HCCL ControllerAscend Operator

MindX DL提供,HCCL Controller已开源;Ascend Operator未开源

  • HCCL Controller负责生成分布式通信集合配置文件
  • Ascend Operator负责为不同AI框架的分布式训练任务提供相应的环境变量

Ascend Docker Runtime

MindX DL提供,已开源

负责为训练容器挂载芯片、驱动SO等文件

NPU

-

NPU芯片,AI平台中的训练资源

组件调用流程说明

  1. Ascend Device Plugin发现和上报节点或芯片故障、健康状态。
  2. NodeD更新节点心跳,以便Volcano可以准确判断节点故障类型。
  3. Volcano根据Ascend Device Plugin提供的芯片信息,确定芯片是否正常。
  4. Volcano会周期性检查节点、芯片、参数面网络和业务面故障情况,一旦发现故障立即重调度故障任务。

    Volcano可通过3或者4两种方式发现故障,并重调度故障任务。

  5. Volcano按照亲和性规则选择节点和芯片,并调度训练任务到符合要求的节点上。
  6. Ascend Device Plugin根据Pod上Volcano指定的芯片ID来分配芯片,并将芯片IP信息写到容器上。
  7. 容器启动之前,Ascend Docker Runtime为训练容器自动挂载NPU相关设备,驱动so等文件和目录。
  8. HCCL Controller获取训练任务容器上的芯片信息,自动生成分布式训练任务需要的通信集合信息。Ascend Operator将训练任务需要的相关环境变量(如集合通信信息和训练配置信息等)写入容器中。