Refactor: 对齐 A5 deferred release 与 Main - #12
Open
yanghaoran29 wants to merge 3 commits into
Open
Conversation
基于连续物理cluster分核,为每个任务引入GLOBAL、DIE0和DIE1 domain,并为AIC、AIV和MIX维护按domain直接索引的ready queue。completion、async-wait、deferred-release和Scheduler-local continuation传播任务domain,使固定Die的依赖链尽量在对应Die内完成。 按样例的自然依赖粒度分配任务:BGEMM按group,PA unroll和manual PA按batch链,Batch PA按chunk,Alternating根任务在两侧均分。Qwen3按MLP分片保持Gate/Up、SiLU和Down同Die,并将非sync-start多核SPMD拆成两个逻辑block区间;sync-start attention和高fanin dcr_xgamma保留为GLOBAL单任务。 分支已rebase到Main 80dd3cd,并适配最新Tensor及PTO2退役后的runtime接口。卡1同机重新测试Main和本提交:非Qwen每个case 100轮,Qwen 5轮取Device中间3轮。Alternating改善8.19%,Batch PA改善1.89%,Qwen改善5.63%,BGEMM回退0.65%;4个PA unroll/manual case回退14.89%至21.40%,8 case Device几何平均回退6.62%。最新数据、限制说明及当前代码生成的8张四级原始泳道随提交保存。
yanghaoran29
force-pushed
the
perf/a5-main-style-deferred-release-20260827
branch
2 times, most recently
from
August 27, 2026 12:53
ab6acf5 to
f6157a3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
当前 A5 双 Die 方案在 Main 的 deferred-release 逻辑上增加了“每轮最多处理 16 个 task”的微批,同时在批内聚合重复 producer。该阈值能带来小幅性能收益,但很难给出与 workload、fanin 宽度或 ring 压力无关的通用依据。
本 PR 直接面向
main,保留双 Die task-domain/locality 方案,但将 deferred release 恢复为 Main 的简单语义:触发 drain 时逐 task 处理,直到当前 backlog 清空。80dd3cd96e568e6f3ded9c11b68e7c267a31343d629c7cdef4e83b039fe83de1ec87d948ee4bb1854629184d23b51beefe6cff098da4664bf44440879dc809ec84eb27e1fa0f17283872b05387af58fc;PR head 在此源码上 amend 了报告、skill 与实验 artifactbe5ccb765a4ce5d14ca5da8b0e2f182d7f003369保留的双 Die 机制
GLOBAL、DIE0或DIE1。Deferred release 对齐
保留 256-entry completed-task backlog,但移除:
DEFERRED_RELEASE_BATCH=16;release_deferred_batch();release_producer_delta();容量满、idle、dummy、async-wait 和退出路径现在都循环调用
on_task_release(),直到当前 backlog 清空。PUBLISH_INTERVAL_K=16仍保留,它只控制 ring watermark 向 SM 的发布间隔,不是 deferred-release task 上限。三方性能结论
设备为 Ascend950PR_9579 卡 1,CANN 9.2.0,runtime 为
tensormap_and_ringbuffer。Main 与 Before 使用历史干净构建数据,当前版本使用与本提交 patch-id 完全相同的本地实验数据。非 Qwen 各 100 轮算术平均;Qwen 运行 5 轮并按 Device 删除最快和最慢轮,取对应中间 3 轮平均。负数表示更快。
其他指标的 8-case 几何平均:
相对带微批的 Before,当前版本 Device 几何平均慢
0.75%;Batch PA 回退最大,为2.97%,BGEMM 改善2.28%,Qwen 改善1.30%。相对 Main,当前版本 Device 几何平均仍改善15.16%。因此这不是纯性能优化,而是明确的设计取舍:放弃一个难以给出通用依据的 16-task 阈值,换取与 Main 一致、容易解释和维护的 release 行为。
后续 Qwen3 Die-locality 对齐
当前 head 在
4629184d上恢复已验证的 Qwen3 确定 Die 归属:residual_rms_castconsumer 同 Die;12 + 12改为按 shard 边界拆成4 + 10 + 10;mlp_out_seed和 85-edge fanin 的dcr_xgamma继续保持 GLOBAL。本次只改 3 个 Qwen 文件;它们与历史实验最终版本
cd5eefef对应文件逐字一致。相对4629184d的 Qwen 5 轮中间三轮结果:4629184dDevice/Effective/Scheduler 方向一致,但直接变化仍在 ±2% 噪声区间。相对 Main,当前 Qwen Device 改善
3.46%。Qwen 新采 1 份 level-4 泳道;其余 7 份沿用并复制 release 对齐快照的历史泳道。验证与泳道
合并报告:
outputs/perf-updates/20260827_202244_qwen3-die-locality-main-style-release.md;性能原始日志、汇总与 8 份泳道:
outputs/perf-updates/20260827_202244_qwen3-die-locality-main-style-release/;test_a5_scheduler_state、test_a5_wiring、test_a5_aicore_completion_mailbox通过;8 个默认样例 golden 全部 PASS;
7 个非 Qwen 样例各完成 100/100 轮,Qwen 完成 5 轮;
8 个样例各采集 1 次 level-4 chip swimlane,8/8 PASS;
8 份原始泳道的 AICore/AICPU task 和转换后的 Perfetto trace 均非空;
PTO-ISA checkout 与 pin 一致,
git diff --check通过。限制