故障诊断
测试项功能
故障诊断会获取芯片健康信息,同时对芯片进行算力、功耗、带宽等测试并输出测试结果,用以判断当前产品的健康状态。
诊断项名称 |
完成一轮诊断耗时 |
是否影响npu训练或推理 |
使用场景 |
---|---|---|---|
driver驱动健康诊断 |
1~4/s |
否 |
训练或推理业务上线、巡检、npu驱动出现故障。 |
CANN与驱动的兼容性 |
2~7/s |
否 |
训练或推理业务上线。 |
device |
2~4/s |
否 |
训练或推理业务上线、巡检、硬件出现故障。 |
network |
30~70/s |
否 |
训练或推理业务巡检、上线、网络出现故障。 |
bandwidth |
1~5/min |
是 |
训练或推理业务上线。 |
aiflops |
29~40/s |
是 |
训练或推理任务业务上线。 |
片上内存 |
2~4/s |
否 |
训练或推理任务时,NPU芯片出现HBM ECC故障:设备出现0x80E01801故障码。 |
aicore |
7~20/min |
是 |
训练或推理任务巡检、上线时,请执行3次aicore诊断,3轮全部通过表示aicore诊断正常。任意一轮回显为EMERGENCY_WARN即表示芯片故障,需更换硬件。 |
signalQuality |
16~30/s |
否 |
训练或推理任务时,设备出现PCIe、HCCS或RoCE链路报错。 |
prbs码流 |
3~10/s |
是 |
定位RoCE网口信号质量问题。 |
压测项名称 |
完成一轮压测耗时 |
是否影响npu训练或推理 |
使用场景 |
---|---|---|---|
片上内存 |
1~3/h |
是 |
片上内存诊断结果为GENERAL_WARN、PASS或IMPORTANT_WARN。 |
aicore |
15~40/min |
是 |
训练或推理任务时,设备出现aicore error故障。 |
片上内存高危地址 |
≤17min |
是 |
片上内存诊断结果出现单比特或多比特错误。 |
约束与限制
- 片上内存压测、aicore压测、prbs码流诊断、aicore诊断、带宽诊断、算力诊断会影响NPU训练或推理作业,为保证返回检测结果的正确性和准确性,请单独执行以上操作。
- 进行aicore压力测试时,用户请勿在压测结果未返回时重复压测,需在任务执行完成后进行其他测试项。
- aicore诊断完成后请重启设备。
- aicore压测完成后,请进行问题分析和定位后,再重启设备。
- aicore压测需要占用HOST服务器侧约20~40GB的内存,执行命令前请预留足够内存,防止进程异常中断。
- 为确保带宽诊断效果准确性,建议在训练或推理业务开局的时候执行带宽诊断,因为例如CCAE或npu-exporter组件会调用dcmi接口监控环境状态,会占用一定的带宽,导致带宽诊断的结果存在误差。
- 执行prbs打流流程会自动关闭NPU和CDR自适应,多次执行打流命令时会反复开关自适应,当自适应开关动作未完成时,偶现误码数为67092480为正常现象。
- prbs码流诊断支持以下2种打流方式:
- CDR环回打流:单个Device同时发送和接收,可用于检查从NPU的物理serdes端口到CDR单元的信号质量。在打流前,请确保光模块在位,然后再进行CDR环回配置。详细说明请参考:配置CDR环回。
- 光模块外接光纤回路器(自环器)打流:单个Device同时发送和接收,可用于检查NPU的物理serdes端口到光模块的信号质量,不需要设置环回。
仅6.0.RC2.1及以上版本支持码流诊断。
前提条件
- 执行AICore ERROR(以下简称aicore)诊断或aicore压力测试前,需已安装Atlas A2 训练系列产品配套的Ascend HDK 23.0.0及以后版本的MCU、驱动和固件。
- aicore诊断及aicore压力测试依赖CANN 7.0.0及以后版本的开发套件包Ascend-cann-toolkit和Atlas A2 训练系列产品配套的二进制算子包Ascend-cann-kernels,在执行压力测试前需参考环境配置安装所需的软件包,并配置环境变量。
- 在执行network诊断前,需在Host侧以root用户配置RoCE网卡IP地址和子网掩码,然后配置用于网络检测对象IP地址,否则可能导致诊断失败。
测试项参数查询
用户可任选以下指令之一查看故障诊断命令的可用参数。
ascend-dmi --dg -h
ascend-dmi --dg --help
各参数解释如表3所示。
参数 |
说明 |
是否必填 |
---|---|---|
[-dg, --dg, --diagnosis] |
使用该参数进行整卡的故障诊断测试。
|
是 |
[-i, --items] |
指定具体的诊断检查项,包括:
可指定driver、cann、device、network、bandwidth、aiflops、hbm、signalQuality中的一项或多项,多项时各项之间使用“,”分隔,检查项回显状态请参照表4。 |
否 |
[-d, --device] |
指定需要进行诊断测试的Device ID,Device ID是指昇腾芯片的逻辑ID。
|
否 |
[-p, --path] |
指定为CANN的安装路径。指定路径需符合安全要求,且不支持包含通配符“*”。
|
否 |
[-r, --result] |
指定故障诊断结果和信息采集结果的保存路径,如:/test。指定的路径需符合安全要求,且不支持包含通配符“*”。
|
否 |
[-s, --stress] |
使用该参数进行高带宽内存或aicore压力测试。
|
否 |
[--sc,--stress-count] |
指定aicore压测或aicore诊断的次数。
|
否 |
[-st, --st, --stress-time] |
指定高带宽内存压力测试的时间。
|
否 |
[-qs, --qs, --quick stress] |
指定高带宽内存高危地址快速压测的范围。
|
否 |
[-td, --td, --trans-duration] |
指定RoCE端口prbs码流诊断的时长。
|
否 |
不填写-i,-d,-p与-r参数 |
返回所有Device的除aicore外其他检查项的诊断结果。 需注意,-i参数未单独指定aicore时,不会进行AICore ERROR压测/诊断。 |
否 |
[-fmt, --fmt, --format] |
指定输出格式,可以为normal或json。若未指定则默认为normal。 |
否 |
[-q, --quiet] |
指定该参数,将不再进行防呆提示,用户将默认允许该操作。该参数必须与-i参数的bandwidth、aiflops、hbm、aicore一起使用。
说明:
若不指定该参数,在使用bandwidth、aiflops、hbm和aicore测试时将进行防呆提示,用户需要输入Y或N(y或n)确认是否进行测试。 |
否 |
注
|

