已合并
refactor: remove LSTM.forward monkey-patch for v2.10.0 #45456
refactor: remove LSTM.forward monkey-patch for v2.10.0 #45456
已合并
ymdsall创建于 9 天前
ymdsall
ymdsall成员
9 天前

【合入来源】

RFC:https://gitcode.com/Ascend/pytorch/issues/3810

主线修改:https://gitcode.com/Ascend/pytorch/merge_requests/43893

本 PR 将主线已合入修改同步至 $version 分支。该分支固定的 op-plugin 基线已包含 PackedSequence LSTM 后端兼容处理。

【修改方案】

  1. 删除 torch_npu/utils/_module.py 中复制自 PyTorch 官方实现的 _lstm_forward
  2. 删除 _apply_module_patch() 中对 torch.nn.modules.rnn.LSTM.forward 的 monkey patch 注册。
  3. torch.nn.LSTM.forward 恢复使用 PyTorch 官方实现;PackedSequence LSTM 的设备与输出形状适配由 op-plugin 负责。
  4. 不修改测试文件、PyTorch 官方代码、dense LSTM 计算逻辑或 third_party/op-plugin 子模块指针。

【资料变更】

不涉及。

【接口变更】

不涉及。

【功能验证】

  • v2.10.0 基线相比仅修改 torch_npu/utils/_module.py,共删除 139 行;
  • git diff --check:通过;
  • Python 语法编译检查:通过;
  • _lstm_forward 定义、注册和冲突标记残留检查:无残留;
  • 推送阶段 Git Hooks 检查:通过。

本 PR 不新增或修改测试文件,运行时回归由 CI 验证。

【CheckList】

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 ymdsall 的贡献)
ymdsallymdsall成员
9 天前 创建了 pull request,commit 6b4330ac
ymdsallymdsall成员
9 天前 关联了issue:[RFC]: 移除 LSTM.forward Monkey Patch,将 PackedSequence 适配下沉至 op-plugin
atomgit-bot
atomgit-bot
9 天前 评论:

变更摘要

本 PR 为重构优化,将主线已合入的修改同步至 v2.10.0 分支:删除 torch_npu/utils/_module.py 中复制自 PyTorch 官方实现的 _lstm_forward 函数及其在 _apply_module_patch() 中对 torch.nn.modules.rnn.LSTM.forward 的 monkey-patch 注册(共删除 139 行、无新增行)。改动后 torch.nn.LSTM.forward 恢复使用 PyTorch 官方实现,PackedSequence LSTM 的设备与输出形状适配交由 op-plugin 负责。

主要改动

  • 删除 _lstm_forward 函数定义: 移除 torch_npu/utils/_module.py 中约 138 行的 _lstm_forward 实现,包括其对 PackedSequence/普通输入的 hx 初始化、permute_hidden 排序、torch._VF.lstm 调用及 pack 输出的 shape 转换逻辑。
  • 移除 monkey-patch 注册: 删除 _apply_module_patch() 中的 torch.nn.modules.rnn.LSTM.forward = _lstm_forward 语句,使 LSTM 前向不再被 torch_npu 侧覆盖。
  • 恢复官方实现并移交适配职责: torch.nn.LSTM.forward 恢复为 PyTorch 官方实现,PackedSequence LSTM 的设备与输出形状兼容处理改由固定基线的 op-plugin 后端承担,本 PR 不修改测试文件、PyTorch 官方代码及 third_party/op-plugin 子模块指针。
likedislike
atomgit-bot
atomgit-bot
9 天前 评论:

代码审查

✅ 未发现问题

likedislike
ascend-robotascend-robot成员
9 天前 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
9 天前 评论:

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.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
repo-Ascend/pytorch liangsongwei, wanglijun55 (2/2) liangsongwei (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
ascend-robot
ascend-robot成员
9 天前 评论:

当前仓库存在以下 保护分支

Protected Branch Version Release
master
v2.7.1
v2.9.0
v2.10.0
v2.11.0
v2.12.0
v2.10.0-26.1.0
v2.12.0-26.1.0
v2.7.1-26.1.0
v2.11.0-26.1.0
v2.9.0-26.1.0
ci-test

评论 /sync <branch1> <branch2> ... 可将当前 PR 修改同步到其它分支(创建同步 PR):
a) 如果当前 PR 是 Open 状态,同步操作将延迟到 PR 被合并时执行
b) 如果当前 PR 已经 Merged,将立即执行同步操作

注意:

  1. /sync 命令可以指定同步到多个分支,仅最后一个 /sync 命令生效
  2. 如果创建的同步 PR 不正确,可通过向同步 PR 的源分支提交轻量级 PR 完善,或使用 /close 命令关闭
likedislike
AtlasAccountAtlasAccount成员
9 天前 添加了label:ci-pipeline-running
ascend-robot
ascend-robot成员
9 天前 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
9 天前 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
9 天前 评论:

