(可选)优雅容错

当用户进行没有备用资源的训练任务,或者期望设备自动恢复时,可以选择使用优雅容错功能。即当训练时的芯片设备出现故障后,系统将尝试对故障芯片进行自动恢复,如果可以恢复,则在保持Pod运行状态下,将任务原地拉起继续训练,不能恢复则回退至重调度模式

优雅容错功能无需进行资源调度,即可自动将故障设备恢复。但是它无法降低训练初始化中的恢复时间,通常情况下,优雅容错所需恢复时间大于进程级重调度和进程级在线恢复功能。

使用约束

支持的产品型号和AI框架

表1 优雅容错支持的产品和框架

产品系列

产品名称

训练框架

Atlas 训练系列产品

  • Atlas 800 训练服务器(型号 9000)
  • Atlas 800 训练服务器(型号 9010)
  • MindSpore
  • PyTorch

Atlas A2 训练系列产品

  • Atlas 800T A2 训练服务器
  • Atlas 900 A2 PoD 集群基础单元
  • MindSpore
  • PyTorch

Atlas A3 训练系列产品

  • Atlas 900 A3 SuperPoD 超节点
  • Atlas 800T A3 超节点服务器
  • MindSpore
  • PyTorch

优雅容错原理

在节点或芯片故障处理过程中,若使用重调度模式,需要运维人员手动恢复设备。若任务恢复不及时可能导致训练集群中出现大量散点故障,降低集群算力利用率。因此,断点续训在重调度模式上增加了优雅容错功能,用于优化NPU芯片的部分故障容错能力。

NPU芯片故障中的部分故障可以通过退出芯片上的训练进程以及热复位芯片来恢复,优雅容错功能即针对这部分故障进行恢复处理,不需要重调度任务。

Ascend Device Plugin负责故障的上报以及设备的恢复,管理进程根据Ascend Device Plugin上报的信息进行训练进程的停止与重新拉起,完成故障恢复(不能恢复则回退至重调度模式)。集成优雅容错模式需要在业务容器中添加管理进程,管理进程需要具备故障感知、停止训练任务和重启训练任务等能力。

优雅容错模式直接将故障上报到业务容器内的管理进程中(通常通过挂载文件的方式),容器内的管理进程读取故障文件信息获取到故障信息,获取故障信息的流程如图1所示。

图1 获取故障信息

优雅容错模式将故障区分为以下四类,无需处理重新执行业务需要复位芯片需要重调度,对于每类故障的处理如图2所示。

图2 优雅容错故障处理流程