feat(sync): split cross and intra block interfaces - #1204
Conversation
|
Resolved: ci-sim runtime is back within its soft budget.
The previous duration warning is resolved. This status is advisory only. |
0e4b1c7 to
e7fef55
Compare
There was a problem hiding this comment.
结论:建议 Request changes。基于当前 PR head 93f6339,发现 4 个接口相关问题。
-
[P1] A5 旧
sync.set/wait调用方迁移不完整新实现忽略
targetArch,统一把pto.sync.set/wait降成 FFTS cross-block 操作(PTOToEmitC.cpp),同时 A5 静态 event ID 被限制为0..15(PTO.cpp)。但仓库仍有 A5 调用明确依赖旧的 intra-block 语义,例如:
test_intercore_sync_a5.py仍发送 ID0和16。runop.sh明确要求生成set/wait_intra_block,并禁止 FFTS 调用。tinsert_acc2vec.pto的 Cube→Vector 同步也尚未迁移。
静态 ID
16会被 verifier 拒绝;其余调用会静默进入错误的同步域,可能导致运行时死锁。需要全面搜索 A5 调用并迁移到pto.set_intra_block/pto.wait_intra_block,同步更新校验脚本及生成样例。 -
[P1]
ffts_mode=2会被静默改成 mode 0_named_sync_event_op对值2不生成属性,但pto.set_cross_block的 ODS 默认值是0(PTOOps.td)。因此公开接口:pto.set_cross_block(..., ffts_mode=2)
不会报错,实际却生成 mode 0。同步模式被静默改变可能造成错误匹配或死锁。既然 named cross-block 接口固定为 mode 0,建议删除该参数,或只接受
0并立即报错。 -
[P2] 删除旧公共名称后,内部生成规范仍引用旧接口
PR 只导出新名称(
ptodsl/pto.py),但 VMI 重写规范仍要求生成set_cross_flag、wait_cross_flag、set_intra_flag和wait_intra_flag(mi-dsl-spec.md)。按该规范生成的新代码会直接遇到不存在的接口。需要同步规范;另外这次是硬删除公共 API,最好提供弃用别名或明确的 breaking-change/migration 说明。
-
[P2] 用户文档与实际接口约束矛盾
文档先声明 cross-block event ID 为
0..15,实现也允许五种 pipe,但:- 参数表仍说只接受
Pipe.FIX(10-sync-ops.md)。 - 后文又称 cross-core 范围是
0..7(10-sync-ops.md)。
应统一 pipe 集合和 event ID 范围,避免用户按错误契约编写同步代码。
- 参数表仍说只接受
|
已按 review 完成修复,提交:f66862220(fix(sync): address block interface review)。
验证:
另执行了 |
f668622 to
e232d25
Compare
|
已 rebase 到 本次 CI 失败是 本地验证:
新 CI 已触发: |
A3 板测失败
失败用例
|
Summary
pto.set_cross_block,pto.wait_cross_block,pto.set_intra_block, andpto.wait_intra_block.pto.sync.set/waitlimited to FFTS modes0/1/2.Lowering
pto.sync.set/waitwith mode0.__builtin_cce_set_intra_block/__builtin_cce_wait_intra_block.ffts_cross_core_sync/wait_flag_devusing CANN 9.1FFTS_MODE_VAL(mode2); static IDs are[0,15].Rebase
official/main(e0647ffa).a1d0f724938283c8a65679cacc8a640b68fa6522: its ptobc test-data fix is already on main.Validation
ninja -C build PTOASCompilerPYTHONPATH=build/python:ptodsl python3 -m unittest discover -s ptodsl/tests -p test_vector_cube_ops.py