手动收集算子编译信息(算子.o和.json文件)

先从CANN软件安装路径下查找算子.json和.o文件,CANN软件默认安装路径为/usr/local/Ascend/ascend-toolkit,如果找不到,再从缓存目录下查找,默认为${HOME}/atc_data目录,如果配置了ASCEND_CACHE_PATH环境变量,则从该环境变量配置的路径下查找。关于环境变量的详细说明及约束,请参见环境变量参考

查找算子.json文件时,以日志中的kernel_name为关键字,但如果kernel_name中包含_mix_aic或_mix_aiv,在搜索时需剔除_mix_aic或_mix_aiv,例如kernel_name为xxx_mix_aic_kernel0,在搜索时需使用xxx_kernel0关键字来搜索;再例如kernel_name为xxx_tilingkey_mix_aic,在搜索时需以关键字xxx_tilingkey来搜索。查找命令示例如下,在/usr/local/Ascend/ascend-toolkit目录下查找:

# 剔除_mix_aic或_mix_aiv,其中xxxxxx需替换为实际的kernel_name
kernel_name=xxxxxx
kernel_name=$(echo $kernel_name | sed 's/_mix_aic//g' | sed 's/_mix_aiv//g' )
# 找到对应的json文件
find /usr/local/Ascend/ascend-toolkit -name "*.json"|xargs grep -rn $kernel_name

# 将对应的.json文件拷贝到aic_err_info目录中
cp  xxxxxx.json aic_err_info/

查找算子.o文件时,以算子.json文件中的binFileName字段值(该值为.o文件名)为关键字搜索。查找命令示例如下,在/usr/local/Ascend/ascend-toolkit目录下查找:

# 在json文件中查看"binFileName":xxxxxx获取到.o文件名
find /usr/local/Ascend/ascend-toolkit -name xxxxxx.o

# 将对应的.o文件拷贝到aic_err_info目录中
cp  xxxxxx.o aic_err_info/