配置文件说明
断点续训针对芯片故障,支持按故障级别、故障频率和故障时间的配置进行处理。
- 针对芯片故障的不同级别进行分级处理时,MindCluster Ascend Device Plugin组件会获取到当前故障的故障码,根据faultCode.json中故障码配置的故障级别,对故障进行相应处理。
- 针对芯片故障的故障频率及时长进行处理时,MindCluster Ascend Device Plugin组件会获取到当前故障的故障码,根据faultCustomization.json中故障配置的故障频率和时长,对故障进行相应处理。
faultCode.json和faultCustomization.json为系统配置文件,若用户无特殊需求,请勿随意修改。若用户需要修改故障码对应的故障级别,可以通过由faultCode.json和faultCustomization.json创建的mindx-dl-fault-config文件实现。

- 每个故障对应的故障码可参考《Atlas A2 中心推理和训练硬件 健康管理故障定义》和《Atlas A2 中心推理和训练硬件 黑匣子错误码信息列表》。
- 芯片故障支持配置的故障级别参见故障级别。
- 芯片故障支持配置的故障频率和时长参见初始化配置和故障类型。
故障级别
断点续训针对芯片故障的不同级别进行分级处理。若用户需要修改故障码的故障级别,操作指导请参见(可选)配置芯片故障级别。
MindCluster Ascend Device Plugin从驱动获取到芯片故障码后,将根据故障码对设备及业务的影响将故障划分为以下六种级别,详细说明请参见表1。
故障级别 |
故障类型 |
说明 |
重调度处理 |
优雅容错处理 |
---|---|---|---|---|
L1 |
NotHandleFault |
对业务无影响的故障,无需处理 |
暂不处理 |
暂不处理 |
L2 |
RestartRequest |
影响业务执行,需要重新执行业务请求 |
隔离设备,进行任务重调度 |
推理场景重执行推理请求,训练场景重新执行训练业务 |
L3 |
RestartBusiness |
影响业务执行,需要重新执行业务 |
重新执行业务 |
|
L4 |
FreeRestartNPU |
影响业务执行,待芯片空闲时需复位芯片 |
复位芯片后重新执行业务 |
|
L5 |
RestartNPU |
影响业务执行,需立即复位芯片 |
||
L6 |
SeparateNPU |
无法恢复,需要隔离设备 |
隔离设备,进行任务重调度 |

- 复位芯片前需要停止训练进程,否则复位将失败。
- 若MindCluster Ascend Device Plugin通过订阅的方式收到了无法识别的故障码(未保存在faultCode.json中),默认按照订阅接口给的处理意见进行故障处理。若订阅接口收到的故障等级为“提示”或“次要”,则按照L1级别处理;若故障等级为其他等级,则按照L6级别处理。
故障频率及时长
断点续训针对芯片故障的故障频率及时长进行处理。某些硬件类故障可能在一次训练任务中反复出现,导致训练任务中断反复进行重调度。集群调度组件针对这些故障对应的故障码,提供了提升故障级别的初始化配置文件faultCustomization.json。
- faultCustomization.json文件提供的初始化配置和故障类型关系如初始化配置和故障类型。
- faultCustomization.json文件的默认配置(默认值)如faultCustomization.json参数说明。
- 若用户需要修改故障级别配置,操作指导请参见(可选)配置芯片故障频率及时长。
初始化配置和故障类型
当前faultCustomization.json文件中仅提供对可识别的硬件类故障进行初始化配置。
- 无需处理的故障:该类故障出现不影响训练任务及设备,不提供提升故障级别的初始化配置。
- 无法识别出是硬件还是软件类故障:该类故障无法准确识别是硬件还是软件故障,且会影响训练任务,该类故障不提供提升故障级别的初始化配置。建议用户根据实际情况手动配置任务支持的断点续训最大次数和到达最大次数后故障的处理策略,可以参见(可选)配置芯片故障频率及时长进行配置。
- 软件配置类故障:该类故障为软件配置类问题,正常情况下不会出现。该类故障不提供提升故障级别的初始化配置。建议用户检查软件版本是否配套。
- 可以识别的硬件类故障:提供提升故障级别的初始化配置。
- 24小时内发生2次以下故障,则将芯片故障级别提升至需要人工干预的故障级别ManuallySeparateNPU,详细说明请参见表2。
"80C98000","80B78000","80B58000","80A18008","80A38008","80A58008","80B98000","80B98008","80BB8000", "80BB8008","80BD8000","80BD8008","80C78008","80C98008","80CB8008","80CD8008","80CF8008","80D98008", "80DF8008","80DE1801","80E01801","80E18008","80E38008","80E39200","80E3A202","80E3A203","80E78000", "80E78008","80F18000","80F18008","80F38008","80F78008","81318008","81338008","813B8008","81478008", "81578008","815F8008","81938008","81958008","81978008"
- 24小时内发生3次以下故障,则将芯片故障级别提升至需要人工干预的故障级别ManuallySeparateNPU,详细说明请参见表2。
80E18005
- 24小时内发生2次以下故障,则将芯片故障级别提升至需要人工干预的故障级别ManuallySeparateNPU,详细说明请参见表2。
faultCustomization.json参数说明
用户不手动修改faultCustomization.json文件时,MindCluster Ascend Device Plugin按照faultCustomization.json的默认配置(默认值)进行故障处理。
一级参数名称 |
二级参数名称 |
说明 |
---|---|---|
GraceTolerance |
- |
优雅容错相关配置。 |
- |
WaitFlushingCMTime |
使用优雅容错模式时,等待杀死训练进程以及等待训练容器中同步Reset-Info ConfigMap信息的总时长,单位为秒,取值范围为90~300,默认值为90。 |
- |
WaitDeviceResetTime |
使用优雅容错模式时,等待芯片重启的最大时长,单位为秒,取值范围为60~120,默认值为120。 说明:
5.0.1及以上版本等待芯片重启的最大时长默认值由60修改为120。 |
FaultFrequency |
- |
自定义配置故障频率,即某一故障在时间窗口内出现次数达到次数上限时,会上报一次指定的故障等级。 |
- |
EventId |
故障ID。 |
- |
TimeWindow |
时间窗口,即统计当前时间减去TimeWindow的时间至当前时间,这段时间范围内的故障次数,单位为秒,取值范围为60~864000。 |
- |
Times |
任务支持的断点续训最大次数,即同一个故障出现的次数上限,取值范围为1~100。如果在时间窗口内该故障出现次数大于或等于该值,则按照FaultHandling中定义的策略处理和上报。 说明:
|
- |
FaultHandling |
达到最大次数后故障的处理策略,支持配置L1~L6级别故障的处理策略,同时还支持配置PreSeparateNPU以及ManuallySeparateNPU故障处理策略。 说明:
|
FaultDuration |
- |
自定义配置故障持续时间,当前只支持参数面网络故障。 |
- |
EventId |
只能是故障ID为81078603的参数面网络故障,其他故障类型会被忽略。 |
- |
FaultTimeout |
故障持续时间超过该值,则按照FaultHandling中定义的策略处理和上报,单位为秒,取值范围为1~30,默认值为MindCluster Ascend Device Plugin启动yaml中的linkdownTimeout字段取值。 |
- |
RecoverTimeout |
故障恢复时间超过该值,则上报故障恢复,单位为秒,取值范围为1~60,默认值为60。 |
- |
FaultHandling |
故障处理策略,当前支持的参数面网络故障中,该字段只按照PreSeparateNPU策略处理,其他策略无效且也按照PreSeparateNPU策略处理。 |
注:
|