用于配置保存算子编译生成的调试相关的过程文件的路径,过程文件包括但不限于算子.o(算子二进制文件)、.json(算子描述文件)、.cce等文件。此参数实际对应的options参数为[object Object]。
默认生成在当前路径下。
使用约束:
- 如果要自行指定算子编译的过程文件存放路径,需DEBUG_DIR参数与OP_DEBUG_LEVEL参数配合使用,且当OP_DEBUG_LEVEL取值为0时,不能使用DEBUG_DIR参数。
- 算子编译生成的调试文件存储路径,除DEBUG_DIR参数设置的方式外,还可以配置环境变量ASCEND_WORK_PATH,几种方式优先级为:配置参数“DEBUG_DIR”>环境变量ASCEND_WORK_PATH >默认存储路径。关于环境变量ASCEND_WORK_PATH的详细说明请参见。
配置示例:
产品支持情况:
全量芯片支持。
算子编译debug功能开关。此参数实际对应的options参数为[object Object]。
如果要自行指定算子编译的过程文件存放路径,则需要通过DEBUG_DIR参数指定,OP_DEBUG_LEVEL取值为0时,使用DEBUG_DIR参数不生效。
参数取值:
0:(默认值)不开启算子debug功能,在当前执行路径不生成算子编译目录kernel_meta。
1:开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成*.o(算子二进制文件)、*.json文件(算子描述文件)和TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题。
[object Object]Ascend 950PR/Ascend 950DT不会生成TBE指令映射文件。
[object Object]2:开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成*.o(算子二进制文件)、*.json文件(算子描述文件)和TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题,同时设置为2,还会关闭编译优化开关、开启ccec调试功能(ccec编译器选项设置为-O0-g)。
[object Object]Ascend 950PR/Ascend 950DT不会生成TBE指令映射文件。
[object Object]3:不开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹中生成*.o(算子二进制文件)和*.json文件(算子描述文件),分析算子问题时可参考。
4:不开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成*.o(算子二进制文件)、*.json文件(算子描述文件)、TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json),可在分析算子问题时进行问题复现、精度比对时使用。
Ascend 950PR/Ascend 950DT不会生成TBE指令映射文件和UB融合计算描述文件。
[object Object]
配置示例:
产品支持情况:
全量芯片支持。
Global Memory内存检测功能开关。此参数实际对应的options参数为[object Object]。
参数取值:
取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:
oom:算子执行过程中,检测Global Memory是否内存越界。
配置该选项,算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件)。
使用该选项后,在算子编译过程中会加入如下的检测逻辑,用户可以通过再使用dump_cce参数,在生成的.cce文件中查看如下的代码。
[object Object]
dump_cce:算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留算子cce文件*.cce,以及.o(算子二进制文件)和.json文件(算子描述文件)。
dump_loc:算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留python-cce映射文件*_loc.json,以及.o(算子二进制文件)和.json文件(算子描述文件)。
ccec_O0:算子编译时,开启ccec编译器选项-O0,配置该选项不会对调试信息执行优化操作,用于后续分析AI Core Error问题。
ccec_g:算子编译时,开启ccec编译器选项-g,配置该选项会对调试信息执行优化操作,用于后续分析AI Core Error问题。
check_flag:算子执行时,检测算子内部流水线同步信号是否匹配。
配置该选项,算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件)。
使用该选项后,在算子编译过程中会加入如下的检测逻辑,用户可以通过再使用dump_cce参数,在生成的.cce文件中查看如下的代码。
[object Object]实际执行推理过程中,如果确实存在算子内部流水线同步信号不匹配,则最终会在有问题的算子处超时报错,并终止程序,报错信息示例为:
[object Object]
配置示例:
其中,test0.cfg文件信息为:
使用约束:
算子编译时,如果用户不想编译所有AI Core算子,而是指定某些AI Core算子进行编译,则需要在上述test0.cfg配置文件中新增OP_DEBUG_LIST字段,算子编译时,只编译该列表指定的算子,并按照OP_DEBUG_CONFIG配置的选项进行编译。OP_DEBUG_LIST字段要求如下:
- 支持指定算子名称或者算子类型。
- 算子之间使用英文逗号分隔,若为算子类型,则以OpType::TypeName格式进行配置,支持算子类型和算子名称混合配置。
- 要编译的算子,必须放在OP_DEBUG_CONFIG参数指定的配置文件中。
配置示例如下,test0.cfg文件中增加如下信息:
模型编译时,_GatherV2,ReduceSum_算子按照ccec_g,oom选项进行编译。
[object Object]
产品支持情况:
全量芯片支持。
控制图编译过程是否打屏。此参数实际对应的options参数为[object Object]。
参数取值:
- enable:打屏,默认为enable。
- disable:不打屏。
配置示例:
产品支持情况:
全量芯片支持。
配置图编译过程中是否生成算子融合信息(包括图融合和UB融合)的结果文件fusion_result.json。此参数实际对应的options参数为[object Object]。
该文件用于记录图编译过程中使用的融合规则,而精度比对中的FUSION_SWITCH_FILE参数可以关闭指定的融合规则,关闭的融合规则,不会在fusion_result.json文件中呈现,文件中:
session_and_graph_id_xx_xx:表示融合结果所属线程和图编号。
graph_fusion:表示图融合。
ub_fusion:表示UB融合
[object Object]Ascend 950PR/Ascend 950DT不支持UB融合,不会生成该信息。
[object Object]match_times:表示图编译过程中匹配到的融合规则次数。
effect_times:表示实际生效的次数。
repository_hit_times:优化UB融合知识库命中的次数
[object Object]Ascend 950PR/Ascend 950DT不支持UB融合,不会生成该信息。
[object Object]
参数取值:
- 0:不生成算子融合信息结果文件。
- 1:(默认值)程序运行正常退出时,生成算子融合信息结果文件。
- 2:图编译完成时,生成算子融合信息结果文件。即如果图编译已完成,后续程序提前中断,也会生成算子融合信息结果文件。
[object Object]
配置示例:
产品支持情况:
全量芯片支持。