已合并
支持C化各模块前向无环图注册机制 #395
Wangang Yu创建于 26 天前
支持C化各模块前向无环图注册机制 #395
已合并
Wangang Yu创建于 26 天前
Wangang Yu
Wangang Yu成员
26 天前

PR 合入模板

注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。


1. 修改描述

  • 修改原因:
    在万卡TB级参数量、300B MoE的情况下,单卡level0数据能达到10GB,全量数据解析耗时久效率低下,而往往只需要部分交付件,op summary、step trace 难以快速支持用户分析
  • 修改内容:
    本次将原先分散的 Processor、Summary、DB、Timeline 装配流程统一为注册式 DAG。ExportManager 按导出配置选择根节点,TopoGraphBuilder 递归展开依赖、校验缺失/环、去重并生成 ProcessCollectionProcessControl 按拓扑层级并发执行,并依据后续节点的 paramTypes 释放无用数据。DB/Timeline 增加前后置控制节点,UT 覆盖建图、依赖、执行及数据释放场景。

约定:A → B 表示 B 依赖 A,A 先执行。数据类型注册不属于控制依赖,未在图中展开。

flowchart LR
  R["静态注册<br/>Processor / Summary / DB / Timeline"] --> G["TopoNodeRegistry"]
  C["report 配置"] --> S["导出根节点选择"]
  G --> B["TopoGraphBuilder<br/>展开、去重、环检测"]
  S --> B
  B --> P["ProcessCollection"]
  P --> E["ProcessControl<br/>按 DAG 层级并发执行"]
  E --> D["DataInventory<br/>按后续 paramTypes 回收数据"]

Processor DAG(其余 Processor 均为无前置依赖叶子节点):

flowchart LR
  HASH["HASH"] --> COMM["COMMUNICATION"]
  HASH --> CTI["COMPUTE_TASK_INFO"]
  HASH --> KCOMM["KFC_COMM"]
  HASH --> NPUOP["NPU_OP_MEM"]

  TASK["TASK"] --> OVERLAP["OVERLAP_ANALYSIS"]
  CTI --> OVERLAP
  COMM --> OVERLAP
  KCOMM --> OVERLAP
  MC2["MC2_COMM_INFO"] --> OVERLAP

Summary DAG:

flowchart LR
  CTI["COMPUTE_TASK_INFO"] --> OPS["OP_SUMMARY"]
  TASK["TASK"] --> OPS
  COMM["COMMUNICATION"] --> OPS
  PMU["PMU"] --> OPS

  FUSION["FUSION_OP"] --> FS["FUSION_OP Summary"]
  MODEL["MODEL_NAME"] --> FS
  HASH["HASH"] --> FS

  CTI --> TTS["TASK_TIME_SUMMARY"]
  HOST["HOST_TASK"] --> TTS
  TASK --> TTS

  SIMPLE["COMM_STATISTIC / OP_STATISTIC / NPU_MEM / NPU_MODULE_MEM / API / STEP_TRACE / PAGE_FAULT"]
  SIMPLE --> SAME["对应同名 Summary 节点"]

DB DAG:

flowchart LR
  SAME["同名 Processor"] --> DBS["对应 DB Saver"]

  COMM["COMMUNICATION"] --> DCOMM["DB:COMMUNICATION"]
  KCOMM["KFC_COMM"] --> DCOMM
  FREQ["AICORE_FREQ"] --> DFREQ["DB:AICORE_FREQ"]
  LOW["LOW_POWER"] --> DFREQ
  TASK["TASK"] --> DTASK["DB:TASK"]
  TX["DEVICE_TX"] --> DTASK
  CTI["COMPUTE_TASK_INFO"] --> DCTI["DB:COMPUTE_TASK_INFO"]
  MC2["MC2_COMM_INFO"] --> DCTI
  UPMU["UNIFIED_PMU"] --> DPMU["TASK_PMU / SAMPLE_PMU_*"]

  DBS --> IDS["DB:STRING_IDS"]
  DCOMM --> IDS
  DFREQ --> IDS
  DTASK --> IDS
  DCTI --> IDS
  DPMU --> IDS

ENUMHOST_INFOMETA_DATANPU_INFOSESSION_TIME_INFO 无 Processor 依赖;其余 DB Saver 均为同名 Processor 一对一依赖。

Timeline DAG:

