已合并
[feat] Update DVM r2.11 #43991
[feat] Update DVM r2.11 #43991
已合并
SorryNaCN创建于 8月7日
SorryNaCN
SorryNaCN成员
8月7日

【合入来源】

(如有)请关联需求文档/issue链接

Fixes https://gitcode.com/Ascend/pytorch/issues/5234

【修改方案】

请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列
如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容)

  1. 升级 DVM 到 r2.11。
  2. 支持 DVM cat 融合。
  3. 支持 DVM 完整 View 融合。
  4. 支持 DVM VF 融合。
  5. 修复 bug 并重构部分代码。
  6. 增加 DVM 分解启用/禁用列表与矩阵乘融合否决回调,并补充测试。
  7. BF16 concat 输入 cast 在非 Ascend950 或 bf16_vector_keep_promoted=True 时执行。

【资料变更】

请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及”

不涉及。

【接口变更】

请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及”

DVM 配置新增(在加载 DVM backend 前设置):

  • enable_decomp_list = []、disable_decomp_list = []:接受算子重载或重载包,禁用优先;启用时优先使用 dvm_decompositions 表中的 DVM 专用实现,例如 enable_decomp_list=[torch.ops.npu.npu_rms_norm_backward] 可开启 RMSNorm backward 分解;未指定时保持原默认行为。
  • matmul_fusion_rule = None:可设置 (n, m, k) 回调,对应 (..., m, k) @ (..., k, n)。仅显式返回 False 时否决 MM/BMM/ADDMM/BADDBMM 融合,其他返回值沿用原规则;不会绕过总开关或形状/类型限制,K=1 的逐元素快捷路径保留原有 lowering,不额外插入回调判断。

【功能验证】

说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤
新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图

本次配置变更验证:

  • 新增 test_npu_rms_norm 验证默认 forward 分解;test_rms_norm_decomp_disabled 在独立进程中同时禁用 forward、启用 backward 分解,无全局配置赋值,测试 helper 保持原实现。
  • Ascend910B3 / CANN 9.0.1:上述两个用例通过,检查生成代码中的原生调用与 DVM kernel,并验证 forward 和 backward 结果与 eager 数值一致。
  • BF16 concat 条件验证:8 组图变换检查通过(两种硬件标记 × 两种开关状态 × BF16/FP16),原图不变;910B3 上开关两种状态下的 BF16 cat/cat-reduce 共 4 次运行通过。Ascend950 分支仅做图变换检查,未进行 950 设备测试。
  • 删除 check_k1_fusion 和 K=1 分支中的重复回调判断,集中保留 mm_rule 的否决规则;清理无关注释,测试 helper _run_and_get_code_with_dvm 保持原实现。
  • DVM 分解表验证:默认不开启 RMSNorm backward,算子包和 .default 均可显式启用,禁用优先;910B3 / CANN 9.0.1 上启用后生成 DVM kernel,无原生 backward 调用,数值与 eager 一致。原禁用分解用例复测通过。
  • py_compile、git diff --check 通过。
  • 运行验证使用本 MR 的 Python 源码及现有 torch_npu 2.9.0.post7+git7148a13 二进制;未重新构建最新 DVM wheel,CI 状态另行确认。

【CheckList】

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

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 SorryNaCN 的贡献)
SorryNaCNSorryNaCN成员
8月7日 创建了 pull request,commit bb1188d1
ascend-robotascend-robot成员
8月7日 添加了label:ascend-cla/yes
ascend-robotascend-robot成员
8月7日 添加了label:needs-issue
ascend-robot
ascend-robot成员
8月7日 评论:

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 ✅ zichun_ye, 楚浩田 (2/2) ✅ zichun_ye, 楚浩田 (2/1)
test ✅ zichun_ye, 楚浩田 (2/2) ✅ zichun_ye, 楚浩田 (2/1)
torch_npu/_inductor ✅ 楚浩田, hbhu_bin, zichun_ye (3/2) ✅ zichun_ye, 楚浩田 (2/1)
torch_npu/csrc/inductor ✅ 楚浩田, hbhu_bin, zichun_ye (3/2) ✅ zichun_ye, 楚浩田 (2/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
此处折叠了537条消息 查看更多
ascend-robotascend-robot成员
29 天前 添加了label:lgtm
ascend-robotascend-robot成员
29 天前 关闭了关联的issue
ascend-robotascend-robot成员
29 天前 合入了pull request
ascend-robot
ascend-robot成员
29 天前 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
AtlasAccount
AtlasAccount成员
29 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#15844 [ commitID:5f8ec12a ] 已完成
likedislike