Pull Request已成功合入, 合并人@CANN-robot
(感谢 izanaami 的贡献)变更摘要
本 PR 修复 A5 AICPU Open 路径下通信 Profiling 上报缺失的问题:此前该路径缺少按算子聚合的 DFX 注册与 HEAD/TAIL/DeviceOp 上报,导致通信 TaskInfo 无法关联真实物理 stream、任务落入 stream 65535、Communication 泳道缺失。核心改动是在 CommKfcAicpuServer::Orchestrate 中按一个 HcclMsg 聚合一次 HcclDfxRegOpInfoByCommId/KernelStart/KernelEnd/DeviceOp 上报,用 execCtx.mainThread 关联真实物理 stream,并扩展 HcclDfxOpInfo 结构体以携带算子内存信息(同步自 asc-devkit copied 的 HCOMM ABI 并增加静态检查),同时通过弱符号动态加载现有 HcclDfxRegOpInfoByCommId,不新增 HCOMM 公共接口。
主要改动
HcclDfxOpInfo结构体扩展与 ABI 静态校验: 在hccl_diag.h与op_common.cc中为HcclDfxOpInfo新增inputMemAddr/inputMemSize/outputMemAddr/outputMemSize字段(reserve由 128 缩减为 96),并新增static_assert校验结构体 size 为 504、各字段 offset 与 HCOMM ABI 一致;HcclExecOp与RegisterCcuDfxOpInfo同步填充输入输出内存信息。- 动态加载
HcclDfxRegOpInfoByCommId: 在hcomm_device_profiling_dl.cc/.h中通过DEFINE_WEAK_FUNC/DECL_WEAK_FUNC声明并在HcommDeviceProfilingDlInit中初始化该符号,复用现有 HCOMM 动态库接口,不新增公共接口。 Orchestrate按消息聚合 DFX 上报: 新增BuildOpenDfxOpInfo、SafeMultiplyForDfx、SafeAddForDfx、GetDfxDataTypeSize、IsOpenProfilingEnabled等辅助函数;在 repeat 循环首轮完成 OpInfo 注册,仅在 profiling L0/L1 开启时上报 KernelStart,循环结束后统一上报 KernelEnd 与 DeviceOp,避免在 repeat 内重复上报。- 物理 stream 关联与 notify 信息保留: HEAD/TAIL 上报改用
execCtx.mainThread关联真实物理 stream,DFX notify 信息(cpuTsThread/cpuWaitAicpuNotifyIdx)仍取自param.opThread等算子参数。 - 执行失败仍补全收尾上报: 将循环内
CHK_RET改为记录executionRet后跳出,执行失败后仍尝试完成 End/DeviceOp 上报,最终优先返回原始执行错误executionRet,其次返回上报错误profilingRet。


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.
For more, you also can visit HICANN.
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| include/adv_api | ✅ wuzhaolin, 石楠翔, YeZZzzz1 (3/2) | ✅ wuzhaolin (1/1) |
| repo-cann/asc-devkit | ✅ 石楠翔, YeZZzzz1 (2/2) | ✅ 石楠翔, YeZZzzz1 (2/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
jiangxinyu3, thanks for your pull request. All authors of the commits have signed the CLA. 👍


The following users do not have permission to comment /lgtm or /approve on any module in this PR:
/approve: Ascend-CANN


问题与修复分工
A5 MC2 Open 缺少完整的操作 DFX/任务上报及 KFC 与通信 SQ 的关系,导致通信任务错误归到 stream 65535,Communication 泳道无任务。
本 PR 配套 https://gitcode.com/cann/hcomm/pull/5028 。当前采用 asc-devkit 自主补报 Mc2CommInfo:本仓负责真实展开流与通信 SQ 关系、消息级 DFX 注册及 DeviceOp;HCOMM 保持原有关系上报,负责 SQE KfcInfo、CONDITION 和 MC2 小缓冲区。
已将验证过的实验 PR !6353 内容应用到本 PR,实验 PR 已关闭。以下描述取代旧 reserved/延迟关联方案。
修改内容
<commName>_unfoldEngineCtx 保存/复用展开 Thread,保持与单通信域实际 kernel launch stream 一致。首次 NOT_FOUND 不打印 ERROR;损坏上下文及其他错误仍报错。兼容性与边界
编译与定向测试
配套板端验证(2026-09-23)
用户在黄区 8P 服务器对比 0923 newest 与配套修复包;hccl_api_test 执行 AllGather、AllReduce,32 MiB、FP16、AICPU_TS、-w 0 -n 1。两版本各 16 份 PROF,共 32 份数据库及导出时间线已核对。
修复后每 rank 的 Communication 时间线包含 63/74 个任务及一个算子区间,KFC 逻辑 stream 为 59。原始 KFC=0 与补报 KFC=59 的关系同时存在,但按 stream/task/context/batch 检查未生成重复 KfcTask。解析日志未检出 ERROR/Traceback;两组均有可选采集表缺失 WARNING。
这是上述配套包及两个用例的验证,不代表其他算子、子通信域、静态图、多轮动态采集或性能已全面验证。修复版执行日志另有每进程一次 GetUnfoldThreadInfo 返回 HCCL_E_NOT_FOUND 的 ERROR 误报;asc-devkit 已追加最小修正,保留正常创建流程及其他错误处理,该日志修正尚未重新编译/板测。
关联的Issue
NA