芯片故障指的是NPU出现的基础软件类故障和芯片硬件类故障。断点续训特性中芯片故障的检测和上报由设备管理组件Ascend Device Plugin负责。
NPU上报机制
NPU发生故障时,故障管理框架获取到故障信息,将该信息上传给NPU驱动的故障管理框架,NPU驱动的故障管理框架收集到故障信息后通过DCMI接口上报给Ascend Device Plugin,如图1所示。
Ascend Device Plugin通过DCMI接口获取芯片健康状态。当前提供如下两种获取模式:
- 故障订阅模式。默认开启该模式,Ascend Device Plugin启动时会先调用DCMI故障订阅接口注册监测,故障发生时驱动通过该接口将故障事件上报给Ascend Device Plugin,故障恢复时通过该接口将恢复事件上报给Ascend Device Plugin。
- 故障轮询模式。每隔固定时间通过故障查询接口查询芯片故障状态,当设备驱动不支持订阅能力时将切换该模式。
图1 芯片故障上报
Ascend Device Plugin上报机制
Ascend Device Plugin获取到芯片故障后,通过ConfigMap的形式上报给K8s,Ascend Device Plugin的故障上报机制如下:
图2 上报故障到K8s
对于不同故障处理模式,上报的路径会有一定差别。
- 重调度模式:Ascend Device Plugin获取到芯片故障后,将芯片故障信息写入该节点所属的device-info-cm中,其中字段说明见表1。ClusterD读取每个节点的device-info-cm感知芯片故障并上报给调度器。
- 优雅容错模式:Ascend Device Plugin获取到可恢复的芯片故障后,将芯片故障信息写入该任务所属的reset-info-cm中,业务容器通过将reset-info-cm挂载为文件的形式,读取文件感知芯片故障。
若优雅容错模式处理故障失败,回退至重调度模式后,故障上报的路径则按照重调度模式进行上报。