已合并
test(fx): add Interpreter internal API test cases for NPU [v2.12.0] #43911
zkx创建于 24 天前
test(fx): add Interpreter internal API test cases for NPU [v2.12.0] #43911
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 zkx 的贡献)atomgit-bot
24 天前 评论:
24 天前 评论:
变更摘要
本 PR 新增测试文件 test/test_fx_interpreter_npu.py,为 torch.fx.Interpreter 的四个内部方法(boxed_run、fetch_attr、map_nodes_to_values、fetch_args_kwargs_from_env)补充 NPU 一致性验证用例。PyTorch 官方社区未对这些内部方法提供直接测试,因此新增 7 个自写用例,覆盖正常场景与边界场景(如 boxed_run 参数列表清空)。测试通过 torch.accelerator.current_accelerator() 自动检测 NPU 设备,不具备 NPU 环境时回落至 CPU。
主要改动
- 新增
test/test_fx_interpreter_npu.py测试文件:包含 4 个测试类、7 个测试用例,分别验证boxed_run执行正确性与参数清空行为、fetch_attr获取Parameter和子模块、map_nodes_to_values对位置参数和关键字参数的映射、以及fetch_args_kwargs_from_env从执行环境取参的正确性。 - NPU 设备自适应:通过
device_type = acc.type if (acc := torch.accelerator.current_accelerator()) else "cpu"在文件顶层获取设备类型,所有测试张量均通过device=device_type参数直接在目标设备上创建,确保在 NPU 和 CPU 环境下均可运行。 - 测试用例依赖的图模块构建方式:利用
symbolic_trace将简单torch.nn.Module子类(如AddModule、M)转换为GraphModule,再传入Interpreter以构造可测试的执行上下文。


ascend-robot
24 天前 评论:
24 天前 评论:
atomgit-bot
24 天前 评论:
24 天前 评论:
此处折叠了92条消息 查看更多
梁松伟
15 天前 评论:
15 天前 评论:
/approve


15 天前 添加了label:approvedlgtm
15 天前 删除了label:ci-pipeline-passed
15 天前 合入了pull request
ascend-robot
15 天前 评论:
15 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#14070 [ commitID:a0c7bd78 ] 已完成


【合入来源】
【修改方案】
一、API功能
二、测试用例完备性说明
三、NPU适配
3.1 API适配:无需修改。4 个方法均为纯框架层图解释逻辑,与底层硬件解耦。
3.2 测试用例适配:新增用例在 import 后添加设备获取命令 device_type = acc.type if (acc := torch.accelerator.current_accelerator()) else "cpu",
全部张量通过 .to(device_type) 运行在 NPU 上(CPU 环境回落 cpu)。
【资料变更】
【接口变更】
【功能验证】
【CheckList】