Pull Request已成功合入, 合并人@ascend-robot
(感谢 Wangang Yu 的贡献)变更摘要
本 PR 将原先分散的 Processor、Summary、DB、Timeline 装配流程统一为基于注册式的有向无环图(DAG)机制。核心引入 TopoNodeRegistry 静态注册表、TopoGraphBuilder 递归建图器(含去重与环检测)、以及 ProcessControl 按拓扑层级并发执行并依据 paramTypes 释放无用数据的能力。ExportManager 根据导出配置选择根节点,各模块通过新增的 _topology_register.cpp 文件声明节点依赖与数据类型,DB/Timeline 额外增加前后置控制节点(PRE_DUMP/POST_DUMP 和 STRING_IDS),原有的硬编码处理器工厂表及懒加载实例化逻辑被移除,整体向声明式拓扑执行模型迁移。
主要改动
- 引入通用拓扑注册与建图基础设施:新增
topo_assembler_process.h/.cpp,定义TopoNodeKind、TopoNodeId、TopoNodeDefinition、TopoNodeRegistry和TopoGraphBuilder等核心类型,提供REGISTER_TOPO_NODE_SEQUENCE/REGISTER_TOPO_NODE_DEPENDENT_DATA注册宏以及AppendTopoAssemblerProcess兼容函数,TopoGraphBuilder::AddNode实现去重与环检测。 - 重构 Processor 工厂为拓扑注册:
data_processor_factory.cpp移除原有的静态processorTable_大表,改为通过TopoNodeRegistry::FindProcessorByName查找;新增data_processor_topology_register.cpp用REGISTER_PROCESSOR宏声明每个 Processor 的依赖关系,DataProcessorProcess适配Process接口。 - DB/Timeline/Summary 模块接入 DAG 注册:各模块新增
_topology_register.cpp(db_topology_register.cpp、timeline_topology_register.cpp、summary_topology_register.cpp),声明节点间依赖与数据类型依赖;DB/Timeline 增加前后置控制节点(CONTROL类型的PRE_DUMP/POST_DUMP和DB:STRING_IDS),移除原先在SaveOverlapAnalysisData和OverlapAnalysisAssembler::AssembleData中的懒加载 Processor 实例化。 - 重写
ExportManager为拓扑驱动:export_manager.cpp原有ProcessData线程池并行模式被替换为TopoGraphBuilder::Build+ProcessControl::ExecuteProcess;新增GetExportSelection解析 report 配置以选择 Timeline/Summary 交付件,支持 DB/Timeline/Summary 多模式联合构建统一拓扑。 ProcessControl增加可选数据释放控制:新增ProcessControlOptions结构体及releaseUnusedData开关,构造函数支持传入选项;ReleaseNoLongerUsedData仅当选项启用时执行,levelIndex计算修正为在释放前递增。


Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-Ascend/msprof | ✅ 潘杨杰, Seanesmhxocism, 张伟 (3/2) | ✅ 潘杨杰 (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
MrYudd, thanks for your pull request. All authors of the commits have signed the CLA. 👍


/approve


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


PR 合入模板
注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。
1. 修改描述
在万卡TB级参数量、300B MoE的情况下,单卡level0数据能达到10GB,全量数据解析耗时久效率低下,而往往只需要部分交付件,op summary、step trace 难以快速支持用户分析
本次将原先分散的 Processor、Summary、DB、Timeline 装配流程统一为注册式 DAG。
ExportManager按导出配置选择根节点,TopoGraphBuilder递归展开依赖、校验缺失/环、去重并生成ProcessCollection;ProcessControl按拓扑层级并发执行,并依据后续节点的paramTypes释放无用数据。DB/Timeline 增加前后置控制节点,UT 覆盖建图、依赖、执行及数据释放场景。约定:
A → B表示 B 依赖 A,A 先执行。数据类型注册不属于控制依赖,未在图中展开。Processor DAG(其余 Processor 均为无前置依赖叶子节点):
Summary DAG:
DB DAG:
ENUM、HOST_INFO、META_DATA、NPU_INFO、SESSION_TIME_INFO无 Processor 依赖;其余 DB Saver 均为同名 Processor 一对一依赖。Timeline DAG:
除上图多依赖节点外,ACC_PMU、DDR、HBM、HCCS、OSRT_API、各类 Usage、NPU_MEM、PCIE、SOC、LLC、NIC、ROCE、QOS、BIU、UB、DPU、FUSION_TASK、STEP_TRACE、CCU 等均为
PRE_DUMP + 对应单个 Processor → Timeline 节点。2. 功能验证
3. 分支合并要求
3. 代码检视
要求:
检视意见数:____ 条 (请填写本次检视的意见总数,用于commit合入前审视)
4. 安全自检
Python、C++
C++
5. 变更知会