| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[feat] [master] Update DVM r2.11 Co-authored-by: huangchengnuo<huangchengnuo1@huawei.com> # message auto-generated for no-merge-commit merge: !47318 merge feat/dvm-r211-master-20260929 into master [feat] [master] Update DVM r2.11 Created-by: SorryNaCN Commit-by: huangchengnuo Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 Fixes https://gitcode.com/Ascend/pytorch/issues/5234 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 移植自 [!43991](https://gitcode.com/Ascend/pytorch/pull/43991),目标分支 master。 保留 master 的 Triton 边界、整数 reduction axis 处理及现有 C++ 结构;不恢复 master 已移除的旧 matmul_backward 分解。测试沿用 test/_inductor/dvm/ 目录。 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测试用例看护,并补充测试自验证截图 本次移植验证: - 基于 master 最新提交 b16969cbfadc42d0ee2505856a9c3f45f501cb54,移植源 MR !43991 的提交 5f8ec12a41bd4ab2aa9d3d80d78c8ac21a2f7948;本分支 1 个提交、13 个文件,DVM gitlink 保持为 2b3f462f116e491574ccc49cda1ae1a01e58cfe6。 - 本分支修改的 Python 文件 py_compile、git diff --check 通过;测试文件与源 MR 一致,RMSNorm 分解、矩阵乘规则和配置的静态一致性检查通过。 - 新增 test_npu_rms_norm 验证默认 forward 分解,test_rms_norm_decomp_disabled 同时禁用 forward、启用 backward;两者已在源 v2.9.0 的 Ascend910B3 / CANN 9.0.1 环境通过生成代码和数值验证。 - 源 v2.9.0 已验证 RMSNorm backward 显式启用后生成 DVM kernel、无原生 backward 调用且数值一致;DVM 分解表和测试 helper 恢复同步到本分支。 - master 的 pybind_api.cpp / pybind_api.h 已通过仓库配置的 clang-format 19.1.4 和 CLANGFORMAT adapter 检查,修正 GatherLoad 换行格式。 - 本移植分支尚未构建 wheel 或运行对应 PyTorch 版本的 NPU 测试;源分支结果不作为本分支设备验证结果,CI 待确认。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47318 | 30 天前 | |
feat(_inductor): Support DVM for the master branch Co-authored-by: huangchengnuo<huangchengnuo1@huawei.com> # message auto-generated for no-merge-commit merge: !39780 merge support-dvm-master-20260701 into master feat(_inductor): Support DVM for the master branch Created-by: SorryNaCN Commit-by: huangchengnuo Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 关联社区 issue:https://gitcode.com/Ascend/pytorch/issues/1962 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 本 PR 将 v2.10.0 分支中已验证的 DVM 相关能力迁移到 master,为 inductor 增加 DVM 后端和融合支持。 1. 引入 DVM 第三方依赖并接入构建,仅在 .gitmodules 中新增 DVM submodule,保留目标分支已有 submodule 配置。 2. 新增/迁移 DVM inductor 代码,包括 mlir_fusion、graph_fusion、DVM op emitter、decomp、codegen、工具函数和相关测试。 3. 新增 DVM C++ pybind 接口,并在 _C 初始化阶段注册 torch_npu._C.dvm 相关绑定。 4. 调整 torch_npu._inductor 后端加载逻辑,支持 npu_backend=dvm;DVM 后端复用 MLIR patch 与 codegen backend 注册流程。 5. 调整 dynamo/inductor wrapper,使 mlir 与 dvm 路径通过 NPU backend scope 生效,覆盖初始化与调用阶段。 6. 补充 DVM 相关 UT 与 public bindings 清单,覆盖后端加载、kernel、graph fusion、mlir fusion 等场景。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 涉及 torch_npu._inductor 的后端选择能力扩展: 1. 支持通过 torch._inductor.config.npu_backend = "dvm" 选择 DVM 后端。 2. 支持通过 torch.compile(..., options={"npu_backend": "dvm"}) 选择 DVM 后端。 3. 支持通过环境变量 TORCHINDUCTOR_NPU_BACKEND=dvm 选择 DVM 后端。 4. 新增 torch_npu._C.dvm C++ pybind 绑定,供 DVM Python 侧构图与运行调用。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已完成本地静态验证: 1. git diff --check origin/master 2. 对相对 origin/master 变更的 Python 文件执行 python -m py_compile 3. 已在 PR 评论中发送 compile 触发编译流水线 新增/迁移测试覆盖: 1. DVM kernel 基础能力测试 2. DVM graph fusion 测试 3. DVM mlir fusion 测试 4. DVM public bindings 清单校验 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39780 | 3 个月前 |