已合并
[v2.12.0] Add NPU tests for global full backward module hook APIs #37955
[v2.12.0] Add NPU tests for global full backward module hook APIs #37955
已合并
coconut创建于 6月9日
coconut
coconut
6月9日

【合入来源】

如有社区issue,请关联issue链接
请勿携带内部流程信息(需求链接、问题单、内部issue等)

关联issue:https://gitcode.com/Ascend/pytorch/issues/2323

【修改方案】

一、2 个 API 功能如下

  1. torch.nn.modules.module.register_module_full_backward_hook
    • 为所有 nn.Module 注册全局 full backward hook,在完整反向传播阶段触发回调。
  2. torch.nn.modules.module.register_module_full_backward_pre_hook
    • 为所有 nn.Module 注册全局 full backward pre hook,在完整反向传播前触发回调。

二、社区用例对这 2 个 API 的验证完整性分析

  1. 未检索到这 2 个“全局 API”的直接官方用例;
  2. 上游仅覆盖了实例级 API:
    • register_full_backward_hook
    • register_full_backward_pre_hook
  3. 因此社区现有用例对这 2 个全局 API 的直接验证不完整,需要新增测试文件补齐。

三、NPU 适配

  1. 新增 test/nn/test_global_module_full_backward_hooks.py
  2. 直接验证 torch.nn.modules.module.register_module_full_backward_hook
  3. 直接验证 torch.nn.modules.module.register_module_full_backward_pre_hook
  4. 核心检查点为 hook 是否触发、梯度是否按预期改写;
  5. 相关张量均在 NPU 上执行。

【资料变更】

不涉及

【接口变更】

不涉及

【功能验证】

1. 测试环境

- 操作系统:Ubuntu
- 昇腾硬件信息:NPU
- CANN软件版本:8.5.0
- 安装的对应软件版本:torch 2.12.0+cu130、torch_npu 2.12.0rc1

2. 测试命令

python -u /workspace/torch_npu_v2.12.0/test/nn/test_global_module_full_backward_hooks.py   > /workspace/version_logs/module_hooks_new2_v2.12.0.log 2>&1

3. patch 格式检查真实输出

EXIT_CODE:0

4. 测试真实输出

W0609 14:44:41.813000 33504 venvs/torch2120/lib/python3.11/site-packages/torch/_native/cutedsl_utils.py:55] CuTeDSL operators require optional Python packages `nvidia-cutlass-dsl` and `apache-tvm-ffi`; missing optional dependency `nvidia_cutlass_dsl` (importlib.util.find_spec(nvidia_cutlass_dsl) failed)
[W609 14:44:42.301485790 NPUCachingAllocator.cpp:199] Warning: The current CANN and Soc versions require processing for 32 padding size, with memory allocation. (function operator())
..
----------------------------------------------------------------------
Ran 2 tests in 1.234s

OK
EXIT_CODE:0

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 coconut 的贡献)
coconutcoconut
6月9日 创建了 pull request,commit f0e96f00
coconutcoconut
6月9日 关联了issue:[Usage]: [v2.12.0] Add NPU validation for global full backward module hook APIs
ascend-robotascend-robot成员
6月9日 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
6月9日 评论:

CLA Signature Pass

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

likedislike
此处折叠了49条消息 查看更多
liwei386成员
6月12日 评论:

/approve

likedislike
ascend-robotascend-robot成员
6月12日 添加了label:approvedlgtm
ascend-robotascend-robot成员
6月12日 关闭了关联的issue
ascend-robotascend-robot成员
6月12日 合入了pull request
ascend-robot
ascend-robot成员
6月12日 评论:
流水线 pytorch_gitcode_PR_multiVersion#10605 [ commitID:cfb06479 ] 已完成
likedislike