断点续训基于故障检测能力获取集群和训练业务的故障状态,根据检测结果进行故障处理。当前,断点续训特性主要提供以下几个方面的故障检测能力:昇腾硬件故障、训练业务故障、其他故障发送方的故障。
MindCluster集群调度组件Ascend Device Plugin提供NPU芯片故障检测能力及NPU参数面网络故障检测能力,NodeD提供服务器节点故障、总线设备网络故障检测能力,ClusterD提供公共故障检测能力,Volcano提供业务面容器异常检测能力,故障检测整体架构如下图所示。
当前已支持200+故障的检测。支持的故障类型请参见表1,详细的故障说明请参见典型故障.xlsx。
故障类型 |
故障说明 |
---|---|
节点故障 |
包括节点健康状态和节点硬件故障。 说明:
若节点的硬件故障导致节点宕机或重启,则NodeD无法检测到具体的故障类型并上报。 |
芯片故障 |
DCMI接口上报的芯片故障和设备网络探测工具hccn_tool检测到的芯片网络故障。故障码说明请参见芯片故障码参考文档。 |
参数面网络故障 |
包括芯片网络相关故障和总线设备故障。
|
业务面故障 |
训练任务异常退出,导致Pod的Status变为Failed状态。 说明:
可执行kubectl describe pod {pod名称} -n {NAMESPACE} |grep Status:命令,查看当前Pod的Status是否为Failed状态。回显示例如下:
Status: Failed |
公共故障 |
公共故障指的是其他故障发现者(非MindCluster组件)提供的故障,公共故障包括以下几种类型:NPU故障、节点故障、网络故障和存储故障。 |
总线设备网络故障 |
总线设备网络故障是针对超节点内部(包括节点内和节点间)的HCCS网络提供的NPU网络故障检测。 |
性能劣化故障 |
MindCluster结合MindStudio提供的profiling能力对集群中的性能劣化故障(慢节点)提供诊断功能。该功能提供动态使能打点和打点数据持久化功能、可动态启停,无需重启任务进行诊断,对训练无损耗。 |
也可以将节点上/user/restore/reset/<job-namespace>.<job-name>替代ConfigMap,挂载到容器的“/user/restore/reset/config”路径下。该ConfigMap文件字段说明,请参见表3。