✅ 跳过 docs ci 检查,没有需要检查的文档文件

likedislike
ascend-robotascend-robot成员
9 天前 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
9 天前 添加了label:docs-ci-pipeline-success
AtlasAccountAtlasAccount成员
9 天前 删除了label:ci-pipeline-running
AtlasAccountAtlasAccount成员
9 天前 添加了label:ci-pipeline-passed
AtlasAccount
AtlasAccount成员
9 天前 评论:
流水线 PR-pipeline_pytorch#64475 [ commitID:73308fad ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_X86 >>>
Build_ARM >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
patch_test 🛑 >>>
Build_X86_213 🛑 >>>
Build_ARM_213 🛑 >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 codecheck_pre-commit >>>
check_error >>>
lintrunner >>>
开源片段检查 SCA >>>
开发者测试 UT_ARM_A3_Part_01 🛑 >>>
UT_ARM_A3_Part_02 🛑 >>>
UT_ARM_A2_Part_01 >>>
UT_ARM_A2_Part_02 >>>
UT_ARM_A2_Part_03 >>>
UT_inductor_Part_01 🛑 >>>
UT_inductor_Part_02 🛑 >>>
UT_inductor_Part_03 🛑 >>>
UT_inductor_Part_04 🛑 >>>
UT_DIST_ARM_Part_01 🛑 >>>
UT_DIST_ARM_Part_02 🛑 >>>
UT_DIST_ARM_Part_03 🛑 >>>
UT_DIST_ARM_Part_04 🛑 >>>
UT_ARM_A2_Select_Part_01 >>>
UT_ARM_A2_Select_Part_02 >>>
UT_ARM_A2_Part_213 🛑 >>>
UT_inductor_Part_213 🛑 >>>
UT_DIST_ARM_Part_213 🛑 >>>
UT_ARM_A2_Select_Part_213 🛑 >>>
流水线 PR-pipeline_pytorch >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员[wujinyuan1, huangjingwei, liangsongwei, yashi999, culechan, Dring, wuyouqi1, L1919_snow, qq_52711437, WhiteNight12, nomiz, xiu_21, ffmh, wanglijun55, hss-shuai, husichao, smallsilly, lanshaozuishuai, jimmyisme1, lzy0920232, alpha-junh, Sunshine_Youngster, wei_zhuoyi, zhangyihuiben, zyw-hw, zzzkeke, rmch, yangch0324, LucciC, AACAES, renyujin, wjlflyer, senzhen-town, pengjingyou, qsc97, limuan, yule100, xiaoqi-zhou, kuhn7, chenxingying, hanye02, zichun_ye, anyrenwei, kkjocker, wangzili121, Lu_G, yvjc, puddingfjz, HandsoemLemon, bigprestigee1, huawuyi, zhenyu10, dairenjie, du-jin-hang, zou-jieyu, adelaideliu, TrHan, wanlinan, Windwindzzz, pengqihw, kisnwang, yuheng_wang, honghao_wang, jizewei, zhangguoguang, sunyu-xuan, chenrayray, hbhu_bin, liujunzhu, c_34, LiNuoh, maoyuanpeng1, zzhongmin, zhaoyu65, bellatan, jiabaolin, zhuofanshen, wencaiwen, lu_zhuge, caoshuyang, molly12, lyx324521, LQ1206, gitcode-chenjiao, cai-weiwei1989, CHDong, ogqin, yuanlipingGit, xuqinglin1, lqz2, zouwei1, chaoluoa, paradox325, jackzhang1116, yaoyao, akh, yujiacheng, dengjie0116, Hubert11111, Shine_Ws, wslhj555, longqiand, OYtao666, JiaqingQiang, luyyyy, Kingbelial, zhanghaiyu0101, wenxp1018, yanliu-luoluo, ksun_sekiro, liyong328, wgzheng, tangky, vivi_is_coding, aoiaoisola, weixin_44494597, wangmengmengwang65667, hid57809721, qq_35468730, comeonup, C547032, gcw_m5OQChA4, yao_yao_ling_xian, cnnbwcy, szqfes_12, cora_19, cann_lilin, can, shawnylee233, fanglanyue0916, hhz0, LiNuohang, taohuoquan, Jesse, WSs_321]评论有效
  • compile、compile_inductor、compile_torchair : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
wanglijun55成员
9 天前 评论:

/lgtm

likedislike
ymdsallymdsall成员
6 天前 关联了里程碑:TorchNPU-v2.14.0
梁松伟
梁松伟成员
6 天前 评论:

/approve

likedislike
ascend-robotascend-robot成员
6 天前 添加了label:approvedlgtm
ascend-robotascend-robot成员
6 天前 删除了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
6 天前 评论:

The following label is not ready.

ci-pipeline-passed: The ci-pipeline-passed label is expired. Please compile again.

