Fix: track reader anti-dependencies in TensorMap - #1810
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
46c518b to
1cf1b8c
Compare
A5 验证原始证据(全量 reader 语义)这些数据采集自 A5 的历史全量 reader 实现。最终 head 所有硬件命令均通过 任务编号
各组平均值(base -> candidate,单位:微秒)TMR Device 与 Orch 序列
HBG 插桩后的 Orch 序列
中位数汇总
|
1cf1b8c to
15d168f
Compare
A2/A3 验证证据(历史全量 reader 版本
|
设计说明:TensorMap WAR 跟踪与统一 opt-in 语义原有问题修改前,TensorMap 只索引 writer: 因此在下面的访问序列中只能发现 这正是 issue #1306 暴露的 WAR 正确性缺口。把 reader 改成 当前访问语义最终 head
标记必须放在 reader 上。后续 writer 无法追溯发现一个没有留下 reader entry 的普通 依赖与生命周期新的依赖链为: 多个 reader 仍可并行,因为 reader 不查询其他 reader: 实现上的关键约束:
性能含义旧的全量 reader 版本 最终实现把固定成本限制在使用 完整用户语义见 WAR anti-dependency 文档。 |
A2/A3 与 A5 性能变化:read 全进 TensorMap、当前 TMR opt-in 方案与 main两个架构均使用相同口径:分别给出“read 全进 TensorMap 相对 main”和“当前 TMR opt-in 方案相对 main”的性能变化。正数表示变慢,H/D/O 分别表示 Host / Device / Orch;每列取三组组内配对百分比的中位数,每个 case 每组运行 100 轮。最终 head A2/A3数据来源
性能结果
中位数汇总
A5数据来源
A5 当前 TMR opt-in 方案相对 main 的结果由已有两阶段数据复合得到: 性能结果
中位数汇总
|
a0c03fe to
99a933f
Compare
变更摘要
TRACKED_INPUT/add_tracked_input(),让需要约束后续重叠写的 reader 显式发布到 TensorMap。INPUT只查询 writer,TRACKED_INPUT额外注册 reader。INOUT、OUTPUT_EXISTING和 host write 查询 tracked reader 并生成 WAR;多个只读 reader 保持并行。NO_DEP保留 creator 依赖以维持 tensor 生命周期,但不查询或发布 TensorMap access。TRACKED_INPUT自动回退到普通执行路径。证据索引
15d168f1)验证口径
15d168f19ad5edfb9ad5edfbcc121441最终 head
99a933fe在 A2/A3、A5 的 HBG 与 TMR 上统一采用显式 reader 发布。性能数据分别比较“read 全进 TensorMap”和“当前 TMR opt-in 方案”与 main;A5 当前方案相对 main 的结果由已有两阶段配对数据复合计算。所有硬件命令均通过
task-submit执行。验证结论
正数表示变慢,H/D/O 表示 Host / Device / Orch。
A2/A3 性能
alternating_matmul_addCase1benchmark_bgemmCase0paged_attention_unrollCase1paged_attention_unrollCase2paged_attention_unroll_manual_scopeCase1paged_attention_unroll_manual_scopeCase2batch_paged_attentionCase1A5 性能
A5 当前方案相对 main 的结果由已有两阶段数据复合得到:
(1 + read 全进 TensorMap 相对 main) × (1 + 当前方案相对 read 全进 TensorMap) - 1。alternating_matmul_addCase1paged_attention_unrollCase1paged_attention_unrollCase2batch_paged_attentionCase1最终 head 已通过
git diff --check、完整 pre-commit 和公共无硬件 C++ 测试 98/98。Refs #1388
Refs #1306