注意:在收集日志时,需收集本次AI Core Error问题附近时间的日志,旧日志中的不相关信息或其它报错信息可能导致后续msaicerr工具分析AI Core Error问题时报错。
信息类别 |
用途说明 |
---|---|
Host侧应用类日志 |
在Host或Device上运行应用程序产生的调试或运行日志,用于查看用户态代码信息。 |
trace日志 |
查看软件栈的维测信息。 |
算子exception dump文件 |
dump出来的数据包括算子输入、算子数据、workspace数据等,用于后续由msaicerr工具分析问题时构造单算子用例。 |
异常算子编译信息 |
算子.o和.json文件,用于后续由msaicerr工具分析问题时构造单算子用例。 |
Device侧系统类日志 |
包括slog日志、syslog日志、黑匣子等,用于查看Device系统运行信息、驱动内核态信息等。 |
本节在收集AI Core Error信息时,涉及各类日志的获取、环境变量的设置,日志获取路径以默认路径来说明、环境变量设置方法以示例来说明:
注意:如果日志中的时间与发生AI Core Error问题的时间相距较远,则旧日志可能已经被覆盖或清理,这种场景需复跑业务后,再收集故障信息。
场景 |
是否复跑 |
---|---|
依赖PyTorch/MindSpore/TensorFlow框架的业务,例如训练、在线推理等 |
无需复跑业务 系统默认记录定位AI Core Error问题的信息。 |
不依赖或不使用PyTorch/MindSpore/TensorFlow框架的业务,例如离线推理、单算子调用、Ascend Graph等。 |
需复跑业务 用户手动收集部分信息时,需要先设置环境变量、再跑业务,才能收集。例如收集算子exception dump文件时,需要先设置NPU_COLLECT_PATH环境变量。关于NPU_COLLECT_PATH的详细描述请参见“NPU_COLLECT_PATH”。关于手动收集信息的详细描述请参见用户手动收集步骤。 若设置了环境变量NPU_COLLECT_PATH,会导致业务变慢,影响性能,不建议长期开启,定位问题之后建议及时关闭。
说明:
性能敏感、但磁盘资源充足的情况下,后续希望在不复跑业务的情况下自动生成exception dump文件分析AI Core Error问题,可调用AscendCL提供的aclInit接口开启异常算子Dump配置(即lite_exception配置)。该方式下,大部分网络,性能影响在1%以下,但开启后,多次AI Core Error问题生成的dump文件会消耗磁盘空间,用户需自行清理历史dump数据。详细接口说明请参见“aclInit”章节。 |
定位AI Core Error问题时,需提前收集故障信息,支持以下两种方式:
mkdir ${HOME}/aic_err_info
先从以下环境变量指定的目录下获取这部分信息:
若当前环境中未配置对应的环境变量,可从各类信息的默认目录下获取:
# 转换前的dump文件示例 aclnnMatmul_4886226_L0.MatMulCommon.3975510.1717053072064889 # 转换后的npy文件示例 aclnnMatmul_4886226_L0.MatMulCommon.3975510.1717053072064889.input.0.npy aclnnMatmul_4886226_L0.MatMulCommon.3975510.1717053072064889.input.1.npy aclnnMatmul_4886226_L0.MatMulCommon.3975510.1717053072064889.output.0.npy
mv ${HOME}/aic_err_info ${HOME}/aic_err_info_timestamp
mkdir ${HOME}/aic_err_info
# 在ASCEND_WORK_PATH指定的目录下默认生成plog、atrace目录,分别存放Host侧应用类日志、trace日志 export ASCEND_WORK_PATH=${HOME}/aic_err_info # 指定存放Host侧应用类日志的目录,ASCEND_PROCESS_LOG_PATH环境变量存放Host侧应用类日志的优先级更高 export ASCEND_PROCESS_LOG_PATH=${HOME}/aic_err_info/plog # 在NPU_COLLECT_PATH指定的目录下默认生成extra-info目录,其子目录data-dump中存放exception dump文件、子目录ops中存放算子编译信息 export NPU_COLLECT_PATH=${HOME}/aic_err_info/
关于环境变量的详细说明及约束,请参见《环境变量参考》中的以下章节:
此处要先检查下环境变量NPU_COLLECT_PATH指定的路径下是否有算子编译信息(*.o和*.json文件),如果没有,则可先从CANN软件默认安装路径为/usr/local/Ascend/ascend-toolkit下查找,再从默认目录${HOME}/atc_data下查找。具体查找方法请参见手动收集算子编译信息(算子.o和.json文件)。
mv ${HOME}/aic_err_info ${HOME}/aic_err_info_timestamp
asys工具的使用约束请参见asys工具功能及约束,在使用asys工具前需先安装、配置asys工具,请先参见asys工具使用指导(EP模式)处的前提条件说明。
asys collect --output=path
output表示收集信息所存放的目录,详细参数说明及约束请参见故障信息收集。
asys launch --task="sh ../app_run.sh" --output=path
task表示要复跑的任务,output表示收集信息所存放的目录,详细参数说明及约束请参见业务复跑+故障信息收集。
注意:离线推理场景下,若需要重新构建模型(例如通过ATC工具转换模型),需先使用asys launch命令复跑构建模型的任务,再使用重新编译的模型、使用asys launch命令复跑推理业务。另外,还需将构建模型时收集的维测信息与推理时收集的维测信息放到一个目录下,例如:$HOME/asys_output。
使用工具收集信息后,需检查dfx/data-dump目录下是否存在dump文件、异常算子编译信息(算子编译*.o和*.json文件)、检查dfx/log/host/cann目录下是否日志文件,若不存在,则无法使用msaicerr工具提取AI Core Error信息。