Skip to content

[Feature] A5 HBG AICore 调度:支持 Graph body 原生执行 #2830

Closed

Description

@poursoul

最新进展(2026-11-11)

状态:功能已完成,保持 CLOSED / completed。 原生 Graph 由 #2864 交付;本次补记后续 main 增量,原验收和历史测量仍归原版本。

当前边界: 多 block/MIX predicate 仍由 #2831 跟踪,resident early dispatch 由 #2867 跟踪;本项完成不等于全部组合或 legacy 清理完成。#2869/#2930/#2967/#2989 均已核实包含于 main 0569c7796b86。本次只核对已有交付与证据,未新跑产品测试。

以下保留 #2864 当时的交付范围与测量;其中显式前驱、异步等旧限制以本节后续交付为准。

Summary

为 A5 host_build_graph 的 AICore resident Scheduler 补齐 Graph body 原生调度能力,使含 Graph 调用的任务图能够在 AICore 调度路径上执行并完成依赖释放,无需因 Graph body 整轮回退 legacy AICPU Scheduler。

父 Issue:#2667。沿用该工作线负责人 @poursoul;已有实现与在途 PR 应复用并在本项汇总,不另建竞争实现。

功能完成结论(2026-11-04)

Graph body 原生执行已合入 main,约定支持范围内的功能验收完成,按 #2667 的功能交付口径关闭本项。 负责人继续为 @poursoul。性能验证与退化披露属于功能开发的质量保障;后续性能优化继续跟进,不以性能优化全部收口作为本功能 Issue 的关闭条件。

  • 实现 PR:Add: support native A5 HBG Graph tasks with shared ready queues #2864;合入提交 bd131362e79b。PR 最终 head 为 517ca981c,其开发集成基线为 313499d61。
  • 最终 PR CI 已成功,20 项检查通过;PR 部署与 CodeRabbit 自动检查跳过。此前 4 条 CodeRabbit 检视意见均已修复、回复并 resolved,另补齐 2 条测试断言建议。
  • Host 将 Graph invocation 规划为 ENTER / child / EXIT;AICore resident Scheduler 执行 body、推进内部依赖,并在必要 body 工作真实完成后释放 shell 和外部消费者。AICPU 保留生命周期监督职责。
  • ready work 改为同类型核可共享的队列,默认 T/H8,限制普通任务预取额度;保留 T/G、T/H4、L/G、C/W1、C/W4 等对比配置。

已交付范围与支持边界

范围 合入实现的状态
普通 AIC/AIV、DUMMY、SPMD、MIX、sync-start 在既有容量与资源准入约束内支持 native Graph,沿用 block 所有权与最后完成语义
同一 Definition 多实例、重复执行、普通任务与 Graph 交错 各 invocation 的参数、heap、任务身份和完成状态独立;复用现有 Graph API 与 kernel ABI
predicate 本项支持单 lane、单 block;不将多成员 predicate 组合记为已交付
参数与失败处理 包含 PARAM 视图完整范围、溢出与非法 dtype 检查,以及错误传播和失败时禁止提前释放 EXIT 的验证
不在本次新增支持范围 嵌套 Graph、动态 topology、Graph boundary 显式依赖、任意异步完成;合法但 resident 不支持的形状在执行前整 run 选择 legacy,非法输入失败,执行开始后不 fallback

支持矩阵与契约见设计入口、调度协议和实现与验证索引。归档文档中的开发阶段状态不代替上述实际合入记录。

功能与路径证据

  • 本地审查修复后:473 项 Python 单测、8 个 C++ 测试目标通过;19 项性能清单经过真实 pytest collection 的 case/params/config 一致性检查。该 19 项检查是清单校验,不是重新跑性能。
  • A5 onboard:Graph topology/execution 4 个目标、caller-stream 3 项、native Graph 故障隔离 2 项通过;覆盖 root/fanin 汇合、DUMMY、同 Definition 多实例、MIX/SPMD 及失败后恢复等路径。
  • Graph 用例校验 resident 调度模式,Qwen 共 108 次 fresh native 执行并通过完整 out/K/V 校验;不能用 legacy 数值通过替代这份路径证据。A5/A2A3 的 sim、onboard、UT 及 network1 的完整 CI 结果分别见上述 CI 链接。

