ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CANN Runtime 错误码 EH0005 Invalid_Argument 详解:AIPP 参数非法排查与修复指南

CANN Runtime 错误码 EH0005 Invalid_Argument 详解:AIPP 参数非法排查与修复指南 CANNAscend人工智能任务调度【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址https://gitcode.com/cann/runtime点击查看免费下载EH0005 是 CANN Runtime 中 ACLAscendCL对外 API 层的输入参数非法Invalid Argument专用错误码之一用于上报AIPPAI 图像预处理相关参数不合法的场景。本文以 EH0005-Invalid_Argument.md 为基础结合 error_code.json、log_inner.h 等仓库源码系统讲解 EH0005 的报错格式、占位符语义、典型示例解读、错误码在源码中的注册现状以及与 AIPP 相关的关联错误码与排查思路。读完本文你将能够准确读懂 EH0005 报错信息、定位 AIPP 参数越界问题并在开发中正确使用与区分 AIPP 系列错误码。错误码速览项目内容错误码EH0005错误分类errTitleInvalid_Argument输入参数非法错误类errClassACL ErrorsACL 对外 API 层模板消息AIPP argument %s is invalid. Reason: %s.占位符 Arglistparam, reason适用场景AIPP 参数非法该定义可以在仓库的错误码注册表 src/dfx/error_manager/error_code.json 中直接查到EH0005 条目位于 errClass 为ACL Errors、errTitle 为Invalid_Argument的段落同时以宏常量形式定义于 src/acl/common/log_inner.hconstexpr const char_t* const INVALID_AIPP_MSG EH0005;EH0005 属于EH 系列错误码。根据仓库错误码使用规范error-code-guide.mdCANN Runtime 有两层错误码EE 系列对应 Runtime 核心层src/runtime/EH 系列对应 ACL 对外 API 层src/acl/。EH0005 即归属于 ACL 层、专为 AIPP 参数校验而预留。报错格式与占位符语义EH0005 的报错格式如下AIPP argument %s is invalid. Reason: %s.消息中包含两个占位符含义依次为占位符语义示例取值第一个%s非法的参数名parambatch_index第二个%s参数非法的原因reasonbatch_index 3 is greater than or equal to batch_number 2从 error_code.json 中的Arglist: param,reason可以确认该错误码在调用AclErrorLogManager::ReportInputError上报时需要依次传入参数名与报错原因两个字符串。这种参数名 具体原因的设计让报错信息自解释无需额外查阅即可定位到具体是哪个 AIPP 参数、以什么方式非法。报错示例解读官方文档给出的示例如下AIPP argument batch_index is invalid. Reason: batch_index 3 is greater than or equal to batch_number 2.对照占位符语义可以拆解出以下信息参数名batch_indexAIPP 的 batch 索引非法原因batch_index 3 is greater than or equal to batch_number 2即传入的 batch 索引值3大于等于配置的 batch 数量2AIPPAI Preprocessing是模型推理前对输入图像进行裁剪、缩放、归一化等预处理的机制其配置支持 batch 维度。batch_index与batch_number共同描述 AIPP 处理任务所在的 batch 位置batch_index表示当前请求希望使用的 batch 序号batch_number表示 AIPP 配置中声明的 batch 总数。当batch_index不小于batch_number时索引越界即触发本示例所示的校验失败。错误码在仓库中的注册与使用现状从源码证据来看EH0005 在仓库中存在三处定义、一处使用约束的格局错误码注册表src/dfx/error_manager/error_code.json 中完整登记了EH0005的 errClass、errTitle、ErrCode、ErrMessage 与 Arglist属于正式的对外错误码。ACL 日志头文件src/acl/common/log_inner.h 中定义了INVALID_AIPP_MSG EH0005宏常量供 ACL 层代码通过AclErrorLogManager::ReportInputError上报错误时引用。Compact 运行时错误表src/runtime_compact/c_base/src/error_manager.c 中 EH0005 条目以注释形式存在注释标注了// AIPP说明在 Compact 运行时的主线错误表中该码处于预留/停用状态。特别需要注意的是根据仓库的错误码使用规范文档 error-code-guide.mdEH0005 被标记为已定义但源码中无实际使用属于AIPP 专用码预留未使用。也就是说该错误码的格式、语义、注册信息均已就绪但当前开源仓库主线的 ACL 代码中尚没有调用点实际触发 EH0005它是为 AIPP 参数校验预留的专用通道开发者不应在非 AIPP 场景下复用该码。这一点与 EH 系列中 EH0001兜底码、EH0002空指针码等⛔ 不应增量调用的约束不同EH0005 是场景专用、预留待用。与 AIPP 相关的关联错误码排查 AIPP 相关问题时EH0005 只是错误码体系中的一环。仓库还提供了多个与 AIPP 配置直接相关的 ACL 返回码定义于 include/external/acl/error_codes 及 25-01_aclError.md可对照使用返回码数值含义建议ACL_ERROR_NOT_STATIC_AIPP100038静态 AIPP 配置信息不存在该码在 CANN 8.5.0 起标记为废弃预计在 2026 年 12 月 30 日之后版本删除请改用ACL_ERROR_GE_AIPP_NOT_EXIST调用aclmdlGetFirstAippInfo接口时传入正确的 index 值ACL_ERROR_GE_AIPP_BATCH_EMPTY145014无效的 AIPP batch size检查 AIPP batch size 配置ACL_ERROR_GE_AIPP_NOT_EXIST145015AIPP 配置不存在检查模型转换时是否配置了 AIPPACL_ERROR_GE_AIPP_MODE_INVALID145016无效的 AIPP 模式检查模型转换时配置的 AIPP 模式是否正确可见AIPP 类错误大致分为三类参数类EH0005 所代表的 AIPP 参数非法、配置缺失类ACL_ERROR_GE_AIPP_NOT_EXIST、ACL_ERROR_NOT_STATIC_AIPP、模式/批大小类ACL_ERROR_GE_AIPP_MODE_INVALID、ACL_ERROR_GE_AIPP_BATCH_EMPTY。EH0005 聚焦于参数值本身非法而其余码覆盖配置存在性与合法性二者互补。解决方法与排查步骤官方文档给出的解决思路为根据报错提示调整参数值。结合 EH0005 的消息结构推荐的排查流程如下解析报错消息从AIPP argument param is invalid. Reason: reason.中提取param参数名与reason原因。EH0005 的消息模板天然自描述无需额外日志即可定位。核对参数取值范围将非法参数值与配置中的合法范围比对。例如示例中的batch_index应满足0 batch_index batch_number即传入的索引必须在[0, batch_number)区间内。检查调用链确认 AIPP 参数在模型转换ATC阶段与推理运行阶段的配置是否一致避免转换时声明 batch 数、运行时传入更大索引导致的越界。对照关联返回码若报错属于配置不存在或模式非法应优先检查ACL_ERROR_GE_AIPP_NOT_EXIST145015与ACL_ERROR_GE_AIPP_MODE_INVALID145016对应的建议动作即回查模型转换时的 AIPP 配置。涉及静态 AIPP 时注意废弃码若使用ACL_ERROR_NOT_STATIC_AIPP100038请注意该码已废弃应及时迁移到ACL_ERROR_GE_AIPP_NOT_EXIST。开发者注意事项不要在非 AIPP 场景使用 EH0005它是 AIPP 专用预留码泛化的参数非法场景应优先使用 EH 系列决策树中标记 ⭐ 的码例如能给出期望值时用EH0007、能给出非法值与原因时用EH0009、空指针用EH0008、无法给出具体值时用EH0012详见 error-code-guide.md 的 EH 层选择决策树。消息保持自解释若在自研代码中启用 EH0005上报时reason应写明参数当前值 合法范围 期望值例如batch_index 3 is greater than or equal to batch_number 2这种可直接指导修改的表述。以官方注册表为准错误码的权威定义始终以 src/dfx/error_manager/error_code.json 为准开发前可先对照该文件确认 ErrCode、ErrMessage 与 Arglist 是否发生变化。参考资料错误码官方文档EH0005-Invalid_Argument.md、ACL-Errors 目录索引错误码注册表src/dfx/error_manager/error_code.jsonACL 错误码宏定义src/acl/common/log_inner.hCompact 运行时错误表src/runtime_compact/c_base/src/error_manager.c错误码使用规范error-code-guide.mdACL 返回码枚举25-01_aclError.md赞分享CANNAscend人工智能任务调度【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址https://gitcode.com/cann/runtime点击查看免费下载相关推荐CANN Runtime 错误码 EP0006 排查指南Invalid_Argument 参数非法错误详解CANN Runtime 错误码 EP0006 排查指南Invalid_Argument 参数非法错误详解 EP0006 是 CANN 运行时数据落盘DumCANNAscend人工智能任务调度CANN Runtime 错误码 EE1022 详解Invalid_Argument 参数非法排查指南CANN Runtime 错误码 EE1022 详解Invalid_Argument 参数非法排查指南 本篇技术指南面向使用 CANN Runtime本仓库CANNAscend人工智能任务调度CANN Runtime Profiling 错误码 EK0001 Invalid_Argument 排查指南参数校验机制与修复方法CANN Runtime Profiling 错误码 EK0001 Invalid_Argument 排查指南参数校验机制与修复方法 导读 本文围绕 CANNCANNAscend人工智能任务调度创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表