已合并
test(meta_registrations): add testcase for torch._meta_registrations.register_meta #42108
木路折创建于 7月19日
test(meta_registrations): add testcase for torch._meta_registrations.register_meta #42108
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 木路折 的贡献)7月19日 关联了issue:【社区任务】7月社区任务第二期-Ascend for PyTorch API 一致性开发(3)
atomgit-bot
7月19日 评论:
7月19日 评论:
变更摘要
此 PR 新增测试文件 test/test_library_meta_registrations.py,为 torch._meta_registrations.register_meta 装饰器添加单元测试,覆盖单个算子注册、多算子批量注册以及注册后 meta_table 的状态恢复等场景,确保该 API 的行为符合预期。
主要改动
- 新增
TestLibraryMetaRegistrations测试类:继承自TestCase,包含两个测试用例,验证register_meta的核心行为 test_register_meta_adds_to_meta_table:验证register_meta装饰器将函数正确注册到meta_table,并确认装饰器返回被装饰函数本身;测试结束后通过finally块恢复meta_table原状态test_register_meta_supports_op_list:验证register_meta支持传入算子列表,将同一函数同时注册到多个算子(aten.sub.Tensor和aten.mul.Tensor),并在测试结束后逐个恢复meta_table中的原始值


ascend-robot
7月19日 评论:
7月19日 评论:
atomgit-bot
7月19日 评论:
7月19日 评论:
此处折叠了130条消息 查看更多
22 天前 添加了label:approved
Jingwei Huang
21 天前 评论:
21 天前 评论:
/lgtm


21 天前 添加了label:lgtm
21 天前 合入了pull request
ascend-robot
21 天前 评论:
21 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#13355 [ commitID:743dadf4 ] 已完成


【合入来源】
关联 issue: https://gitcode.com/Ascend/pytorch/issues/2902
pytorch 社区没有针对
torch._meta_registrations.register_meta的独立测试用例,故新增该测试文件,用于验证该 API 的正确性。【修改方案】
一、API 功能说明
torch._meta_registrations.register_meta(op_or_ops)是 PyTorch 内部装饰器,用于将一个函数注册为一个或多个 ATen 算子的 meta 内核,并写入全局meta_table。注册后,调用对应算子的 meta 实现时会执行被装饰的函数。该 API 为 PyTorch 私有接口。二、测试用例完备性说明
PyTorch 官方
test/目录中没有直接调用torch._meta_registrations.register_meta的测试用例,现有测试仅通过elementwise_meta等内部路径间接使用,无法验证装饰器本身的注册行为。本次新增test/test_library_meta_registrations.py,直接验证:meta_table;meta_table原状态,避免跨测试副作用。三、版本适用范围
torch._meta_registrations.register_meta为 PyTorch 内部私有接口,在 PyTorch v2.7.1、v2.9.0、v2.10.0、v2.11.0、v2.12.0、master 各目标分支均存在且函数签名一致,因此本测试用例需提交到上述全部分支。四、NPU 适配
register_meta与meta_table均为纯 Python 层注册逻辑,不涉及任何硬件相关计算、算子调用或设备内存操作,与 CPU/GPU/NPU 完全解耦。昇腾 NPU 环境下无需修改 API 源码,也不需要在测试中导入torch_npu或创建 NPU 张量,可直接复用。【资料变更】
【接口变更】
【功能验证】
v2.7.1 本地运行
TORCH_DEVICE_BACKEND_AUTOLOAD=0 python test/test_library_meta_registrations.pyRan 2 tests in 0.022s, OKv2.9.0 / v2.11.0 / v2.12.0 / master
【CheckList】