下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

--op_debug_config

功能说明

使能Global Memory(DDR)内存检测功能的配置文件路径及文件名。

关联参数

无。

参数取值

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

参数值格式:路径和文件名:支持大小写字母(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,配置该选项不会对调试信息执行优化操作,用于后续分析AI Core Error问题。
  • ccec_g:算子编译时,开启ccec编译器选项-g,配置该选项对调试信息执行优化操作,用于后续分析AI Core 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 ...

推荐配置及收益

无。

示例

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

op_debug_config=ccec_g,oom

将该文件上传到ATC工具所在服务器,例如上传到$HOME/module,使用示例如下:

--op_debug_config=$HOME/module/gm_debug.cfg

使用约束

算子编译时,如果用户不想编译所有AI Core算子,而是指定某些AI Core算子进行编译,则需要在上述gm_debug.cfg配置文件中新增op_debug_list字段,算子编译时,只编译该列表指定的算子,并按照op_debug_config配置的选项进行编译。op_debug_list字段要求如下:

配置示例如下:

在--op_debug_config参数指定的配置文件(例如gm_debug.cfg)中增加如下信息:

op_debug_config=ccec_g,oom
op_debug_list=GatherV2,opType::ReduceSum

将该文件上传到ATC工具所在服务器,例如上传到$HOME/module,使用示例如下:

--op_debug_config=$HOME/module/gm_debug.cfg

实际模型转换时,GatherV2,ReduceSum算子按照ccec_g,oom选项进行编译。

支持的型号

Atlas 200/300/500 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

Atlas 200I/500 A2推理产品

Atlas A2训练系列产品/Atlas 800I A2推理产品

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词