--op_debug_config
功能说明
使能Global Memory(DDR)内存检测功能的配置文件路径及文件名。
关联参数
无。
参数取值
参数值:配置文件路径及文件名。
参数值格式:路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。
参数值约束:
配置文件中支持配置如下选项,多个选项使用英文逗号分隔。
- oom:在算子执行过程中,检测Global Memory是否内存越界。
如果使用了该选项,在生成的om模型文件中会加入如下的检测逻辑,用户可以通过再使用dump_cce参数,在生成的.cce文件中查看如下的代码。
inline __aicore__ void CheckInvalidAccessOfDDR(xxx) { if (access_offset < 0 || access_offset + access_extent > ddr_size) { if (read_or_write == 1) { trap(0X5A5A0001); } else { trap(0X5A5A0002); } } }
实际执行推理过程中,如果确实内存越界,会抛出“EZ9999”错误码。
- dump_bin:算子编译时,在执行atc命令当前路径算子编译生成的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件)。
- dump_cce:算子编译时,在执行atc命令当前路径算子编译生成的kernel_meta文件夹中保留算子cce文件*.cce。
- dump_loc:算子编译时,在执行atc命令当前路径算子编译生成的kernel_meta文件夹中保留python-cce映射文件*_loc.json。
- ccec_O0:算子编译时,开启ccec编译器选项-O0,配置该选项不会对调试信息执行优化操作,用于后续分析AICore Error问题。
- ccec_g:算子编译时,开启ccec编译器选项-g,配置该选项会对调试信息执行优化操作,用于后续分析AICore Error问题。
配置ccec编译选项(即ccec_O0、ccec_g选项)时,会导致算子Kernel(*.o文件)大小增大。动态Shape场景下,由于算子编译时会遍历可能的Shape场景,因此可能会导致算子Kernel文件过大而无法进行编译,此种场景下,建议不要配置ccec编译选项。
由于算子Kernel文件过大而无法编译的报错日志示例如下:
message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o:
推荐配置及收益
无。
示例
假设使能Global Memory内存检测功能的配置文件名称为gm_debug.cfg,文件内容配置示例如下:
op_debug_config=ccec_O0,ccec_g,oom
将该文件上传到ATC工具所在服务器,例如上传到$HOME/module,使用示例如下:
--op_debug_config=$HOME/module/gm_debug.cfg
支持的芯片型号
昇腾310B AI处理器
使用约束
无。
父主题: 调试选项