CANN Runtime 错误码 EE1005 Not_Supported 详解:系统或设备不支持指定功能的排查与处理

发布时间:2026/9/20 12:49:50
CANN Runtime 错误码 EE1005 Not_Supported 详解:系统或设备不支持指定功能的排查与处理 CANNAscend人工智能任务调度【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址https://gitcode.com/cann/runtime点击查看免费下载导读EE1005 是 CANN Runtime 运行时组件RTSRuntime System错误码体系中用于表示当前系统或设备不支持某功能的标准错误码报错文本为The current system or device does not support %s.。当应用调用了当前硬件平台、芯片型号或驱动/固件版本未开放的能力如 IPC 内存共享、Device 分组、Stream 故障模式等时Runtime 会通过该错误码在日志中输出功能不支持提示并以RT_ERROR_FEATURE_NOT_SUPPORT返回。阅读本文后你将掌握 EE1005 的报错格式与占位符含义、底层触发机制与常见触发场景以及从日志到芯片特性判断的完整排查思路。错误码总览EE1005 属于 RTS-ErrorsRuntime System 错误 错误类别错误标题为Not_Supported。在仓库的 错误码注册表 中该错误码的元数据定义如下{ errClass: RTS Errors, errTitle: Not_Supported, ErrCode: EE1005, ErrMessage: The current system or device does not support %s., Arglist: func }从元数据可以读出三个关键信息errClass错误归属类别为 RTS Errors即运行时核心错误ErrMessage错误信息模板仅含一个占位符%sArglist占位符%s填入的参数名为func即功能名称。在运行时日志侧error_code_meta.h 中同样注册了 EE1005 的日志模板/* EE1005 - Not_Supported */ X(EE1005, EE1005, (func), The current system or device does not support %s. ErrorCodeEE1005.\n, DLOG_ERROR)可以看到日志级为DLOG_ERROR即 EE1005 是一条错误级日志写入时还会附带ErrorCodeEE1005后缀便于日志检索。日志枚举定义位于 rt_log.h其中EE1005紧跟在EE1004之后、EE1006之前三者同属运行时参数/能力校验类错误序列。报错格式与占位符含义EE1005 的报错格式如下占位符%s表示功能名称The current system or device does not support %s.报错示例如下The current system or device does not support IpcCloseMemory.该示例中%s被替换为IpcCloseMemory关闭 IPC 共享内存的功能名表示当前系统或 Device 不支持该功能。需要注意%s填入内容的语义差别原文档明确指出 EE1005 的占位符表示功能名称这与 ACL 层的 EH0011占位符为接口名如aclrtGetDevice、Profiling 层的 EK0004占位符为接口名如aclprofSetConfig不同。实际从源码看EE1005 填入的字符串多为动作 对象的功能描述例如setting the scheduling group ID of a model、destroying the IPC shared memory、setting the trustlist of processes that can share memory through IPC等而非简单的接口名。也就是说当你在日志中看到 EE1005 时%s描述的是某个具体的运行时能力项。触发机制从功能校验到错误上报的完整链路EE1005 并不是一个随机出现的错误而是运行时在能力特性校验不通过的固定路径上主动上报的。从源码调用点看触发模式高度一致均为以下三步特性判断调用Device::IsSupportFeature(RtOptionalFeatureType::xxx)、IS_SUPPORT_CHIP_FEATURE(chipType, ...)或CheckFeatureSupport(...)等接口判断当前芯片型号/平台是否支持某项可选特性条件不满足判断结果不支持时先记录一条内部日志多为RT_LOG_ERROR级别上报 EE1005通过RT_LOG_OUTER_MSG_WITH_FUNC_DESC(ErrorCode::EE1005, 功能描述)向外部Host 侧日志与错误码机制上报同时返回RT_ERROR_FEATURE_NOT_SUPPORT。例如 api_impl.cc 中ModelSetSchGroupId的实现if (!curCtx-Device_()-IsSupportFeature(RtOptionalFeatureType::RT_FEATURE_MODEL_SCHED_GROUP)) { RT_LOG_OUTER_MSG_WITH_FUNC_DESC(ErrorCode::EE1005, setting the scheduling group ID of a model); return RT_ERROR_FEATURE_NOT_SUPPORT; }在 ACL 层Host 侧 API 封装中EE1005 还与ACL_ERROR_RT_FEATURE_NOT_SUPPORT返回码绑定。例如 api_error.cc 中设置 Stream 故障模式failure mode时COND_PROC_RETURN_AND_MSG_OUTER( !IS_SUPPORT_CHIP_FEATURE(chipType, RtOptionalFeatureType::RT_FEATURE_STREAM_ATTR_FAILURE_MODE), ACL_ERROR_RT_FEATURE_NOT_SUPPORT, ErrorCode::EE1005, RT_LOG(RT_LOG_WARNING, chip type(%d) does not support., static_castint32_t(chipType)), setting the error handling mode of a stream);由此可见EE1005 的上报路径是芯片特性枚举 → 特性开关判断 → 不支持时上报 EE1005 并返回 RT_ERROR_FEATURE_NOT_SUPPORT / ACL_ERROR_RT_FEATURE_NOT_SUPPORT。应用侧拿到的返回码如RT_ERROR_FEATURE_NOT_SUPPORT与日志中的EE1005是同一问题的两种呈现形式。常见触发场景从源码中的 EE1005 调用点分布来看以下运行时能力在不受支持的芯片/平台上被调用时均可能上报 EE1005以下场景均能在当前仓库源码中检索到对应实现IPC 共享内存与 IPC NotifyIpcDestroyMemoryName销毁 IPC 共享内存时若RT_FEATURE_IPC_MEMORY特性不支持上报 EE1005见 api_impl.ccSetIpcMemPid设置可通过 IPC 共享内存的进程信任列表时同样校验RT_FEATURE_IPC_MEMORYSetIpcNotifyPid设置可通过 IPC 共享 Notify 对象的进程信任列表时校验该特性见 api_impl_standard_soc.cc。原文档示例中的IpcCloseMemory即属于这一类 IPC 内存管理能力。Device 分组与组管理SetGroup/GetGroupCount调用 Device 分组相关接口时校验RT_FEATURE_DEVICE_GROUP特性在 api_impl_standard_soc.cc 中可以看到if (!IS_SUPPORT_CHIP_FEATURE(chipType, RtOptionalFeatureType::RT_FEATURE_DEVICE_GROUP)) { RT_LOG(RT_LOG_ERROR, Device groups are not supported on chipType%s, ChipTypeToString(chipType).c_str()); RT_LOG_OUTER_MSG_WITH_FUNC_DESC(ErrorCode::EE1005, specifying the group used for the current operation); return RT_ERROR_FEATURE_NOT_SUPPORT; }从该实现可以看出日志还会额外打印不支持分组的chipType字符串这是排查时定位哪类芯片不支持的关键线索。Stream 属性与 Notify 重置Stream 故障模式failure mode设置校验RT_FEATURE_STREAM_ATTR_FAILURE_MODE见 api_error.ccSetStreamDotSetMode等 Stream 点集模式能力校验RT_FEATURE_STREAM_DOT_SET_MODE见 api_c_stream.ccNotify 重置在非 Stars 平台IsStarsPlatform()为假时上报 EE1005提示feature support only in stars platform若 Stars 平台但 tsch 版本过低TS_FEATURE_MC2_ENHANCE不支持也会走能力校验分支见 api_impl_standard_soc.cc。模型运行实例管理ModelAbort中止模型运行实例TS 执行器下若 tsch 版本过低或RT_FEATURE_MODEL_ABORT特性不支持会上报 EE1005见 api_impl.cctsch 版本过低时返回ErrorCode::EE1015芯片不支持 model abort 特性时记录ts model abort is not supported on this device.并上报 EE1005。Flow Gateway 初始化InitFlowGateway无 Device 时上报 EE1005提示initializing the Flow Gateway见 runtime.cc。这属于系统级运行前提不满足的场景——连 Device 都不存在自然无法支持依赖 Device 的网关能力。规律小结EE1005 覆盖的能力项都以RtOptionalFeatureType枚举如RT_FEATURE_IPC_MEMORY、RT_FEATURE_DEVICE_GROUP、RT_FEATURE_MODEL_ABORT、RT_FEATURE_STREAM_ATTR_FAILURE_MODE或平台/版本判断如 Stars 平台、tsch 版本为开关体现了能力随硬件平台与软件版本差异化开放的设计。排查与解决方法按照原文档给出的解决思路——请使用当前系统或 Device 支持的功能——结合源码机制可将排查过程细化为以下步骤提取功能名定位能力项先从日志中提取 EE1005 报错文本%s位置的功能描述如IpcCloseMemory、setting the scheduling group ID of a model明确是哪一项运行时能力不被支持。对照芯片特性判断依据在 api_impl.cc、api_impl_standard_soc.cc、api_error.cc、api_c_stream.cc 等文件中按功能名检索找到对应的RtOptionalFeatureType特性枚举或平台/版本判断条件即可确认该能力由哪类芯片特性、平台类型或 tsch 版本决定。确认运行环境是否满足前提检查当前使用的芯片型号、驱动/固件与 tsch 版本是否满足能力要求。注意部分场景如 Flow Gateway 初始化还要求环境具备可用的 Device。改造应用规避不支持的能力这是原文档给出的最终解法——将代码改为使用当前系统或 Device 支持的功能/替代方案或换用支持该能力的硬件环境后再运行。需要说明的是EE1005 属于能力提示类错误应用通常应在启动时通过能力查询接口或根据产品规格表预判功能可用性避免在不受支持的平台上调用相关能力。结合配套信息判断EE1005 上报前通常还有一条更详细的内部日志如Device groups are not supported on chipType...、ts model abort is not supported on this device.、feature support only in stars platform排查时优先查看该功能名对应的上文日志可快速确认具体的不支持原因。与相近错误码的区分EE1005 并非唯一的不支持类错误码使用和排查时注意区分错误码所属类别错误标题占位符参数语义侧重EE1005RTS ErrorsNot_Supportedfunc功能名称系统或设备不支持某功能EE1006RTS ErrorsNot_Supportedfunc、type、reason某类型/参数值不被支持附原因如 d2d 拷贝不支持WE0001RTS ErrorsNot_Supported——Runtime 警告级的不支持场景EH0011ACL ErrorsNot_Supported接口名ACL 接口级能力不支持EK0004Profiling ErrorsNot_Supported_API接口名Profiling 接口能力不支持从 error_code_meta.h 中的定义可见EE1006 的模板为%s failed. %s is not supported. Reason: %s.比 EE1005 多出type与reason两个参数——当报错需要同时指出不支持的类型和原因时运行时会上报 EE1006 而非 EE1005。据此可以从报错文本的详细程度反推错误码选择逻辑。源码与测试验证错误码注册error_code.json 中EE1005条目定义了 errClass / errTitle / ErrCode / ErrMessage / Arglist 五元组是本文档内容的事实来源之一。日志模板error_code_meta.h 中X(EE1005, EE1005, (func), ...)定义了运行时侧日志输出模板与参数表。错误码枚举rt_log.h 中EE1005位于运行时错误码枚举序列。单元测试rt_error_code_test.cc 中对 EE1005 的格式化与上报做了直接验证std::vectorstd::string values3 {rtMemCpy}; PrintErrMsgToLog(ErrorCode::EE1005, file, 1000, func, values3); ... RT_LOG_OUTER_MSG_IMPL(ErrorCode::EE1005, rtMemCpy);该测试以rtMemCpy作为功能名验证 EE1005 的日志格式输出与参数绑定证明了%s处填入的正是Arglist中的func参数。总结EE1005Not_Supported是 CANN Runtime 面向能力开放差异化场景设计的标准错误码当应用调用某项运行时功能而当前系统、Device、芯片型号或软件版本不支持该项能力时Runtime 会在能力校验路径上上报The current system or device does not support %s.并返回RT_ERROR_FEATURE_NOT_SUPPORT。排查 EE1005 的关键在于从%s提取功能名 → 在源码中定位对应特性开关 → 核对硬件与软件环境 → 改用受支持的功能。掌握该错误码的机制有助于在跨硬件平台适配时快速定位能力缺失类问题避免将功能不支持误判为接口调用错误。赞分享CANNAscend人工智能任务调度【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址https://gitcode.com/cann/runtime点击查看免费下载相关推荐CANN Runtime Profiling 错误码 EK0005 Not_Supported 全解析参数不受支持的原因定位与修复指南CANN Runtime Profiling 错误码 EK0005 Not_Supported 全解析参数不受支持的原因定位与修复指南 EK0005 是 CACANNAscend人工智能任务调度CANN Runtime 错误码 EE1006 深度解析Not_Supported配置参数不支持的诊断、定位与代码调整CANN Runtime 错误码 EE1006 深度解析Not_Supported配置参数不支持的诊断、定位与代码调整 导读 EE1006 是 CANNCANNAscend人工智能任务调度CANN runtime EK0004 错误码解析Profiling 接口不支持Not_Supported_API的定位与处理CANN runtime EK0004 错误码解析Profiling 接口不支持Not_Supported_API的定位与处理 导读 EK0004NotCANNAscend人工智能任务调度上一篇React Native Parsed Text教程下一篇GitExplorer移动端适配如何在手机上完美使用这个Git工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考