昇腾社区首页
中文
注册
开发者
下载

自定义芯片故障

faultCode.json中的故障级别

断点续训针对芯片故障的不同级别进行分级处理。若用户需要修改故障码的故障级别,操作指导请参见(可选)配置芯片故障级别

Ascend Device Plugin从驱动获取到芯片故障码后,将根据故障码对设备及业务的影响将故障划分为以下几种级别,详细说明请参见表1

表1 故障级别及处理说明

故障处理策略

说明

重调度处理

优雅容错处理

NotHandleFault

对业务无影响的故障,无需处理。

暂不处理

暂不处理

RestartRequest

影响业务执行,需要重新执行业务请求。

隔离芯片,进行任务重调度

说明:

若推理任务订阅故障信息,任务使用的推理卡上发生RestartRequest故障且故障持续时间未超过60秒,则不执行任务重调度;若故障持续时间超过60秒仍未恢复,则隔离芯片,进行任务重调度。

推理场景重执行推理请求,训练场景重新执行训练业务

RestartBusiness

影响业务执行,需要重新执行业务。

重新执行业务

FreeRestartNPU

影响业务执行,待芯片空闲时需复位芯片。

等待芯片空闲后复位芯片

RestartNPU

影响业务执行,需立即复位芯片。

立即停止训练业务,复位芯片后重新执行业务

SeparateNPU

无法恢复,需要隔离芯片。

隔离芯片,进行任务重调度

PreSeparateNPU

暂不影响业务,后续不再调度任务到该芯片。

预隔离芯片

预隔离芯片

SubHealthFault

根据任务YAML中配置的subHealthyStrategy参数取值进行处理,详细请参见表1

当芯片出现亚健康故障时,需根据配置yaml策略进行处理。

说明:

如果后续芯片出现其他级别故障,此时SubHealthFault

处理策略不影响其他级别的故障处理。

根据策略进行处理

faultCustomization.json参数说明

用户不手动修改faultCustomization.json文件时,Ascend Device Plugin按照faultCustomization.json的默认配置(默认值)进行故障处理。

表2 faultCustomization.json文件参数说明

一级参数名称

二级参数名称

说明

GraceTolerance

-

优雅容错相关配置。

说明:

GraceTolerance及其子参数不存在或者超出取值范围,则使用默认值。

-

WaitProcessReadCMTime

使用优雅容错模式时,等待管理进程读取ConfigMap文件的时间,单位为秒,取值范围为5~90,默认值为30。

-

WaitDeviceResetTime

使用优雅容错模式时,等待芯片重启的最大时长,单位为秒,取值范围为60~180,默认值为150。

-

WaitFaultSelfHealingTime

使用优雅容错模式时,等待RestartBusiness级别故障恢复时间,单位为秒,取值范围为1~30,默认值为15。

FaultFrequency

-

自定义故障频率,即某一故障在时间窗口内出现次数达到次数上限时,根据配置的故障处理策略进行处理。

说明:
  • FaultFrequency及其子参数取值范围不正确,则忽略该条配置。
  • FaultFrequency及其子参数数据格式不正确,则会使用默认配置。

-

EventId

故障码ID。

说明:

每个故障码(EventId)只允许配置一个FaultFrequency参数,如果配置了多个,则只有第一条正确的会生效。

-

TimeWindow

时间窗口,即统计当前时间减去TimeWindow的时间至当前时间,这段时间范围内的故障次数,单位为秒,取值范围为60~864000。

-

Times

任务支持的断点续训最大次数,即同一个故障出现的次数上限,取值范围为1~100。如果在时间窗口内该故障出现次数大于或等于该值,则按照FaultHandling中定义的策略处理和上报。

-

FaultHandling

达到断点续训最大次数后故障的处理策略,支持配置不同级别的故障处理策略,同时还支持配置PreSeparateNPU以及ManuallySeparateNPU故障处理策略。

说明:
  • PreSeparateNPU:大模型的故障处理策略。该故障处理模式为预隔离芯片,根据训练任务实际运行情况判断是否重调度。
  • ManuallySeparateNPU:需人工干预的故障处理策略。
    • 出现该策略时,将直接上报K8s该芯片不健康并将芯片名字写入device-info-cm
    • 芯片名称只要保存于该字段中,即使故障恢复也仍然隔离芯片,直到运维人员手动在该字段中删除芯片名称。
    • 该字段只允许Ascend Device Plugin新增或修改,维护人员只能删除该字段中的芯片名称。
    • faultCode.json暂不支持该策略。

FaultDuration

-

自定义故障超时策略,当某一故障持续时间达到配置上限时,该故障会按照指定的故障处理策略进行处理。

说明:
  • FaultDuration及其子参数取值范围不正确,则忽略该条配置。
  • FaultDuration及其子参数数据格式不正确,则会使用默认配置。

-

EventId

故障ID。

说明:

每个故障码(EventId)只允许配置一个FaultDuration参数,如果配置了多个,则只有第一条正确的会生效。

-

FaultTimeout

故障持续时间超过该值,则按照FaultHandling中定义的故障处理策略进行处理,单位为秒,取值范围为0~600,默认值说明如下。
  • 故障ID为81078603的参数面网络故障默认值为20。
  • 故障ID为80E01801的片上内存多Bit故障默认值为30。
  • 其余故障默认值为0。

-

RecoverTimeout

故障恢复时间超过该值,则上报故障恢复,单位为秒,取值范围为0~86400,默认值说明如下。
  • 故障ID为81078603的参数面网络故障默认值为60。不建议设置为0,建议大于listWatchPeriod健康状态检查周期。关于listWatchPeriod的详细说明请参见表3
  • 其余故障默认值为0。

-

FaultHandling

超过故障持续时间后的故障处理策略,支持配置不同级别的故障处理策略,同时还支持配置PreSeparateNPU故障处理策略。

说明:

超过故障持续时间后的故障处理策略,建议高于故障本身的故障处理策略,否则配置不生效。

  • 如果一个故障码同时配置了故障频率(FaultFrequency)和故障超时策略(FaultDuration),该故障码在TimeWindow时间窗口中超时次数达到任务支持的最大次数,则采用以下三者中最严重的等级进行处理。这三者分别为:故障本身的故障处理策略、FaultFrequency和FaultDuration中配置的故障处理策略。
  • 如果一个故障码同时配置了故障频率和故障超时策略,只有当故障超时后,故障频次才会增加一次。
  • 故障ID为81078603的网络故障只支持配置为NotHandleFault、PreSeparateNPU或SeparateNPU三种故障处理策略,若配置为其他策略则使用默认配置NotHandleFault。