已关闭
test(dynamo): cover assume_constant_result on NPU #42034
2501_93637465创建于 7月18日关闭于 27 天前
test(dynamo): cover assume_constant_result on NPU #42034
已关闭
当前Pull Request已关闭, 关闭人@2501_93637465
7月18日 创建了 pull request,commit 0c3125d6
7月18日 关联了issue:【社区任务】7月社区任务第二期-Ascend for PyTorch API 一致性开发(93),[API一致性] torch.compiler.assume_constant_result NPU兼容性测试补齐
7月18日 关联了issue:【社区任务】7月社区任务第二期-Ascend for PyTorch API 一致性开发(93),[API一致性] torch.compiler.assume_constant_result NPU兼容性测试补齐
atomgit-bot
7月18日 评论:
7月18日 评论:
变更摘要
此 PR 为 torch.compiler.assume_constant_result API 新增独立的 NPU 兼容性测试文件 test/dynamo/test_assume_constant_result.py,验证该 API 在 Ascend NPU 设备上的核心行为:返回值恒定性、torch.compile 捕获能力、连续执行正确性,以及常量函数仅计算一次的特性。
主要改动
- 新增测试类
TestAssumeConstantResult:定义在test/dynamo/test_assume_constant_result.py中,继承自TestCase,包含一个完整的端到端测试用例test_assume_constant_result。 - 验证 API 返回原函数对象:通过
self.assertIs(marked_constant_scale, constant_scale)断言assume_constant_result返回的是原始函数对象本身。 - 验证
torch.compile捕获与 NPU 执行正确性:将被标记函数用于torch.compile(fn, backend="eager", fullgraph=True)编译,使用 NPU Tensor 作为输入,连续两次调用后通过torch.equal断言结果符合预期。 - 验证常量仅计算一次:通过
nonlocal call_count计数器,断言被assume_constant_result标记的函数在编译后仅被调用一次(self.assertEqual(call_count, 1)),证明其结果在编译期间被视作常量。 - NPU 同步保障:在断言前调用
torch_npu.npu.synchronize()确保异步 NPU 操作完成,使潜在错误能被及时捕获。


ascend-robot
7月18日 评论:
7月18日 评论:
atomgit-bot
7月18日 评论:
7月18日 评论:
代码审查
Closing Summary
| 优先级 | 数量 |
|---|---|
| P0 | 0 |
| P1 | 0 |
| P2 | 0 |
| P3 | 1 |
审查文件:test/dynamo/test_assume_constant_result.py — 发现 1 个 P3 问题(NPU 同步调用与 CPU fallback 逻辑不一致)。
总体风险评估:该变更是低风险的。测试逻辑正确,覆盖了 torch.compiler.assume_constant_result 在 NPU 上的核心功能验证。唯一的 P3 问题是一个边界条件守卫缺失,在非 NPU 环境下理论上可能导致不必要的问题,但对该测试的目标运行环境(NPU CI)无实际影响。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


此处折叠了51条消息 查看更多
7月27日 添加了label:docs-ci-pipeline-running
ascend-robot
7月27日 评论:
7月27日 评论:
✅ 跳过 docs ci 检查,没有需要检查的文档文件


7月27日 删除了label:docs-ci-pipeline-running
7月27日 添加了label:docs-ci-pipeline-success
27 天前 关闭了 pull request
【合入来源】
任务来源:https://gitcode.com/Ascend/pytorch/issues/2990
关联 Issue:https://gitcode.com/Ascend/pytorch/issues/3036
Fixes #3036
API:
torch.compiler.assume_constant_result目标分支:
v2.9.0【修改方案】
为
torch.compiler.assume_constant_result补充独立的 NPU 功能测试,验证:torch.compile正常捕获;该 API 由 PyTorch TorchDynamo 提供,不需要新增 torch_npu 算子实现。
新增测试文件:
test/dynamo/test_assume_constant_result.py【资料变更】
不涉及。
【接口变更】
不涉及接口定义变更,仅新增兼容性测试。
【功能验证】
test/dynamo/test_assume_constant_result.pypython -m py_compilegit diff --check本地验证环境:
2.10.0+cpu2.10.0测试结果: