已合并
test: 新增 GraphPickler NPU 适配验证与统一运行脚本 #34859
test: 新增 GraphPickler NPU 适配验证与统一运行脚本 #34859
已合并
yuhongming-2026创建于 4月30日
yuhongming-2026
4月30日

【合入来源】

#1607
请勿携带内部流程信息(需求链接、问题单、内部issue等)

【修改方案】

  1. 新增统一验证脚本 run_graphpickler_npu_unified.py,用于自动选择可用后端并验证 torch.fx._graph_pickler 三大 API 在 CPU/NPU 环境中的适配性。
  2. 支持的目标 API 包括 GraphPickler.dumpsGraphPickler.loads 以及 Option/Options 配置项,兼容 torch.fx._graph_picklertorch_npu.fx._graph_picklergraphpickler_npu_adapter 三种后端。
  3. 在验证逻辑中实现:API 存在性检查、CPU round-trip 序列化/反序列化验证、NPU round-trip 验证、Option/Options 参数测试和输出一致性对比。
  4. 参考已有验证结果文档和报告,确认 graphpickler_npu_validation_report.json 中三大 API 均通过验证,Option 配置测试 7/7 通过,NPU 功能测试通过且输出完全匹配。
  5. PR 文档内容已基于目录下现有 NPU_ADAPTER_FULL_REPORT.mdNPU_ADAPTER_2100_REPORT.mdADAPTATION_REPORT.md 等验证报告进行整理。

【资料变更】

不涉及

【接口变更】

不涉及

【功能验证】

  • 通过统一验证脚本 run_graphpickler_npu_unified.py 运行结果确认:
    • NPU 可用:torch.npu.is_available() 返回 true。
    • API 存在性:GraphPickler.dumpsGraphPickler.loadsOption 均存在且可调用。
    • CPU round-trip:序列化成功,反序列化成功,输出与原始模型一致。
    • NPU round-trip:NPU 模型序列化/反序列化成功,NPU 输出完全匹配。
    • Option 配置测试:默认/压缩/保留设备信息/包含元数据/完整性校验/二进制格式/全部选项均通过,7/7 通过率 100%。
  • 参考验证报告:graphpickler_npu_validation_report.jsonNPU_ADAPTER_FULL_REPORT.mdNPU_ADAPTER_2100_REPORT.md 等。
  • 已补充 PR 文档,便于 reviewer 直接确认适配结果。

【CheckList】

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 yuhongming-2026 的贡献)
yuhongming-2026yuhongming-2026
4月30日 创建了 pull request,commit 750e2d2d
yuhongming-2026yuhongming-2026
4月30日 关联了issue:【开源实习】Torch-NPU API一致性对齐:补齐测试用例、API功能对齐、补齐文档(1)
ascend-robot
ascend-robot成员
4月30日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
test 李伟, huangjingwei (2/2) 李伟 (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

yuhongming-2026, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
ascend-robotascend-robot成员
4月30日 添加了label:ascend-cla/yes
此处折叠了79条消息 查看更多
liwei386成员
5月8日 评论:

/approve

likedislike
ascend-robotascend-robot成员
5月8日 添加了label:approvedlgtm
openLiBingCI成员
5月8日 评论:

本PR中共发现代码检查告警抑制1处,请Committer检视合理性

本评论自动扫描PR中使用的开源代码检查工具(ruff、clang-tidy、CodeQL等)的屏蔽注释。
这些屏蔽注释会阻止开源代码检查工具对特定代码区域的检测,可能导致潜在问题被忽略。

点击下载完整报告

文件路径 行号 屏蔽类型 代码片段 工具名称
test/fx/test_fx_graph_pickler.py 39 块级屏蔽 33: return [(node.op, str(node.target)) for node in graph.nodes]
36: def _extract_graph(loaded_obj: object) -> fx.Graph:
37: if isinstance(loaded_obj, fx.Graph):
38: return loaded_obj
39: return loaded_obj.graph # type: ignore[union-attr]
42: def _build_options():
43: options_cls = getattr(_graph_pickler, "Options", None)
44: if options_cls is None:
45: return None
47: signature = inspect.signature(options_cls)
mypy
likedislike
ascend-robot
ascend-robot成员
5月8日 评论:

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: 李伟.
Reviewers who wrote a comment of /lgtm are: 李伟, huangjingwei.

likedislike
ascend-robotascend-robot成员
5月8日 合入了pull request