likedislike
ymdsall
ymdsall成员
6 天前 评论:

compile

likedislike
AtlasAccountAtlasAccount成员
6 天前 添加了label:ci-pipeline-running
ascend-robot
ascend-robot成员
6 天前 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
6 天前 删除了label:docs-ci-pipeline-success
ascend-robotascend-robot成员
6 天前 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
6 天前 评论:

✅ 跳过 docs ci 检查,没有需要检查的文档文件

likedislike
ascend-robotascend-robot成员
6 天前 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
6 天前 添加了label:docs-ci-pipeline-success
AtlasAccountAtlasAccount成员
6 天前 删除了label:ci-pipeline-running
AtlasAccountAtlasAccount成员
6 天前 添加了label:ci-pipeline-passed
AtlasAccount
AtlasAccount成员
6 天前 评论:
流水线 PR-pipeline_pytorch#64914 [ commitID:73308fad ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_X86 >>>
Build_ARM >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
patch_test 🛑 >>>
Build_X86_213 🛑 >>>
Build_ARM_213 🛑 >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 codecheck_pre-commit >>>
check_error >>>
lintrunner >>>
开源片段检查 SCA >>>
开发者测试 UT_ARM_A3_Part_01 🛑 >>>
UT_ARM_A3_Part_02 🛑 >>>
UT_ARM_A2_Part_01 >>>
UT_ARM_A2_Part_02 >>>
UT_ARM_A2_Part_03 >>>
UT_inductor_Part_01 🛑 >>>
UT_inductor_Part_02 🛑 >>>
UT_inductor_Part_03 🛑 >>>
UT_inductor_Part_04 🛑 >>>
UT_DIST_ARM_Part_01 🛑 >>>
UT_DIST_ARM_Part_02 🛑 >>>
UT_DIST_ARM_Part_03 🛑 >>>
UT_DIST_ARM_Part_04 🛑 >>>
UT_ARM_A2_Select_Part_01 >>>
UT_ARM_A2_Select_Part_02 >>>
UT_ARM_A2_Part_213 🛑 >>>
UT_inductor_Part_213 🛑 >>>
UT_DIST_ARM_Part_213 🛑 >>>
UT_ARM_A2_Select_Part_213 🛑 >>>
流水线 PR-pipeline_pytorch >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员[wujinyuan1, huangjingwei, liangsongwei, yashi999, culechan, Dring, wuyouqi1, L1919_snow, qq_52711437, WhiteNight12, nomiz, xiu_21, ffmh, wanglijun55, hss-shuai, husichao, smallsilly, lanshaozuishuai, jimmyisme1, lzy0920232, alpha-junh, Sunshine_Youngster, wei_zhuoyi, zhangyihuiben, zyw-hw, zzzkeke, rmch, yangch0324, LucciC, AACAES, renyujin, wjlflyer, senzhen-town, pengjingyou, qsc97, limuan, yule100, xiaoqi-zhou, kuhn7, chenxingying, hanye02, zichun_ye, anyrenwei, kkjocker, wangzili121, Lu_G, yvjc, puddingfjz, HandsoemLemon, bigprestigee1, huawuyi, zhenyu10, dairenjie, du-jin-hang, zou-jieyu, adelaideliu, TrHan, wanlinan, Windwindzzz, pengqihw, kisnwang, yuheng_wang, honghao_wang, jizewei, zhangguoguang, sunyu-xuan, chenrayray, hbhu_bin, liujunzhu, c_34, LiNuoh, maoyuanpeng1, zzhongmin, zhaoyu65, bellatan, jiabaolin, zhuofanshen, wencaiwen, lu_zhuge, caoshuyang, molly12, lyx324521, LQ1206, gitcode-chenjiao, cai-weiwei1989, CHDong, ogqin, yuanlipingGit, xuqinglin1, lqz2, zouwei1, chaoluoa, paradox325, jackzhang1116, yaoyao, akh, yujiacheng, dengjie0116, Hubert11111, Shine_Ws, wslhj555, longqiand, OYtao666, JiaqingQiang, luyyyy, Kingbelial, zhanghaiyu0101, wenxp1018, yanliu-luoluo, ksun_sekiro, liyong328, wgzheng, tangky, vivi_is_coding, aoiaoisola, weixin_44494597, wangmengmengwang65667, hid57809721, qq_35468730, comeonup, C547032, gcw_m5OQChA4, yao_yao_ling_xian, cnnbwcy, szqfes_12, cora_19, cann_lilin, can, shawnylee233, fanglanyue0916, hhz0, LiNuohang, taohuoquan, Jesse, WSs_321, SCh_zx]评论有效
  • compile、compile_inductor、compile_torchair : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
ascend-robotascend-robot成员
6 天前 合入了pull request
AtlasAccount
AtlasAccount成员
6 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#14743 [ commitID:73308fad ] 已完成
likedislike