--op_debug_level
功能说明
算子debug功能开关。
关联参数
如果要自行指定算子编译的过程文件存放路径,需--op_debug_level与--debug_dir配合使用,且当--op_debug_level取值为0时,不能使用--debug_dir参数。
参数取值
参数值:
- 0:不开启算子debug功能,在当前执行路径不生成算子编译目录kernel_meta。默认为0。
- 1:开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题。
- 2:开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题,同时设置为2,还会关闭编译优化开关、开启ccec调试功能(ccec编译器选项设置为-O0-g)。
- 3:不开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹中生成.o(算子二进制文件)和.json文件(算子描述文件),分析算子问题时可参考。
- 4:不开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)和.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json),可在分析算子问题时进行问题复现、精度比对时使用。
参数值约束:
- 进行模型转换时,建议配置为0、3或4。如果需要定位AICore Error问题,则需要将参数值设置为1或2。设置为1或2后,由于加入了调试功能,会导致网络性能下降。
- 若--op_debug_level配置为0,同时配置了--op_debug_config参数,该场景下在执行atc命令当前路径会保留算子编译目录kernel_meta。
- 若--op_debug_level配置为0,同时设置了NPU_COLLECT_PATH环境变量,则会始终保留编译目录kernel_meta;若设置了ASCEND_WORK_PATH环境变量,则保留在该环境变量指定路径下,若无ASCEND_WORK_PATH环境变量,则保留在当前执行路径。
配置为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 推理系列产品
Atlas 训练系列产品
Atlas 200/500 A2推理产品
Atlas A2训练系列产品/Atlas 800I A2推理产品
使用约束
- 算子编译生成的调试文件存储路径,除--debug_dir参数设置的方式外,还可以配置环境变量ASCEND_WORK_PATH,几种方式优先级为:配置参数“--debug_dir”>环境变量ASCEND_WORK_PATH >默认存储路径。
- 该参数优先级高于算子编译接口(TBE DSL的build接口或者TBE TIK的BuildCCE接口)中的tbe_debug_level的值。
父主题: 调试选项