- ascend-dmi --dg后使用-i,-d等多个二级参数时,可任意指定这些参数的排列顺序,不影响命令结果输出。例如:ascend-dmi --dg -i driver,cann,device -d 0,1 -p /usr/local/Ascend -r /var/log和ascend-dmi --dg -d 0,1 -i driver,cann,device -p /usr/local/Ascend -r /var/log输出结果相同。
- 如果ascend-dmi --dg诊断结果提示“hccn_tool no certificate found”,可参考预置或替换证书套件配置证书。
- 基于安全考虑,为防止结果保存目录权限被修改,用户可将结果保存目录ascend_check的权限设置为700。
使用实例
使用实例中命令的回显在推理服务器与训练服务器类似,截图取自训练服务器。
- 以指定诊断测试项、Device ID和软件包安装路径为例。
ascend-dmi --dg -i driver,cann,device -d 0,1 -p /usr/local/Ascend
- 以指定aicore诊断,且进行aicore压力测试为例:
通过ascend-dmi工具执行aicore压测,可定界是否是硬件导致的aicore error。
- 使用片上内存诊断时,可以按照图1所示,先进行片上内存故障诊断(ascend-dmi -dg -i hbm),若结果为IMPORTANT_WARN,需要先重启设备,再执行高带宽内存压测(ascend-dmi -dg -i hbm -s);其他结果请按流程图说明进行操作。
- 以指定高带宽内存诊断(片上内存),且进行高带宽内存压力测试为例,不跳过交互式防呆提示。
ascend-dmi -dg -i hbm -s -st 60
- 以指定高带宽内存诊断(片上内存),且进行高带宽内存压力测试为例,跳过交互式防呆提示。
ascend-dmi -dg -i hbm -s -st 60 -q
- 以指定高带宽内存诊断(片上内存),且进行高带宽内存压力测试为例,不跳过交互式防呆提示。
故障检查项说明
类型 |
检查项 |
回显状态 |
含义 |
---|---|---|---|
硬件类 |
driver |
HEALTH |
驱动固件安装正常,并且驱动状态为健康 |
FAIL |
|
||
GENERAL_WARN |
一般警告(警告内容参考界面中提示的错误信息) |
||
IMPORTANT_WARN |
重要警告(警告内容参考界面中提示的错误信息) |
||
EMERGENCY_WARN |
紧急警告(警告内容参考界面中提示的错误信息) |
||
device |
SKIP |
当前产品形态不支持该项检测 |
|
HEALTH |
device检测结果健康 |
||
FAIL |
device检测结果失败 |
||
GENERAL_WARN |
一般警告(警告内容参考界面中提示的错误信息) |
||
IMPORTANT_WARN |
重要警告(警告内容参考界面中提示的错误信息) |
||
EMERGENCY_WARN |
紧急警告(警告内容参考界面中提示的错误信息) |
||
network |
SKIP |
当前产品形态不支持该项检测 |
|
FAIL |
网络检测结果失败 |
||
WARN |
网络检测结果告警 |
||
PASS |
网络检测结果健康 |
||
INFO |
网络检测结果提示 |
||
aiflops |
FAIL |
|
|
PASS |
算力测试结果正常(大于参考值) |
||
bandwidth |
FAIL |
|
|
PASS |
带宽测试结果正常 |
||
片上内存诊断 |
PASS |
片上内存检测通过,无异常。 |
|
FAIL |
|
||
SKIP |
当前硬件形态不支持片上内存检测。 |
||
GENERAL_WARN |
历史多比特存在隔离页,告警NPU芯片健康管理故障码为0x80E18401,可以继续使用。 |
||
IMPORTANT_WARN |
当前实时隔离页数与已隔离页数存在差异,必须进行重启,复位npu芯片。 |
||
EMERGENCY_WARN |
|
||
片上内存压测 |
PASS |
片上内存压测通过。 |
|
FAIL |
片上内存压测失败,有新增的多比特隔离页。更多说明详见图1 片上内存诊断。 |
||
片上内存高危地址压测 |
FAIL |
高带宽内存高危地址快速压测失败,有新增隔离页数。 |
|
PASS |
高带宽内存高危地址快速压测通过,无新增隔离页数。 |
||
aicore诊断 |
FAIL |
|
|
PASS |
诊断结果无异常。 |
||
SKIP |
|
||
EMERGENCY_WARN |
紧急警告,压测结果为不通过,建议更换硬件。 |
||
aicore压测 |
FAIL |
aicore压测执行失败,请联系华为工程师处理。 |
|
PASS |
压力测试结果无异常。 |
||
EMERGENCY_WARN |
紧急警告、压力测试失败,请更换硬件。 |
||
SKIP |
|
||
signalQuality |
FAIL |
检测失败,PCIe、HCCS和RoCE(其中的一项或多项)链接有异常。 |
|
PASS |
检测通过,NPU上PCIe、HCCS和RoCE通信端口的信号质量正常。 |
||
prbs码流诊断 |
FAIL |
码流检测通过。RoCE端口信号质量正常(误码率小于10-5)。 |
|
PASS |
码流检测失败。RoCE端口存在误码,且误码率大于10-5。 |
||
软件类 |
cann |
FAIL |
|
PASS |
cann软件检测正常 |