Context 当前承载设备级调试任务收发、dump mode 设置、stalled core 查询和 Stars AI Core 内存读取等业务,设备调试协议与线程当前 Context 管理职责耦合。David 的 AI Core 读取入口还位于 coredump 模块,和 Stars 使用不同的末端入口,不便于明确领域归属和维护平台差异。
本需求将四个设备级功能调试接口归入 device debug 领域,在保持公开 API、Context 获取语义、错误顺序和各平台读取协议不变的前提下,完成调用链归一和平台实现物理隔离。
来源于 Runtime Context 职责拆分工作中的《Context 7.2接口重构实现方案》及两批迁移记录。对应代码已在 jia_shaoyang/runtime_openSource:context_device 分支完成,并合并为单条提交:
jia_shaoyang/runtime_openSource:context_device
e38a4dc1e: refactor: 将设备级功能调试接口迁出Context。目标分支为 cann/runtime:master。
cann/runtime:master
本需求为结构性重构,不宣称新增硬件支持、改变公开 ABI 或带来已量化的性能收益。
统一调用链为 C API -> ApiImpl/ApiImplDavid -> device debug 自由函数 -> Device/Driver。
C API -> ApiImpl/ApiImplDavid -> device debug 自由函数 -> Device/Driver
SendAndRecvDebugTask
device_debug_common.cc
DebugSetDumpMode
DebugGetStalledCore
DebugReadAICore
device_debug_stars.cc
device_debug_starsv2.cc
统一声明位于 src/runtime/core/inc_c/device_debug_c.hpp。读取入口为 DebugReadAICore(const rtDebugMemoryParam_t*, Device* = nullptr);Stars wrapper 传入原 Context 的 Device,David 忽略并集 Device 参数,保留原内部 Context 获取顺序。
src/runtime/core/inc_c/device_debug_c.hpp
DebugReadAICore(const rtDebugMemoryParam_t*, Device* = nullptr)
Stars 保持 1 MiB L1 边界、物理地址转换和无 release 命令;David 保持 512 KiB L1 边界、device VA、REGISTER_DIRECT 和 RELEASE_COREDUMP_MEMORY。不新增防御检查、资源回滚或协议修改;GetStackBufferInfo 留在原 coredump 模块,不纳入本需求。
RELEASE_COREDUMP_MEMORY
GetStackBufferInfo
生产构建覆盖 v100、v200/v201、tiny 动态/静态、arch5162 和 cmodel/camodel 源集合,UT 同步选择正确平台实现。
验收关注公开包装层行为、唯一实现归属、旧 Context 入口清理、错误与状态边界,以及 Stars/David 各自的分片读取和临时内存释放行为。
现有验证记录:默认 Release 及补充产品目标构建通过,定向 LLT 13/13 通过;910B3 HLT 对清单全部 37 项先执行基线验证,当前包仅运行基线 PASS 的 31 项,结果 31/31 框架 PASS。其中 4 项跳过平台主体、1 项仅覆盖不支持分支。成功 AI Core 读取、David/950 真机及其他平台专项仍未完成硬件验证,不能据此宣称全路径覆盖。
/assign
Backgroud(背景信息)
Context 当前承载设备级调试任务收发、dump mode 设置、stalled core 查询和 Stars AI Core 内存读取等业务,设备调试协议与线程当前 Context 管理职责耦合。David 的 AI Core 读取入口还位于 coredump 模块,和 Stars 使用不同的末端入口,不便于明确领域归属和维护平台差异。
本需求将四个设备级功能调试接口归入 device debug 领域,在保持公开 API、Context 获取语义、错误顺序和各平台读取协议不变的前提下,完成调用链归一和平台实现物理隔离。
Origin(信息来源)
来源于 Runtime Context 职责拆分工作中的《Context 7.2接口重构实现方案》及两批迁移记录。对应代码已在
jia_shaoyang/runtime_openSource:context_device分支完成,并合并为单条提交:e38a4dc1e: refactor: 将设备级功能调试接口迁出Context。目标分支为
cann/runtime:master。Benefit / Necessity (价值/作用)
本需求为结构性重构,不宣称新增硬件支持、改变公开 ABI 或带来已量化的性能收益。
Design(设计方案)
统一调用链为
C API -> ApiImpl/ApiImplDavid -> device debug 自由函数 -> Device/Driver。SendAndRecvDebugTaskdevice_debug_common.ccDebugSetDumpModedevice_debug_common.ccDebugGetStalledCoredevice_debug_common.ccDebugReadAICoredevice_debug_stars.cc/device_debug_starsv2.cc统一声明位于
src/runtime/core/inc_c/device_debug_c.hpp。读取入口为DebugReadAICore(const rtDebugMemoryParam_t*, Device* = nullptr);Stars wrapper 传入原 Context 的 Device,David 忽略并集 Device 参数,保留原内部 Context 获取顺序。Stars 保持 1 MiB L1 边界、物理地址转换和无 release 命令;David 保持 512 KiB L1 边界、device VA、REGISTER_DIRECT 和
RELEASE_COREDUMP_MEMORY。不新增防御检查、资源回滚或协议修改;GetStackBufferInfo留在原 coredump 模块,不纳入本需求。生产构建覆盖 v100、v200/v201、tiny 动态/静态、arch5162 和 cmodel/camodel 源集合,UT 同步选择正确平台实现。
验收关注公开包装层行为、唯一实现归属、旧 Context 入口清理、错误与状态边界,以及 Stars/David 各自的分片读取和临时内存释放行为。
现有验证记录:默认 Release 及补充产品目标构建通过,定向 LLT 13/13 通过;910B3 HLT 对清单全部 37 项先执行基线验证,当前包仅运行基线 PASS 的 31 项,结果 31/31 框架 PASS。其中 4 项跳过平台主体、1 项仅覆盖不支持分支。成功 AI Core 读取、David/950 真机及其他平台专项仍未完成硬件验证,不能据此宣称全路径覆盖。