已合并
[msprof]补充Capture Stream与MC2通信信息Parser C化模块 #398
[msprof]补充Capture Stream与MC2通信信息Parser C化模块 #398
已合并
gcw_648Mce95创建于 8月4日
gcw_648Mce95
8月4日

PR 合入模板

关联 Issue:#117


1. 修改描述

  • 修改原因: 将 Capture Stream 与 MC2 通信信息解析迁移至 C++,保持现有 Python 回退及下游数据契约。
  • 修改内容:
    1. 新增 Capture Stream V1/V2 与 MC2 Comm Info C++ Parser。
    2. 新增排序、去重、batch、Capture→MC2 补充及 SQLite 持久化。
    3. 接入 KernelParserWorker,保留原芯片/场景门控并避免 Python/C++ 双写。
    4. 扩展 stream id 相关内部字段,避免大 stream id 截断和低位碰撞。
    5. 补充 Parser、Dumper、Worker、路由及下游关联 UT。

2. 功能验证

    • 功能提交基线完整 analysis C++ UT:1,102/1,102,0 failure/error/skipped/disabled。
    • 同步最新 master 后:analysis 生产构建通过;Python 路由测试 6/6;pre-commit、Bandit、Gitleaks 通过。
    • 真实 Capture V1、四组真实 MC2 与 Python 结果逐字段一致;Capture V2 使用合成结构覆盖。

3. 分支合并要求


3. 代码检视

  • 检视意见数:10 条本地检视意见已闭环

本 Issue 同时包含 Capture Stream 与 MC2 两个相互依赖的 Parser;本 PR 按 Issue 范围合并提交,新增行以业务实现和 UT 为主。超过 1000 行部分请按仓库要求备案并安排会议检视。


4. 安全自检

Python、C++

C++


5. 变更知会

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 gcw_648Mce95 的贡献)
Ggcw_648Mce95
8月4日 关联了issue:[Feature]补充Capture Stream 与 MC2 通信信息的 C++ Parser
atomgit-bot
atomgit-bot
8月4日 评论:

变更摘要

此 PR 将 Capture Stream 与 MC2 通信信息的解析逻辑从 Python 迁移至 C++,主要包括新增 CaptureStreamInfoParserMc2CommInfoParser 两个 C++ 解析器及对应的 CaptureStreamInfoDumperMc2CommInfoDumper 持久化模块,同时将相关数据结构中的 stream id 类型从 uint16_t 扩展为 uint32_t 以避免大 stream id 截断和低位碰撞。在 KernelParserWorker 中通过芯片门控(IsCaptureStreamInfoSupported/IsMc2CommInfoSupported)接入 C++ 解析流程,并保留 Capture→MC2 补充映射与去重排序逻辑。Python 侧在 ConfigDataParsers 白名单中注册这两个解析器,当 C++ 启用时跳过 Python 回退,避免双写。

主要改动

  • 新增 CaptureStreamInfoParser:实现 Capture V1/V2 二进制数据解析,通过文件名前缀自动判别版本,统一输出 CaptureStreamInfoRecord,支持魔数校验和截断记录检测。
  • 新增 Mc2CommInfoParser:解析 MC2 通信信息二进制数据,将 commStreamIds 数组以逗号拼接为字符串输出,并对 streamSize 超过 MC2_COMM_STREAM_MAX_NUM(8)的异常记录拒绝处理。
  • stream id 字段类型扩展CaptureStreamInfo::originalStreamIdMC2CommInfoData::aiCpuKfcStreamIdOriMc2InfoData 中元组第一元素等从 uint16_t 改为 uint32_toverlap_analysis_processormc2StreamsTableSepOneTask 参数同步调整。
  • KernelParserWorker 集成 Capture/MC2 流程:基于芯片平台版本门控启动解析与持久化;Capture 先于 Hash/TypeInfo 执行以保证 RTAddInfoCenter 能加载其 DB;解析失败仅标记错误但继续完成其余 Host 数据处理。
  • 新增 CaptureStreamInfoDumperMc2CommInfoDumper:前者实现按时间戳排序、去重、按 (deviceId, modelStreamId) 分配 batchId、检测 start/end modelId 不匹配;后者将 raw MC2 记录与 Capture 数据做 originalStreamId→modelStreamId 一对多补充映射后写入 SQLite。
likedislike
不准确?
atomgit-bot
atomgit-bot
8月4日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
ascend-robotascend-robot成员
8月4日 添加了label:ascend-cla/no
此处折叠了509条消息 查看更多
ascend-robotascend-robot成员
10 天前 添加了label:lgtm
panyj1993
panyj1993成员
10 天前 评论:

/approve

likedislike
ascend-robotascend-robot成员
10 天前 添加了label:approved
ascend-robotascend-robot成员
10 天前 合入了pull request
ascend-robot
ascend-robot成员
10 天前 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike