恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

CANN Runtime 错误码 EE4004 排查指南:Profiling 重复开启导致 “Failed to enable profiling“ 报错

  • 首页
  • 资讯中心
  • /
  • CANN Runtime 错误码 EE4004 排查指南:Profiling 重复开启导致 “Failed to enable profiling“ 报错

相关资讯

uni-app 微信小程序 Skyline 长列表虚拟化组件 list-builder 使用指南 2026/9/19 20:49:19
Python体育用品商城系统设计:商品分类与订单管理关键技术 2026/9/19 20:49:19
drizzle-typebox 0.3.2 发布解析:getColumns、handleColumns 与 handleEnum 的内部工具函数正式导出 2026/9/19 20:49:19

最新资讯

RPCS3存档转换实战:PS3实机与模拟器之间来回搬存档,附失败排查清单
Material iOS UI 框架完全解析:用 Swift 打造媲美 Material Design 的精美 App
Hugo 模板函数 strings.SliceString(slicestr)深入解析:基于零基下标与半开区间的子串截取
Loop Engineering:面向Agent的闭环自治系统工程
三维物体检测三大技术路线全解析:激光雷达、相机与多模态融合
ADAMS二次开发实战:宏命令与条件控制驱动参数化仿真

今日推荐

oh-my-hermes:打造跨工具的命令编排与插件化工作流
OpenClaw.NET 用 /goal start 跑长任务,模型 Base URL 改到 TaoToken
SYB创业计划书财务逻辑拆解:从销售收入预测到现金流量计划

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

CANN Runtime 错误码 EE4004 排查指南:Profiling 重复开启导致 “Failed to enable profiling“ 报错