flowchart LR
  PRE["TIMELINE:PRE_DUMP"] --> TL["所有选中的 Timeline 节点"]

  TASK["TASK"] --> TLTASK["Task Scheduler"]
  KFC_TASK["KFC_TASK"] --> TLTASK
  CTI["COMPUTE_TASK_INFO"] --> TLTASK
  API["API"] --> TLTASK
  MEMCPY["MEMCPY_INFO"] --> TLTASK

  API --> TLAPI["API Timeline"]
  TASK --> TLAPI
  CHIP["CHIP_TRAINS"] --> TRANS["STARS_CHIP_TRANS"]
  PCIE["PCIE"] --> TRANS
  COMM["COMMUNICATION"] --> HCCL["HCCL Timeline"]
  KFC_TASK --> HCCL
  KCOMM["KFC_COMM"] --> HCCL

  FREQ["AICORE_FREQ"] --> LOW["LOW_POWER Timeline"]
  LP["LOW_POWER"] --> LOW
  TX["DEVICE_TX"] --> TXTL["DEVICE_TX Timeline"]
  MSTX["MSTX"] --> TXTL
  BLOCK["BLOCK_DETAIL"] --> BTL["BLOCK_DETAIL Timeline"]
  CTI --> BTL
  TASK --> BTL

  TL --> POST["TIMELINE:POST_DUMP"]

除上图多依赖节点外,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. 代码检视

  • 要求:

    • 合入代码超过 200 行,需三人以上会议检视。
    • 检视密度≥1个/100行。
    • 检视缺陷密度未达要求需提供说明。
    • 大于 1000 行代码原则上不允许合入,需进行备案。
  • 检视意见数:____ 条 (请填写本次检视的意见总数,用于commit合入前审视)


4. 安全自检

Python、C++

C++


5. 变更知会


likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 Wangang Yu 的贡献)
atomgit-bot
atomgit-bot
26 天前 评论:

变更摘要

本 PR 将原先分散的 Processor、Summary、DB、Timeline 装配流程统一为基于注册式的有向无环图(DAG)机制。核心引入 TopoNodeRegistry 静态注册表、TopoGraphBuilder 递归建图器(含去重与环检测)、以及 ProcessControl 按拓扑层级并发执行并依据 paramTypes 释放无用数据的能力。ExportManager 根据导出配置选择根节点,各模块通过新增的 _topology_register.cpp 文件声明节点依赖与数据类型,DB/Timeline 额外增加前后置控制节点(PRE_DUMP/POST_DUMPSTRING_IDS),原有的硬编码处理器工厂表及懒加载实例化逻辑被移除,整体向声明式拓扑执行模型迁移。

主要改动

  • 引入通用拓扑注册与建图基础设施:新增 topo_assembler_process.h/.cpp,定义 TopoNodeKindTopoNodeIdTopoNodeDefinitionTopoNodeRegistryTopoGraphBuilder 等核心类型,提供 REGISTER_TOPO_NODE_SEQUENCE / REGISTER_TOPO_NODE_DEPENDENT_DATA 注册宏以及 AppendTopoAssemblerProcess 兼容函数,TopoGraphBuilder::AddNode 实现去重与环检测。
  • 重构 Processor 工厂为拓扑注册data_processor_factory.cpp 移除原有的静态 processorTable_ 大表,改为通过 TopoNodeRegistry::FindProcessorByName 查找;新增 data_processor_topology_register.cppREGISTER_PROCESSOR 宏声明每个 Processor 的依赖关系,DataProcessorProcess 适配 Process 接口。
  • DB/Timeline/Summary 模块接入 DAG 注册:各模块新增 _topology_register.cppdb_topology_register.cpptimeline_topology_register.cppsummary_topology_register.cpp),声明节点间依赖与数据类型依赖;DB/Timeline 增加前后置控制节点(CONTROL 类型的 PRE_DUMP/POST_DUMPDB:STRING_IDS),移除原先在 SaveOverlapAnalysisDataOverlapAnalysisAssembler::AssembleData 中的懒加载 Processor 实例化。
  • 重写 ExportManager 为拓扑驱动export_manager.cpp 原有 ProcessData 线程池并行模式被替换为 TopoGraphBuilder::Build + ProcessControl::ExecuteProcess;新增 GetExportSelection 解析 report 配置以选择 Timeline/Summary 交付件,支持 DB/Timeline/Summary 多模式联合构建统一拓扑。
  • ProcessControl 增加可选数据释放控制:新增 ProcessControlOptions 结构体及 releaseUnusedData 开关,构造函数支持传入选项;ReleaseNoLongerUsedData 仅当选项启用时执行,levelIndex 计算修正为在释放前递增。
likedislike
atomgit-bot
atomgit-bot
26 天前 评论:

代码审查

✅ 未发现问题

likedislike
ascend-robotascend-robot成员
26 天前 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
26 天前 评论:

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 /approve or /lgtm
  • Commenting /approve implies 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. 👍

likedislike
此处折叠了677条消息 查看更多
panyj1993
panyj1993成员
6 天前 评论:

/approve

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

🤖 AIDD 文档质量检测报告

PR #395 已关闭,相关检测任务已归档。

评论由 AIDD 自动生成。

likedislike
ascend-robot
ascend-robot成员
6 天前 评论:

Pull Request 已合并或已关闭。

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

likedislike