性能保障记录与后续优化(不阻塞本功能关闭)

PR 内最后一轮 Qwen 实测来自 fe4801013,运行时代码与 PR 最终 head 一致;配置为 A5 设备 6 独占、40 层、B16、seq_len=3500、seed=1234,5 轮预热后采集 100 个稳态轮。

指标 中位数 p95
Device 38.744 ms 38.985 ms
Host 43.208 ms 44.174 ms
bind 1.302 ms 1.673 ms

相对此前同卡 H8 的 38.433 ms,Device 高约 0.81%;该比较包含主线更新,不能把差值单独归因于 PARAM 检查。详见Qwen 测量记录。

此前 dbf39563c 已完成 7 项固定 benchmark + 11 项筛选 ST + CSA,共 19 项无 Graph 的 golden 和三批各 100 稳态轮;完整对照保留历史基线 8f42cef9、采样条件和退化。其中 7 项 Device 中位数比历史基线高出 5% 以上,不能据此宣称无性能回退。

这些均为有明确版本身份的合入前证据,本次更新没有新跑测试,也没有在合入提交 bd131362e79b 上重新采样。 后续由 @poursoul 继续作为性能质量事项跟进:

Motivation / Use Case

#2768 在本项立项时记录的能力边界是 Graph body 整轮回退 legacy;#2785 已将 A5 HBG AICore 分布式调度、普通 SPMD 和 sync-start 集成到 main。Graph 原生执行是该调度工作线待补齐的功能之一。

仅验证输出正确无法证明 Graph body 使用了 AICore Scheduler,因为 legacy 回退也可能得到正确结果。本项需要同时交付 Graph 执行语义、resident 路径证据和最终集成验收。

Proposed API / Behavior

  1. 支持 Graph shell 与 body 的调度衔接:外部依赖满足并且相应 body 元数据/参数可见后才能启动 roots;内部依赖按真实完成释放;所有必要 body 工作完成后才发布 shell 完成并释放外部消费者。
  2. 保持每次 Graph invocation 的参数、存储、任务身份和完成状态独立,覆盖同一 Definition 的重复及并发调用,防止跨 invocation 或跨 run 的陈旧状态污染。
  3. 明确 body 中普通 AIC/AIV、MIX、SPMD 和 sync-start 的支持矩阵,并保留相应 block 所有权、资源准入和完成合同。嵌套 Graph、predicate、异步完成等组合逐项声明支持范围,未支持组合给出明确诊断。
  4. 保留 Graph 实例化、执行、异常和退出期间的资源生命周期;复用现有 Host 构图及实例化接口。AICore resident Scheduler 负责本项的任务调度与完成语义。

Acceptance criteria

以下功能验收项对应 #2864 声明的支持范围及 PR 验证版本,均已完成。按 2026-11-04 确认的口径,本项以功能交付与正确性验收为关闭依据;统一基线的性能补测和后续优化保留在上面的性能质量跟进中,不据此延迟本项关闭。

  • 给出最终实现 PR、支持矩阵和明确的集成基线;已有候选实现沿用原 PR。
  • 验证外部依赖、body 内依赖、root/sink 汇合、重复调用、并发 invocation,以及声明支持的任务形状。
  • 验证失败传播、安全关闭和资源复用;不会遗漏、重复执行任务或提前发布 Graph 完成。
  • A5 onboard 验收包含结果校验及 scheduler_producer=aicore 或等价的 resident 路径证据,不能以 legacy 回退作为通过;sim 与协议测试分别记录。

Alternatives Considered

继续整轮回退 legacy 可以作为兼容路径,但不满足本项的 AICore 原生调度交付目标。将 Graph 手工展开成普通任务不能替代 Graph invocation 的语义验收。

Additional Context

父工作线:#2667。

现有交付与边界:#2768、#2785;仓库设计入口:tests/fdwic/pa_hbg/a5-hbg-spmd-design.md。

本项按 2026-11-02 的功能拆分建立;最新进展见正文开头,2026-11-04 记录保留原 #2864 验收身份。与同父项的 predicate、异步任务子项分别交付,组合支持按实际依赖协调。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions