执行业务时,若日志文件或屏幕打印信息中包含如下AI Core Error报错,此时,需要先使用故障信息收集工具asys收集故障信息,再配合使用AI Core Error分析工具msaicerr快速定位AI Core error问题的关键原因,提升开发者对AI Core Error的排查效率。
# 报错示例 there is an xx aicore error # 或报错示例 there is an xx aivec error
已在CANN运行环境上安装toolkit包。详细安装请参见《CANN 软件安装指南》。
已配置CANN基础环境变量,需要以安装时的运行用户登录环境,执行source ${install_path}/set_env.sh命令设置环境变量,其中${install_path}为软件包的安装目录,例如:/usr/local/Ascend/ascend-toolkit。
在使用msaicerr工具前,在“${install_path}/latest/toolkit/tools/msaicerr”目录下获取msaicerr.py。
集群场景下不支持直接使用asys工具一键收集所有节点的故障信息,需要先确认报错节点后,在对应的报错节点上使用asys工具收集故障信息。
若不涉及业务复跑,则可以执行asys collect命令,直接收集故障信息;若涉及业务复跑,则可以执行asys launch命令,同时执行业务复跑和收集故障信息。命令示例如下:
asys collect --output=$HOME/asys_output
output表示收集信息所存放的目录,详细参数说明及约束请参见故障信息收集。
asys launch --task="sh ../app_run.sh" --output=$HOME/asys_output
task表示要复跑的任务,output表示收集信息所存放的目录,详细参数说明及约束请参见业务复跑+故障信息收集。
注意:离线推理场景下,若需要重新构建模型(例如通过ATC工具转换模型),需先使用asys launch命令复跑构建模型的任务,再使用重新编译的模型、使用asys launch命令复跑推理业务。另外,还需将构建模型时收集的维测信息与推理时收集的维测信息放到一个目录下,例如此处是都放到$HOME/asys_output目录。
进入“${Toolkit包安装路径}/tools/msaicerr”目录,根据2中获取到故障信息,执行以下命令提取AI Core Error问题相关的关键信息。
python3 msaicerr.py -p $HOME/asys_output -out $HOME/result
以上命令示例中,通过-p参数指定存放故障信息的目录,例如此处为$HOME/asys_output;通过-out参数指定解析结果文件的存放路径,例如此处为$HOME/result,如果不指定,则解析结果默认存放在执行命令的当前路径下。
注意:不能进入-p参数指定的目录或子目录下执行msaicerr工具,例如此处不能进入到$HOME/asys_output目录或其子目录中执行msaicerr工具;-out参数指定的目录也不能为-p参数指定的目录或子目录。否则,会出现工具解析卡住或失败的情况。
另外,可以使用命令python3 msaicerr.py -h,查看具体参数的含义。
执行命令成功后,在执行命令的同级目录下生成“info_{时间戳}/aicerror_{number}_{时间戳}/info.txt”文件以及异常算子测试文件test_single_op.py(该文件仅在有异常算子时才存在)。
用户可以直接通过info.txt文件进行问题分析和定位,重点关注Root cause conclusion处包含的关键信息。还可以执行python3 test_single_op.py进一步查看异常算子执行过程中的报错信息,便于分析异常算子的报错原因。
info.txt文件示例及各类问题的分析方法请参见使用msaicerr工具分析AI Core Error问题。若故障信息中存在多个AI Core Error问题,则msaicerr工具按日志时间解析第一次出现的AI Core Error问题。