--op_debug_level
功能说明
TBE算子编译debug功能开关。
关联参数
如果要自行指定算子编译的过程文件存放路径,则需要通过--debug_dir参数指定,--op_debug_level取值为0时,使用--debug_dir参数不生效。
参数取值
参数值:
- 0:不开启算子debug功能,在执行atc命令当前路径不生成算子编译目录kernel_meta。
- 1:开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题。
- 2:开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题,同时设置为2,还会关闭编译优化开关、开启ccec调试功能(ccec编译器选项设置为-O0-g)。
- 3:不开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹中生成.o(算子二进制文件)和.json文件(算子描述文件),分析算子问题时可参考。
- 4:不开启算子debug功能,在执行atc命令的目录下,生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)和.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json),可在分析算子问题时进行问题复现、精度比对时使用。
参数默认值:0
参数值约束:进行模型转换时,建议配置为0、3或4。如果需要定位AICore Error问题,则需要将参数值设置为1或2。设置为1或2后,由于加入了调试功能,会导致网络性能下降。
配置为2(即开启ccec编译选项)时,会导致算子Kernel(*.o文件)大小增大。动态Shape场景下,由于算子编译时会遍历可能的Shape场景,因此可能会导致算子Kernel文件过大而无法进行编译,此种场景下,建议不要配置ccec编译选项。
由于算子Kernel文件过大而无法编译的报错日志示例如下:
message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o
推荐配置及收益
无。
示例
--op_debug_level=1
支持的芯片型号
Atlas 200/300/500 推理产品
Atlas 推理系列产品(Ascend 310P处理器)
Atlas 训练系列产品
Atlas A2训练系列产品
使用约束
该参数优先级高于算子编译接口(TBE DSL的build接口或者TBE TIK的BuildCCE接口)中的tbe_debug_level的值。
父主题: 算子调优选项