使能Global Memory(DDR)内存检测功能的配置文件路径及文件名。
无。
参数值:配置文件路径及文件名。
参数值格式:路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、短横线(-)、句点(.)、中文汉字。
参数值约束:
配置文件中支持配置如下选项,多个选项使用英文逗号分隔。
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”错误码。
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....
message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o:
...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推理产品