---
title: --op_debug_config
description: "调试配置文件的路径及文件名。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/opcompiletool/atlasop_compiler_07_0026.html
sourcePath: /source/zh/canncommercial/900/devaids/opcompiletool/atlasop_compiler_07_0026.html
indexId: e6fe33c79dad16272c3eff19886901c8c7d81d77a8ab7d0ce5ee80fc2b44598a81
---
# --op_debug_config

#### 功能说明

调试配置文件的路径及文件名。


#### 关联参数

无。


#### 参数取值

参数值：配置文件路径及文件名。

参数值格式：路径和文件名：支持大小写字母（a-z，A-Z）、数字（0-9）、下划线（_）、短横线（-）、句点（.）、中文汉字。

参数值约束：

配置文件中支持配置如下选项，多个选项使用英文逗号分隔。

- oom：算子执行过程中，检测Global Memory是否内存越界。

  - 配置该选项，算子编译时，在当前执行路径算子编译生成的kernel_meta文件夹中保留.o（算子二进制文件）和.json文件（算子描述文件）。
  - 使用该选项后，在算子编译过程中会加入如下的检测逻辑，用户可以通过再使用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：算子编译时，在当前执行路径算子编译生成的kernel_meta文件夹中保留.o（算子二进制文件）和.json文件（算子描述文件）。
- dump_cce：算子编译时，在当前执行路径算子编译生成的kernel_meta文件夹中保留算子cce文件*.cce，以及.o（算子二进制文件）和.json文件（算子描述文件）。
- dump_loc：算子编译时，在当前执行路径算子编译生成的kernel_meta文件夹中保留python-cce映射文件*_loc.json。
- ccec_O0：算子编译时，开启ccec编译器选项-O0，配置该选项不会对调试信息执行优化操作，用于后续分析AICore Error问题。
- ccec_g：算子编译时，开启ccec编译器选项-g，配置该选项会对调试信息执行优化操作，用于后续分析AICore Error问题。
- check_flag：算子执行时，检测算子内部流水线同步信号是否匹配。

  - 配置该选项，算子编译时，在当前执行路径算子编译生成的kernel_meta文件夹中保留.o（算子二进制文件）和.json文件（算子描述文件）。
  - 使用该选项后，在算子编译过程中会加入如下的检测逻辑，用户可以通过再使用dump_cce参数，在生成的.cce文件中查看如下的代码。

```
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID0);
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID1);
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID2);
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID3);
....
pipe_barrier(PIPE_MTE3);
pipe_barrier(PIPE_MTE2);
pipe_barrier(PIPE_M);
pipe_barrier(PIPE_V);
pipe_barrier(PIPE_MTE1);
pipe_barrier(PIPE_ALL);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID0);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID1);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID2);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID3);
```


    实际执行推理过程中，如果确实存在算子内部流水线同步信号不匹配，则最终会在有问题的算子处超时报错，并终止程序，报错信息示例为：

```
Aicore kernel execute failed, ..., fault kernel_name=
算子名
,...
rtStreamSynchronizeWithTimeout execute failed....
```


- 配置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:
```


- ccec编译选项ccec_O0和oom选项不可同时开启，会导致AICore Error报错，报错信息示例如下：

```
...there is an aivec error exception, core id is 49, error code = 0x4 ...
```


- oom配置选项不支持和NPU_COLLECT_PATH环境变量同时使用，否则编译出的算子Kernel包在使用过程中会出现报错。


#### 推荐配置及收益

无。


#### 示例

假设使能Global Memory内存检测功能的配置文件名称为gm_debug.cfg，文件内容配置示例如下：

```
op_debug_config=ccec_g,oom
```

将该文件上传到编译工具所在服务器，例如上传到$HOME/module，使用示例如下：

```
op_compiler --kernel_name=
<kernel_name>
--op_debug_config=gm_debug.cfg --soc_version=
<soc_version>
--log=info --job=128  --output=
<output_dir>
```


#### 支持的型号

Atlas 推理系列产品 ，支持该参数

Atlas 训练系列产品 ，支持该参数

Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，支持该参数

Atlas 350 加速卡，不支持该参数


#### 使用约束

无。
