--op_debug_config【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况全量芯片支持功能说明算子debug功能配置参数用于控制Global Memory内存检测和算子编译调试选项。关联参数无。参数取值参数值配置文件路径及文件名。参数值格式路径和文件名支持大小写字母a-zA-Z、数字0-9、下划线_、短横线-、句点.、中文汉字。参数值约束配置文件中支持配置如下选项多个选项使用英文逗号分隔。oom算子执行过程中检测Global Memory是否内存越界。配置该选项算子编译时在当前执行路径算子编译生成的kernel_meta文件夹中保留.o算子二进制文件和.json文件算子描述文件。使用该选项后在算子编译过程中会加入如下的检测逻辑用户可以通过再使用dump_cce参数在生成的.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); } } } 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文件中查看如下的代码。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.... [!NOTE]说明配置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 ...若配置NPU_COLLECT_PATH环境变量不支持打开“检测Global Memory是否内存越界”的开关--op_debug_config指定的配置文件配置为oom否则编译出来的模型文件或算子kernel包在使用时会报错。配置编译选项oom、dump_cce、dump_loc时若模型中含有如下通算融合算子算子编译目录kernel_meta中不会生成下述算子的*.o、*.json、*.cce文件。MatMulAllReduceMatMulAllReduceAddRmsNormAllGatherMatMulMatMulReduceScatterAlltoAllAllGatherBatchMatMulBatchMatMulReduceScatterAlltoAll推荐配置及收益无。示例假设配置文件名称为gm_debug.cfg文件内容配置示例如下op_debug_configccec_g,oom将该文件上传到ATC工具所在服务器例如上传到_$HOME/module_使用示例如下atc --op_debug_config$HOME/module/gm_debug.cfg ...使用约束算子编译时如果用户不想编译所有AI Core算子而是指定某些AI Core算子进行编译则需要在上述_gm_debug.cfg_配置文件中新增op_debug_list字段算子编译时只编译该列表指定的算子并按照op_debug_config配置的选项进行编译。op_debug_list字段要求如下支持指定算子名称或者算子类型。算子之间使用英文逗号分隔若为算子类型则以OpType::TypeName格式进行配置支持算子类型和算子名称混合配置。要编译的算子必须放在--op_debug_config参数指定的配置文件中。算子类型必须为基于Ascend IR定义的算子的类型算子类型查看方法请参见如何确定原始框架网络模型中的算子与AI处理器支持的算子的对应关系。配置示例如下在--op_debug_config参数指定的配置文件例如gm_debug.cfg中增加如下信息op_debug_configccec_g,oom op_debug_listGatherV2,OpType::ReduceSum将该文件上传到ATC工具所在服务器例如上传到_$HOME/module_使用示例如下atc --op_debug_config$HOME/module/gm_debug.cfg ...实际模型转换时GatherV2,ReduceSum算子按照ccec_g,oom选项进行编译。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考