发布时间:2026/9/19 20:49:19
CANN Runtime 错误码 EE4004 排查指南:Profiling 重复开启导致 “Failed to enable profiling“ 报错 CANN Runtime 错误码 EE4004 排查指南Profiling 重复开启导致 Failed to enable profiling 报错【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime导读EE4004 是 CANN Runtime 错误码体系RTS Errors 类中用于标识 Profiling 功能开启失败的执行错误码。当进程内存在正在进行的采样型sample-basedProfiling 任务却又再次尝试开启 Profiling 时Runtime 会以Failed to enable profiling. %s的形式向上抛错。本文基于 CANN/runtime 仓库中的错误码定义、错误码使用规范和 Runtime/msprof 相关源码系统讲解 EE4004 的报错格式、典型触发场景、处理方案以及底层实现原理帮助开发者在数据采集类任务中快速定位并规避此类问题。EE4004 错误码概述报错格式与含义EE4004 属于 RTSRuntime System错误码其错误标题为Profiling_Enable_Errors语义为Profiling 功能开启失败。报错格式如下其中占位符%s表示具体的报错原因Failed to enable profiling. %s典型报错示例如下Failed to enable profiling. Reason: sample based profiling is ongoing.在该示例中sample based profiling is ongoing即%s展开后的原因描述说明当前已有基于采样的 Profiling 任务正在进行导致新的 Profiling 开启请求被拒绝。错误码元数据定义EE4004 的完整元数据定义在仓库的 src/dfx/error_manager/error_code.json 中{ errClass: RTS Errors, errTitle: Profiling_Enable_Errors, ErrCode: EE4004, ErrMessage: Failed to enable profiling. %s, Arglist: extend_info, suggestion: { Possible Cause: N/A, Solution: Do not enable profiling repeatedly. } }可以看到该错误码的几个关键属性errClassRTS Errors表明其归属 CANN Runtime 侧的 RTS 错误分类ErrMessageFailed to enable profiling. %s%s由extend_info参数在运行时填充用于输出具体的失败原因Arglistextend_info即扩展信息占位一般承载导致开启失败的具体原因描述suggestion官方给出的处理建议是不要重复启用 Profiling 功能Do not enable profiling repeatedly.而可能原因字段标注为 N/A未枚举出明确的单一根因需结合extend_info实际内容判断。错误码在 RTS 错误体系中的位置CANN Runtime 的错误码采用两层设计EE 系列Runtime 核心层代码位于src/runtime/与EH 系列ACL 对外 API 层代码位于src/acl/选择错误码时必须确定代码所在层级。EE4004 属于 EE 系列中的 4000 号段——该号段在源码枚举 src/runtime/core/inc/common/error_message_manage.hpp 的TagRtErrMsgCode中对应一组模型绑定与 Profiling 相关的错误// Ts input error RT_REPEAT_MODEL_STREAM_BIND 4001, RT_MODEL_STREAM_UNBIND_FAILED 4002, RT_ONLINE_PROFILING_NO_START 4003, RT_PROFILING_ENABLE_FAILED 4004,即RT_PROFILING_ENABLE_FAILED 4004与 EE4004 一一对应是 Runtime 侧在 Profiling 使能流程中预留的状态码。完整 RTS 错误码索引见 docs/en/error_code_ref/RTS-Errors/RTS-Errors.md。触发场景分析Profiling 重复开启场景一sample-based Profiling 进行中再次开启EE4004 最常见的触发场景就是错误示例所展示的——进程内已经存在正在运行的基于采样的 Profilingsample-based profiling任务此时又发起了一次新的 Profiling 开启请求。Runtime 检测到 Profiling 通道仍被占用随即返回Failed to enable profiling. Reason: sample based profiling is ongoing.。在 msprof 维测组件中sample-based 模式是一个明确的采集配置选项源码中多次出现该模式名定义src/dfx/msprof/collector/dvvp/message/prof_params.hPROFILING_MODE_SAMPLE_BASED sample-basedsrc/dfx/msprof/collector/dvvp/msprofbin/src/input_parser.cppSAMPLE_BASED sample-based并在参数解析中要求用户从task-based或sample-based中选择 AI Core/AIV 采集模式src/dfx/msprof/collector/dvvp/common/config/config.hPROF_AICORE_SAMPLE aicore sample based、PROF_AIV_SAMPLE ai vector core sample based用于配置下发时标识采样类采集项。从实现看sample-based 模式属于周期性间隔采样的数据采集方式In sample-based mode, profiling data will be collected in a specific interval其开启过程会申请专用的采集通道与采样配置见ProfAclMgr::SampleBasedCfgTrfToReq对ProfApiStartReq的转换逻辑位于 src/dfx/msprof/collector/dvvp/msprof/engine/src/prof_acl_mgr.cpp。这类采集任务未结束时Runtime 会将其视为占用态拒绝重复开启。场景二其他 Profiling 通道被占用除采样型 Profiling 外Runtime 的 ProfilerStart 入口对多种 Profiling 通道都做了重复使能保护。在 src/runtime/core/src/runtime.cc 的Runtime::ProfilerStart中可以看到多个状态检查分支if (profileLogModeEnable_) { RT_LOG_OUTER_MSG_WITH_FUNC_DESC( ErrorCode::EE1018, Starting profiling analysis, profiler is already enabled, cannot set repeatedly); return RT_ERROR_PROF_STATUS; }当日志型 Profiling、API ProfilingPROF_RUNTIME_API_MASK、Runtime TracePROF_RUNTIME_TRACE_MASK等通道已被启用时再次开启会以profiler is already enabled, cannot set repeatedly描述失败并返回RT_ERROR_PROF_STATUS。这说明Profiling 不能重复开启是 Runtime 层的通用约束EE4004 与 EE1018 分别从不同语义角度Profiling 使能失败 vs API 调用顺序错误覆盖了这类场景。处理方案官方建议的处理方案非常明确不要重复启用 Profiling 功能Do not enable profiling repeatedly.。结合上述场景分析具体操作建议如下检查调用时序确认应用或采集脚本中是否存在多次调用 Profiling 开启接口如aclrtProfilerStart/rtProfilerStart/ msprof 采集启停的代码路径去除重复的开启调用。确保上一次采集已结束在开启新一轮 Profiling 前确认前一轮采集任务已正常停止并释放通道。对于 sample-based 模式需确认采样任务状态已退出而不仅是下发过停止命令。进程内唯一性原则Profiling 通道通常在进程内共享多个线程/模块同时发起 Profiling 开启请求时应通过互斥或状态查询机制保证同一时刻只有一个开启者。错误返回码处理在代码中对 Profiling 开启接口的返回值如RT_ERROR_PROF_STATUS对应的错误码做检查收到失败时不要忽略应终止后续依赖 Profiling 数据的逻辑避免采集数据不完整。源码级原理从错误码到报错链路Profiling 使能任务下发Profiling 使能最终会以下发专用任务的方式到达设备侧在任务类型定义 src/runtime/core/inc/task/task_base.hpp 中有TS_TASK_TYPE_PROFILING_ENABLE 64, /* profiling enable task */对应的任务信息结构体ProfilingEnableTaskInfo定义于 src/runtime/core/inc/task/task_info_struct.hpp使能指令类型TS_PROFILE_COMMAND_TYPE_PROFILING_ENABLE 1定义于 src/runtime/core/inc/tsch_defines_profiling.h。当使能指令已在设备侧生效采样任务进行中Runtime 侧再次下发使能指令时即可能触发 EE4004 所描述的状态冲突。错误码的注册与状态需要特别说明的是 EE4004 在仓库中的实际使用状态在错误码元数据表 src/dfx/error_manager/error_code.json 中EE4004 处于已定义状态在 src/runtime_compact/c_base/src/error_manager.c 的紧凑版错误码表中该条目已被注释// {EE4004, ...}并在注释中说明EE4001、EE4002、EE4004 主线没有用到删除错误码使用规范 docs/zh/guidelines/error_message_guide/error-code-guide.md 将 EE4004 标记为 已定义但主线无实际使用使用场景标注为Profiling 重复开启。因此从源码结构看可以推断 EE4004 是一个已定义但当前主线代码未直接调用的预留错误码其语义Profiling 重复开启失败与 Runtime 层实际报出的 EE1018Starting profiling analysis 失败在业务含义上一致。读者在实际开发中如遇到Failed to enable profiling类报错应同时关注 EE4004 与 EE1018 两种错误码形态它们都指向Profiling 被重复开启这一根因。预防建议统一采集入口将 Profiling 的开启/停止收敛到独立模块管理避免多路径竞争同一 Profiling 通道。采集前状态探测开启前先确认当前无进行中的采集任务尤其是 sample-based 模式或捕获失败后静默等待前一轮结束。区分采集模式注意 task-based 与 sample-based 模式的采集占用差异切换模式前确保旧模式采集已完全停止。日志配合定位结合 Runtime 侧RT_LOG输出的profiler is already enabled、aicore metrics already enabled等告警位于 src/runtime/core/src/runtime.cc可以定位到具体被占用的 Profiling 通道类型从而精准修复重复开启的代码路径。延伸阅读RTS Errors 错误码索引EE4004 所属错误码分类的完整索引Runtime 错误码使用规范EE/EH 系列EE 系列错误码的选择决策树、使用场景与禁用码约束error_code.json全部 Runtime 错误码的元数据定义ErrCode、ErrMessage、Arglist、suggestionerror_message_manage.hppTagRtErrMsgCode错误码枚举runtime.ccRuntime::ProfilerStart实现Profiling 使能的入口状态检查逻辑。【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号