发现原理
NPU的参数面网络故障是指芯片网络相关的故障。每个NPU上均有一张独立的网卡用作参数通信,参数面网络出现故障时,将导致训练任务中断或者训练任务性能较差的问题。当前集群调度组件已支持NPU到交换机断链不恢复和NPU到交换机长时间Linkdown导致重传超时等故障的检测。

参数面网络故障不会直接触发任务重调度,如果需要对参数面网络故障进行故障处理,需要同时开启业务面故障无条件重试能力。当参数面故障导致训练任务异常中断时才触发任务重调度。
芯片网络检测由设备管理组件MindCluster Ascend Device Plugin负责,详细原理如图1所示。
关键步骤说明
- NPU定时检测和网关地址的通信是否正常,探测周期为2.5秒,通过故障管理框架上报结果。
- RoCE驱动实时监测NPU网口Link状态,通过故障管理框架上报Linkdown或Linkup事件。
- MindCluster Ascend Device Plugin通过DCMI接口从故障管理框架获取信息,通过轮询的方式查询网关探测结果,并实时订阅网口Linkdown或Linkup事件。统计网关探测异常持续时间、Linkdown持续时间,如果大于RoCE网络超时时间(默认为30秒、可配置)则标记为NPU网络故障。
NPU上报机制
NPU发生网络故障时,NPU故障管理框架获取到故障信息,将该信息上传给NPU驱动,NPU驱动收集到故障信息后,通过DCMI接口上报给MindCluster Ascend Device Plugin。
MindCluster Ascend Device Plugin通过DCMI接口获取芯片健康状态。当前提供如下两种获取模式:
- 故障订阅模式。默认开启该模式,MindCluster Ascend Device Plugin启动时会先调用DCMI故障订阅接口注册监测,故障发生时驱动通过该接口将故障事件上报给MindCluster Ascend Device Plugin,故障恢复时通过该接口将恢复事件上报给MindCluster Ascend Device Plugin。
- 故障轮询模式。每隔固定时间通过故障查询接口查询芯片故障状态,当设备驱动不支持订阅能力时将切换该模式。
MindCluster Ascend Device Plugin上报机制
MindCluster Ascend Device Plugin获取到芯片网络故障后,通过ConfigMap的形式上报给K8s,MindCluster Ascend Device Plugin的故障上报机制如图2所示。
芯片网络故障通过Device-Info ConfigMap上报,与芯片故障同时上报,写入ConfigMap的不同字段中。芯片网络故障不支持优雅容错模式,因此只需要将故障信息写入Device-Info ConfigMap中即可。
父主题: 参数面网络故障