CANN Runtime FE 错误码 E22001(Compilation_Error)排查指南:编译结果缺失与段错误定位

发布时间:2026/9/19 2:29:18
CANN Runtime FE 错误码 E22001(Compilation_Error)排查指南:编译结果缺失与段错误定位 CANN Runtime FE 错误码 E22001Compilation_Error排查指南编译结果缺失与段错误定位【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime导读E22001 是 CANN 图引擎Graph EngineFE在算子编译过程中上报的编译类错误码错误信息提示未找到指定算子的编译结果Compilation result for operator %s not found。该错误码直接指向算子编译流程中的进程级异常——编译线程或主进程发生段错误。本文基于 CANN Runtime 仓库中的错误码定义文件与错误上报实现系统解读 E22001 的报错格式、触发原因并给出从日志、Core Dump 到算子侧检查的完整排查路径。E22001 在 FE 错误码家族中的定位E22001 归属于 FE Errors图引擎错误码分类与算子编译、图编译流程中的其他错误码共同构成完整的编译错误诊断体系。CANN Runtime 仓库在 FE-Errors 索引 中登记了以下错误码错误码错误标题所属阶段E20001Compilation_Error算子编译失败算子编译E20002Config_Error_Invalid_Environment_Variable环境变量配置E20003Config_Error配置错误E20007Compilation_Error_Execute_Fusion_Pass图融合 Pass 执行失败图编译E20101 / E20103Invalid_Argument参数校验E21001 / E21002File_Operation_Error_Open / Parse文件操作E22001Compilation_Error编译结果缺失算子编译从错误码编号规律可以看出E22 开头表示算子编译阶段其中 E20001 关注算子编译本身失败而 E22001 关注算子编译结果找不到——后者往往是编译进程崩溃段错误导致的直接后果。错误信息解读报错格式E22001 的报错格式如下占位符%s依次为算子名称、算子类型Compilation result for operator %s not found. Optype is %s.报错示例Compilation result for operator QuantBatchMatmulV3 not found. Optype is QuantBatchMatmulV3.该示例中算子名称op nameQuantBatchMatmulV3算子类型op typeQuantBatchMatmulV3。两个占位符在此例中恰好相同因为该算子的名称与类型同名在实际业务中算子名称通常是图节点名可能带随机后缀算子类型则是注册的算子类型标识两者可能不一致。错误码的官方定义来源上述报错格式、占位符含义与排查建议并非仅在文档中描述CANN Runtime 仓库在 src/dfx/error_manager/error_code.json 中以结构化方式完整定义了 E22001{ errClass: FE Errors, errTitle: Compilation_Error, ErrCode: E22001, ErrMessage: Compilation result for operator %s not found. Optype is %s., Arglist: opname,optype, suggestion: { Possible Cause: A segmentation fault occurred in the compilation thread or the main process., Solution: Check the process cause of the segmentation fault. } }该 JSON 中Arglist: opname,optype与文档中占位符依次为算子名称、算子类型的说明一一对应suggestion字段则明确了该错误码的官方可能原因与解决方向。可能原因分析根据错误码定义error_code.json中Possible Cause字段与 E22001 官方文档E22001 的触发原因为编译线程或主进程中发生了段错误segmentation fault。具体机制可以这样理解算子在编译如 TBE/Tiling 算子生成、kernel 编译等过程中若编译线程或承载编译流程的主进程发生段错误而异常退出/中断编译产物的写入流程被破坏后续流程按算子名查找编译结果时便无法找到对应产物从而上报 E22001。因此 E22001 本质上是一个次生错误symptom根因是编译进程的崩溃排查重点应放在段错误本身。从错误码语义对比来看E20001Operator %s compilation failed是编译过程正常走到失败分支时上报的编译失败E22001Compilation result ... not found则是编译进程异常崩溃后找不到结果的间接信号。两者都聚焦算子编译但排查方向不同E20001 直接检查算子实现与参数E22001 则需要先定位段错误。解决方法排查段错误原因官方给出的解决方向是检查进程发生段错误的原因建议按下述步骤分层排查。1. 定位段错误发生的阶段与线程由于段错误可能发生在编译线程或主进程第一步是通过运行日志确认崩溃现场打开 Runtime/图引擎相关日志可通过 ASCEND_GLOBAL_LOG_LEVEL 等环境变量调整日志级别与输出位置在日志中搜索segmentation fault、core dump、signal等关键字结合 如何通过 plog 日志定位 Device 侧异常 的方法交叉比对 Host 侧与 Device 侧日志确认段错误是发生在编译线程还是主进程重点关注日志中段错误发生前后的最后一个算子编译动作确认是否与报错信息中的算子名如QuantBatchMatmulV3吻合。2. 获取 Core Dump 文件分析崩溃现场若进程配置了 Core Dump可获取崩溃时的核心转储文件进行分析检查系统是否开启了 core dump 生成ulimit -c获取 core 文件后结合编译产物符号表回溯崩溃调用栈backtrace定位段错误所在的源码位置与调用链从调用栈判断段错误是否发生在自定义算子编译路径、图融合路径还是公共编译框架中。3. 按算子来源分流处理定位到崩溃点后根据算子的来源选择处理路径自定义算子检查算子实现逻辑与入参。段错误常见于自定义 Tiling 函数、算子 kernel 实现中的非法内存访问越界读写、空指针解引用等重点复查算子描述op def、tiling 计算与 shape 推导逻辑华为内置算子若崩溃点位于内置算子或公共编译框架则属于环境或框架问题。此时应收集 Host 侧完整日志与 core 文件按 CANN 官方支持渠道提交问题。4. 结合 Runtime 错误上报机制确认错误传播路径E22001 作为 FE 错误码其上报与查询走 CANN Runtime 的 DFX 错误管理通道。仓库中的 src/dfx/error_manager/error_manager.cc 实现了错误信息的上报与容器化管理错误上报入口ReportInterErrMessageerror_manager.cc会校验错误码是否为内部错误码并将错误项ErrorItem按 work_stream_id 写入错误容器若段错误导致编译流程中断相关错误信息可能无法正常上报或只留下间接的编译结果找不到记录这也是为何 E22001 排查时要回溯到段错误本身运行时可通过 如何获取和解读 Runtime 异步错误码 中介绍的错误查询思路结合aclrtPeekAtLastError/aclrtGetLastError类接口与 plog 日志交叉确认错误链条。与同类编译错误码的区分排查在排查 E22001 时建议与以下相邻错误码对比避免误判错误码报错特征排查方向E20001Operator %s compilation failed算子参数非法或算子实现逻辑异常见 E20001 文档E20007Graph fusion pass %s failed图融合 Pass 超出其处理范围见 E20007 文档E22001Compilation result for operator %s not found编译线程/主进程段错误判断要点若日志中同时存在算子编译结果缺失与明显的段错误/异常退出记录优先按 E22001 的指引处理若仅提示编译失败但进程未崩溃则走 E20001 的算子侧检查路径。小结E22001 是 CANN FE 编译错误族中指向进程级异常的关键错误码其编译结果未找到表象背后的根因是编译线程或主进程的段错误。排查时应以段错误现场为第一优先级按日志定位阶段 → Core Dump 回溯调用栈 → 按算子来源分流处理的路径推进。该错误码的结构化定义报错模板、占位符、可能原因与解决方案可在仓库 src/dfx/error_manager/error_code.json 中直接查阅并与 FE-Errors 索引 中其他编译类错误码配合使用从而快速收敛问题范围。【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询