| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[master][Fix] Fix static check errors detected by CODESPELL Co-authored-by: thickhair<zp2165064878@163.com> # message auto-generated for no-merge-commit merge: !38552 merge code_spell_fix_master into master [master][Fix] Fix static check errors detected by CODESPELL Created-by: thickhair Commit-by: thickhair Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 https://gitcode.com/Ascend/pytorch/issues/1865 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!38552 | 2 个月前 | |
refactor: eliminate hccl sequence-number patch on torch 2.14+ Co-authored-by: qq_45774794<hetiancheng1@huawei.com> # message auto-generated for no-merge-commit merge: !44969 merge master into master refactor: eliminate hccl sequence-number patch on torch 2.14+ Created-by: qq_45774794 Commit-by: qq_45774794 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) ### 1. 上游修复分析(pytorch#190138,2026-07-17 合入 main,2.14 nightly 已包含) 上游 ProcessGroup::getSequenceNumberForGroup() 原来有白名单 gatebackendSupportsSequenceNumbers(),仅放行 GLOO/NCCL/XCCL/UCC,HCCL 注册CUSTOM 后端会被 TORCH_CHECK 拒绝,这是 torch_npu 需要 patch 的根因。该 PR 删除了白名单,改为无条件转发到默认后端: cpp // torch/csrc/distributed/c10d/ProcessGroup.hpp(社区 main,修改后) virtual uint64_t getSequenceNumberForGroup() { return getDefaultBackend()->getSequenceNumberForGroup(); } ### 2. PTA 侧原 patch 代码 torch_npu/_init/patches/distributed_patches.py 将torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_g roup替换为torch_npu.distributed.distributed_c10d._hccl_get_sequence_number_for_group: python def _hccl_get_sequence_number_for_group(self): backend = torch.distributed.get_backend_config(self) if backend == "hccl" or backend == "npu:hccl": return self._get_backend(torch.device("npu"))._get_sequence_number_for_group() else: return origin_get_sequence_number_for_group(self) ### 3. 消除可行性(两条路径等价) 1. HCCL 注册为 BackendType.CUSTOM 且即默认后端,pg._get_backend(npu) 与 getDefaultBackend() 返回同一 ProcessGroupHCCL实例,该后端已实现 getSequenceNumberForGroup()(返回 seq_), 两条路径结果完全一致; 2. debug 模式 _ProcessGroupWrapper 也 override getSequenceNumberForGroup()并转发底层后端,路径一致; 3. 多后端(如 hccl,gloo)及其它后端:原 patch 本就回退原实现,行为不变。 因此 **torch ≥ 2.14 上该 patch 可消除**,由社区原生实现直接覆盖;torch 2.13 社区代码仍有白名单 gate,patch 需保留。 ### 4. 修改实现(patch 定义与安装整体收敛至 torch_npu/_compat/distributed.py) 参照 torch_npu/_compat/distributed.py 已有 COMPAT 例子的写法(如register_op_strategy / _mm_like_strategy / ShardedTensor npu() patch):版本判断、shim 定义与安装全部封装在 compat 模块内,消费方不感知。 1. torch_npu/_compat/distributed.py:新增 # COMPAT(< 2.14) 块(附 # CAN REMOVE when MIN_SUPPORTED >= (2, 14) 标记),自包含三步——捕获上游原实现 origin_get_sequence_number_for_group → 定义 shim _hccl_get_sequence_number_for_group → 安装到 _C10dProcessGroup._get_sequence_number_for_group。仅 CURRENT_VERSION < (2, 14) 时执行;捕获与安装同处一块,消除中间窗口期; 2. torch_npu/_init/patches/distributed_patches.py:**不改动**。文件头已有的 import torch_npu._compat.distributed 在 import 时即触发上述安装(与 ShardedTensor npu() patch 同一机制),_INTERNAL_REPLACEMENTS 中的无条件替换条目随之删除; 3. torch_npu/distributed/distributed_c10d.py:删除 _hccl_get_sequence_number_for_group 定义与模块级 origin_get_sequence_number_for_group 捕获,旧 torch 专用代码全部收敛进 compat,模块不再承担 patch 载体职责; 4. test/test_torch_npu_init.py test_07:断言改为按版本分支——CURRENT_VERSION < (2, 14) 时断言已替换为 shim(is 精确断言);否则断言 compat 未定义 shim、保持社区原实现。版本判断仍在 compat 模块内; 5. 新增 test/distributed/test_c10d_get_sequence_number.py(参照 _add_ephemeral_timeout_for_all_pgs 的测试模式):2 卡 hccl 用例验证序列号可查询且随 collective 递增(< 2.14 无 shim 时该调用直接抛异常,跑通即证明分派成功);单卡 gloo 用例验证非 hccl 后端走捕获的 origin(< 2.14)或原生实现(≥ 2.14)。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如 不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 测试环境:**torch 2.13.0+cpu + torch_npu 2.13.0+gita95ebd01**(EulerOS aarch64) 说明:torch 2.14 下的消除效果采用 venv + torch 2.14.0+cpu 验证 compat 分支逻辑(见验证四);hccl 真机 2.14 验证需待 torch_npu 完成 2.14 适配并重编后补验。 ### 验证一:test_07 与新增用例(2.13 < 2.14 分支) bash python test/test_torch_npu_init.py \ TestTorchNpuBootstrap.test_07_distributed_patch_behavior python test/distributed/test_c10d_get_sequence_number.py 预期:全部通过。2.13 上断言 ProcessGroup._get_sequence_number_for_group 仍被替换为 shim(行为与修改前一致),2 卡 hccl 用例输出 [rankN] sequence number OK: x -> y(递增),单卡 gloo 用例通过。 验证截图:   ### 验证二:2.13 功能回归(patch 仍生效) python import os import torch import torch.distributed as dist import torch_npu import torch_npu._compat.distributed as compat_distributed os.environ["MASTER_ADDR"] = "127.0.0.1" os.environ["MASTER_PORT"] = "29500" dist.init_process_group(backend="hccl", world_size=1, rank=0) pg = dist.group.WORLD # 2.13:patch 仍生效,shim 来自 compat 模块 assert torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_group \ is compat_distributed._hccl_get_sequence_number_for_group assert pg._get_sequence_number_for_group() == 0 dist.all_reduce(torch.ones(8).npu()) assert pg._get_sequence_number_for_group() >= 1 print("sequence number after all_reduce:", pg._get_sequence_number_for_group()) dist.destroy_process_group() 预期:无异常,all_reduce 后 sequence number 递增。  ### 验证三:compat 安装验证(2.13 下 shim 由 compat 模块安装) bash python -c "import torch, torch_npu, torch_npu._compat.distributed as cd; \ assert torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_group \ is cd._hccl_get_sequence_number_for_group; \ print('shim installed from compat OK')" 预期:输出 shim installed from compat OK。  ### 验证四:2.14 分支行为(venv + torch 2.14.0+cpu 实测) bash python3 -m venv /tmp/t214 && /tmp/t214/bin/pip install torch==2.14.0+cpu \ --extra-index-url https://download.pytorch.org/whl/cpu 在真 torch 2.14 上加载改后的 compat 模块并验证: - compat 文件加载正常; - shim / origin 均不定义(not hasattr 断言通过),ProcessGroup 保持上游实现; - 真实 gloo 单卡进程组走原生实现返回 int(gloo seq = 0)。 预期输出:torch 2.14 分支验证 OK, gloo seq = 0 hccl 真机 2.14:待 torch_npu 2.14 发布包推出后跑同一套测试即可(测试已按两版本分支写好,无需改动)。  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44969 | 3 天前 | |
add control of python GC before capture npugraph Co-authored-by: 周锐淇<zhouruiqi5@huawei.com> # message auto-generated for no-merge-commit merge: !27715 merge master into master add control of python GC before capture npugraph Created-by: rich9527 Commit-by: 周锐淇 Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > /kind task **What does this PR do / why do we need it**: add control of python GC before capture npugraph **Which issue(s) this PR fixes**: <!-- *Automatically closes linked issue when PR is merged. Usage: Fixes #<issue number>, or Fixes (paste link of issue). --> Fixes # **Special notes for your reviewers**: See merge request: Ascend/pytorch!27715 | 8 个月前 | |
fix(npu-inductor): stabilize linearized reconstruction and stores Co-authored-by: rmch<chenruimin2@huawei.com> # message auto-generated for no-merge-commit merge: !46133 merge fix/dalle2-reduction-alias-structured-ir into master fix(npu-inductor): stabilize linearized reconstruction and stores Created-by: rmch Commit-by: rmch Merged-by: ascend-robot Description: # 【合入来源】 - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 https://gitcode.com/Ascend/pytorch/issues/4748 - [ ] 资料更新 本 PR 修复 triton_experimental 线性化调度中的两类关联问题:DALLE2/group-norm 多阶段 reduction 的 alias 作用域错误,以及 BigBird/unet 点算子中重复分解和 store rank 不一致。修复仅涉及 triton_experimental 后端,不包含 MM/BMM prologue/epilogue fusion 改动。 # 【修改方案】 1. 将 range-tree 重建表达式保留在结构化 reduction IR 中,新增 ReconstructionNode、ReductionPass 和作用域校验,按拓扑顺序保存 alias 依赖,并拒绝循环或未定义符号。 2. 在每个 reduction pass 上挂载 scope_id 和 visible_aliases。每个 pass 在自己的 reduction loop 内渲染完整 alias 链,避免前一 pass 的局部变量被后续 pass 隐式复用。 3. 用 ReductionIndexLine 携带 range-tree assignment 的结构身份,通过 ReductionIndexEmissionState 抑制已被 promotion 替代的原始赋值;删除生成文本阶段基于 lhs/字符串形态的 reduction alias 判断。 4. 将局部重复的 divisor-chain 分解折叠到已有 range-tree basis。只允许真实 range-tree node 成为 mapping 左值,避免跨 tree 复合表达式被生成为非法赋值左值。 5. linearize 将一个逻辑轴拆成多个寄存器轴后,把旧的 singleton constant shape 扩展到最终 rank,保证 store value 与 pointer block rank 一致。 6. 新增结构化 reduction IR 与 NPU 回归用例,覆盖多 pass alias 可见性、非法 alias、BigBird 局部分解和 unet singleton store。 BigBird dynamic-off 剩余精度差异不再通过改写 linearize 索引处理。定向捕获 kernel 8/14 的相同中间输入并按地址公式计算 reference,结果均为 equal=True, max_diff=0;同时 eager 连续两次运行自身已有最大差异 0.03515625/0.00151062,与 eager/compiled 的 0.04003906/0.00183105 同量级。该图将 2016 项通过 index_put(accumulate=True) 原子累加到同一 plane,差异来自浮点原子累加顺序,不是地址映射错误。 # 【资料变更】 不涉及。 # 【接口变更】 不涉及客户可见或跨仓公共接口变更。新增模块和数据结构仅供 torch_npu._inductor.triton_experimental 内部使用。 # 【功能验证】 环境:ly_inductor,Ascend 910B2;执行前加载 CANN 环境,关闭 ACLGraph,并使用独立 Inductor cache。 - test_triton_experimental_reconstruction.py:6 passed。 - test_triton_experimental_store_shape.py:3 passed。 - pytorch_unet,train、batch size 2、dynamic-off:pass_accuracy。 - hf_BigBird,dynamic-on:pass_accuracy。 - hf_BigBird,dynamic-off:原 broadcast/codegen 错误已消除;剩余差异按上述 kernel 与 eager 自比证据判定为高冲突浮点原子累加顺序误差。 - python -m py_compile 针对本 PR 4 个 Python 文件:通过。 - lintrunner --take FLAKE8,SPACES,TABS,NEWLINE 针对本 PR 4 个文件:通过。 - git diff --check origin/master...HEAD:通过。 - 平台 CI 尚未完成,结果以本 PR 流水线为准。 # 【CheckList】 - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46133 | 3 天前 | |
refactor: eliminate hccl sequence-number patch on torch 2.14+ Co-authored-by: qq_45774794<hetiancheng1@huawei.com> # message auto-generated for no-merge-commit merge: !44969 merge master into master refactor: eliminate hccl sequence-number patch on torch 2.14+ Created-by: qq_45774794 Commit-by: qq_45774794 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) ### 1. 上游修复分析(pytorch#190138,2026-07-17 合入 main,2.14 nightly 已包含) 上游 ProcessGroup::getSequenceNumberForGroup() 原来有白名单 gatebackendSupportsSequenceNumbers(),仅放行 GLOO/NCCL/XCCL/UCC,HCCL 注册CUSTOM 后端会被 TORCH_CHECK 拒绝,这是 torch_npu 需要 patch 的根因。该 PR 删除了白名单,改为无条件转发到默认后端: cpp // torch/csrc/distributed/c10d/ProcessGroup.hpp(社区 main,修改后) virtual uint64_t getSequenceNumberForGroup() { return getDefaultBackend()->getSequenceNumberForGroup(); } ### 2. PTA 侧原 patch 代码 torch_npu/_init/patches/distributed_patches.py 将torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_g roup替换为torch_npu.distributed.distributed_c10d._hccl_get_sequence_number_for_group: python def _hccl_get_sequence_number_for_group(self): backend = torch.distributed.get_backend_config(self) if backend == "hccl" or backend == "npu:hccl": return self._get_backend(torch.device("npu"))._get_sequence_number_for_group() else: return origin_get_sequence_number_for_group(self) ### 3. 消除可行性(两条路径等价) 1. HCCL 注册为 BackendType.CUSTOM 且即默认后端,pg._get_backend(npu) 与 getDefaultBackend() 返回同一 ProcessGroupHCCL实例,该后端已实现 getSequenceNumberForGroup()(返回 seq_), 两条路径结果完全一致; 2. debug 模式 _ProcessGroupWrapper 也 override getSequenceNumberForGroup()并转发底层后端,路径一致; 3. 多后端(如 hccl,gloo)及其它后端:原 patch 本就回退原实现,行为不变。 因此 **torch ≥ 2.14 上该 patch 可消除**,由社区原生实现直接覆盖;torch 2.13 社区代码仍有白名单 gate,patch 需保留。 ### 4. 修改实现(patch 定义与安装整体收敛至 torch_npu/_compat/distributed.py) 参照 torch_npu/_compat/distributed.py 已有 COMPAT 例子的写法(如register_op_strategy / _mm_like_strategy / ShardedTensor npu() patch):版本判断、shim 定义与安装全部封装在 compat 模块内,消费方不感知。 1. torch_npu/_compat/distributed.py:新增 # COMPAT(< 2.14) 块(附 # CAN REMOVE when MIN_SUPPORTED >= (2, 14) 标记),自包含三步——捕获上游原实现 origin_get_sequence_number_for_group → 定义 shim _hccl_get_sequence_number_for_group → 安装到 _C10dProcessGroup._get_sequence_number_for_group。仅 CURRENT_VERSION < (2, 14) 时执行;捕获与安装同处一块,消除中间窗口期; 2. torch_npu/_init/patches/distributed_patches.py:**不改动**。文件头已有的 import torch_npu._compat.distributed 在 import 时即触发上述安装(与 ShardedTensor npu() patch 同一机制),_INTERNAL_REPLACEMENTS 中的无条件替换条目随之删除; 3. torch_npu/distributed/distributed_c10d.py:删除 _hccl_get_sequence_number_for_group 定义与模块级 origin_get_sequence_number_for_group 捕获,旧 torch 专用代码全部收敛进 compat,模块不再承担 patch 载体职责; 4. test/test_torch_npu_init.py test_07:断言改为按版本分支——CURRENT_VERSION < (2, 14) 时断言已替换为 shim(is 精确断言);否则断言 compat 未定义 shim、保持社区原实现。版本判断仍在 compat 模块内; 5. 新增 test/distributed/test_c10d_get_sequence_number.py(参照 _add_ephemeral_timeout_for_all_pgs 的测试模式):2 卡 hccl 用例验证序列号可查询且随 collective 递增(< 2.14 无 shim 时该调用直接抛异常,跑通即证明分派成功);单卡 gloo 用例验证非 hccl 后端走捕获的 origin(< 2.14)或原生实现(≥ 2.14)。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如 不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 测试环境:**torch 2.13.0+cpu + torch_npu 2.13.0+gita95ebd01**(EulerOS aarch64) 说明:torch 2.14 下的消除效果采用 venv + torch 2.14.0+cpu 验证 compat 分支逻辑(见验证四);hccl 真机 2.14 验证需待 torch_npu 完成 2.14 适配并重编后补验。 ### 验证一:test_07 与新增用例(2.13 < 2.14 分支) bash python test/test_torch_npu_init.py \ TestTorchNpuBootstrap.test_07_distributed_patch_behavior python test/distributed/test_c10d_get_sequence_number.py 预期:全部通过。2.13 上断言 ProcessGroup._get_sequence_number_for_group 仍被替换为 shim(行为与修改前一致),2 卡 hccl 用例输出 [rankN] sequence number OK: x -> y(递增),单卡 gloo 用例通过。 验证截图:   ### 验证二:2.13 功能回归(patch 仍生效) python import os import torch import torch.distributed as dist import torch_npu import torch_npu._compat.distributed as compat_distributed os.environ["MASTER_ADDR"] = "127.0.0.1" os.environ["MASTER_PORT"] = "29500" dist.init_process_group(backend="hccl", world_size=1, rank=0) pg = dist.group.WORLD # 2.13:patch 仍生效,shim 来自 compat 模块 assert torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_group \ is compat_distributed._hccl_get_sequence_number_for_group assert pg._get_sequence_number_for_group() == 0 dist.all_reduce(torch.ones(8).npu()) assert pg._get_sequence_number_for_group() >= 1 print("sequence number after all_reduce:", pg._get_sequence_number_for_group()) dist.destroy_process_group() 预期:无异常,all_reduce 后 sequence number 递增。  ### 验证三:compat 安装验证(2.13 下 shim 由 compat 模块安装) bash python -c "import torch, torch_npu, torch_npu._compat.distributed as cd; \ assert torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_group \ is cd._hccl_get_sequence_number_for_group; \ print('shim installed from compat OK')" 预期:输出 shim installed from compat OK。  ### 验证四:2.14 分支行为(venv + torch 2.14.0+cpu 实测) bash python3 -m venv /tmp/t214 && /tmp/t214/bin/pip install torch==2.14.0+cpu \ --extra-index-url https://download.pytorch.org/whl/cpu 在真 torch 2.14 上加载改后的 compat 模块并验证: - compat 文件加载正常; - shim / origin 均不定义(not hasattr 断言通过),ProcessGroup 保持上游实现; - 真实 gloo 单卡进程组走原生实现返回 int(gloo seq = 0)。 预期输出:torch 2.14 分支验证 OK, gloo seq = 0 hccl 真机 2.14:待 torch_npu 2.14 发布包推出后跑同一套测试即可(测试已按两版本分支写好,无需改动)。  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44969 | 3 天前 | |
feat: [graph partition] aclgraph support graph partition Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !35324 merge pta_support_graph_partition_20260414_master into master feat: [graph partition] aclgraph support graph partition Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 > 关联 issue: #1911 (https://gitcode.com/Ascend/pytorch/issues/1911) - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. ** torch_npu/utils/_graph_tree.py — 新增 get_manager monkey-patch** 上游 torch._inductor.output_code.maybe_handle_backward_generation 和 torch._dynamo.backends.cudagraphs 会直接调用 torch._inductor.cudagraph_trees.get_manager,依赖它返回真实的 manager 实例来推进 backward 的 cudagraph 状态机。NPU 把自己的 NPUGraphTreeManager 注册在独立 registry(torch_npu.npu._graph_tree),导致上游那两条路径在 NPU 设备上拿不到 manager,触发 AssertionError 或 AttributeError。在 _apply_npugraph_tree_methods() 末尾把 torch._inductor.cudagraph_trees.get_manager 重指到 NPU 的 get_manager(签名一致、duck-typing 兼容),打通 backward 状态机闭环。 2. **torch_npu/_inductor/codegen/wrapper.py — wrapper 体系重构以支持 graph partition** 提取 _NPUKernelCodegenMixin 混入类,把 NPU 特化逻辑(define_kernel 中 user_autotune → user_autotune_npu、PrecomputedGrid → PrecomputedGridNpu、FixedGrid → FixedGridNpu 替换;get_next_kernel_suffix、make_buffer_free 等)从原 NPUWrapperCodeGen 上移;新增 NPUSubgraphWrapperCodegen(_NPUKernelCodegenMixin, SubgraphPythonWrapperCodegen) 让 subgraph wrapper 共享 NPU 适配;NPUWrapperCodeGen.create() 在 is_subgraph=True 时返回新的 subgraph wrapper。 3. **torch_npu/_inductor/lowering_op_list.py — graph partition 所需算子注册** GENERATE_LIST 新增 prims.device_put、aten.unbind、torch.ops.higher_order.cond。 4. **torch_npu/csrc/core/npu/NPUHooksInterface.{h,cpp} — Pinned memory 接口实现** override 上游 at::PrivateUse1HooksInterface 新增的虚函数:isPinnedPtr() 走 CachingHostAllocator_isPinned,getPinnedMemoryAllocator() 返回 getPinnedMemoryAllocator()。同时新增 CachingHostAllocator.h 包含。 5. **test/_inductor/test_inductor_graph_partition.py — graph partition 测试集** 新增 graph partition 场景的系列用例:dynamic shapes、condition op、custom op 拆分、subgraph wrapper user_autotune 兜底、forward cudagraph + backward fallback 等。 # 【资料变更】 不涉及 # 【接口变更】 不涉及。C++ 层 NPUHooksInterface::isPinnedPtr 和 getPinnedMemoryAllocator 是对上游 PrivateUse1HooksInterface 已有虚函数的 override 实现,非新增对外 API。 # 【功能验证】 在 test/_inductor/test_inductor_graph_partition.py 中新增覆盖 graph partition 场景的用例: - test_graph_partition_dynamic_shapes:动态 shape 下产生 3 个 npugraph - test_graph_partition_condition_op:cond / higher-order op 切图 - test_graph_partition_custom_op:cudagraph_unsafe 自定义算子切分边界 - test_graph_partition_subgraph_wrapper_user_autotune:子图 wrapper 的 user_autotune 替换路径 - forward cudagraph + backward fallback 的混合路径 通过 python test/_inductor/test_inductor_graph_partition.py 在 NPU 设备上跑通全部用例。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35324 | 3 个月前 | |
master fix ut bug Co-authored-by: l00881990<lixinyu68@huawei.com> # message auto-generated for no-merge-commit merge: !45812 merge master-ut-bug-fix into master master fix ut bug Created-by: l1919_snow Commit-by: l00881990 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 https://gitcode.com/Ascend/pytorch/issues/4498 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 新增校验,和资料保持一致 # 【资料变更】 “不涉及” # 【接口变更】 “不涉及” # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45812 | 7 天前 | |
fix: patch set_autocast_enabled and set_autocast_dtype for npu in transfer_to_npu Co-authored-by: louyujing<louyujing@huawei.com> # message auto-generated for no-merge-commit merge: !45860 merge fix/autocast-setter-master into master fix: patch set_autocast_enabled and set_autocast_dtype for npu in transfer_to_npu Created-by: louyujing Commit-by: louyujing Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> https://gitcode.com/Ascend/pytorch/issues/4528 # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【根因分析】 torch_npu/contrib/transfer_to_npu.py 新增的 is_autocast_enabled patch 将 torch.is_autocast_enabled 改为把 "cuda" 重写成 "npu"(读接口),但对应的写接口 torch.set_autocast_enabled / torch.set_autocast_dtype 未同步改写,导致 getter/setter 语义不对称。 Dynamo 在追踪时通过 save_global_state() 记录全局 autocast 状态(torch/_dynamo/output_graph.py): - getter:torch.is_autocast_enabled("cuda") 被 patch 后实际读取的是 **NPU** 的 autocast 状态; - setter:functools.partial(torch.set_autocast_enabled, "cuda") 未 patch,仍旧写 **CUDA** autocast 状态。 在 fallback_random + autocast 打开的场景下,追踪过程发生子图编译,触发 restore_global_state(),把 getter 读到的值(True)经由 setter 写回 CUDA autocast 开关,导致 CUDA autocast 状态在追踪期间被改变,C++ 的 GlobalStateGuard 校验失败,抛出上述断言错误。dtype 侧(get/set_autocast_dtype)存在同样的不对称问题。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 对称地补上写接口的 cuda→npu 改写,与读接口保持一致: python torch.set_autocast_enabled = _wrapper_cuda(torch.set_autocast_enabled) torch.set_autocast_dtype = _wrapper_cuda(torch.set_autocast_dtype) 这样 getter/setter 统一把 "cuda" 重写为 "npu",restore 时仅对 NPU 状态做无副作用写回,CUDA autocast 状态保持不变,GlobalStateGuard 校验即可通过。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 - 修复前:pytest -v test_aot_inductor.py::AOTInductorTestABICompatibleGpu::test_amp_fallback_random_npu 失败; - 修复后:同用例 1 passed。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45860 | 6 天前 | |
fix: prevent partial device limit from leak when NPU_DEVICE_LIMIT is malformed Co-authored-by: xiu_21<caixiuxiu1@huawei.com> # message auto-generated for no-merge-commit merge: !45819 merge device_limit_fix into master fix: prevent partial device limit from leak when NPU_DEVICE_LIMIT is malformed Created-by: xiu_21 Commit-by: xiu_21 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 NPU_DEVICE_LIMIT在前一个值为正常数字时,例如"8,abc",第一个set的device不会对算子核数进行配置,但是会对后续的device配置cube_core_num为8,从而导致配置不一致。 修改获取环境变量时,两个数值都为正常范围内的数字时才更新cube_core_num和vector_core_num,保证全局一致。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 pytest test_torch_npu.py -k test_set_device_res_limit_from_env_partial_invalid -vv 修改前:  修改后:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45819 | 7 天前 | |
refactor: eliminate hccl sequence-number patch on torch 2.14+ Co-authored-by: qq_45774794<hetiancheng1@huawei.com> # message auto-generated for no-merge-commit merge: !44969 merge master into master refactor: eliminate hccl sequence-number patch on torch 2.14+ Created-by: qq_45774794 Commit-by: qq_45774794 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) ### 1. 上游修复分析(pytorch#190138,2026-07-17 合入 main,2.14 nightly 已包含) 上游 ProcessGroup::getSequenceNumberForGroup() 原来有白名单 gatebackendSupportsSequenceNumbers(),仅放行 GLOO/NCCL/XCCL/UCC,HCCL 注册CUSTOM 后端会被 TORCH_CHECK 拒绝,这是 torch_npu 需要 patch 的根因。该 PR 删除了白名单,改为无条件转发到默认后端: cpp // torch/csrc/distributed/c10d/ProcessGroup.hpp(社区 main,修改后) virtual uint64_t getSequenceNumberForGroup() { return getDefaultBackend()->getSequenceNumberForGroup(); } ### 2. PTA 侧原 patch 代码 torch_npu/_init/patches/distributed_patches.py 将torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_g roup替换为torch_npu.distributed.distributed_c10d._hccl_get_sequence_number_for_group: python def _hccl_get_sequence_number_for_group(self): backend = torch.distributed.get_backend_config(self) if backend == "hccl" or backend == "npu:hccl": return self._get_backend(torch.device("npu"))._get_sequence_number_for_group() else: return origin_get_sequence_number_for_group(self) ### 3. 消除可行性(两条路径等价) 1. HCCL 注册为 BackendType.CUSTOM 且即默认后端,pg._get_backend(npu) 与 getDefaultBackend() 返回同一 ProcessGroupHCCL实例,该后端已实现 getSequenceNumberForGroup()(返回 seq_), 两条路径结果完全一致; 2. debug 模式 _ProcessGroupWrapper 也 override getSequenceNumberForGroup()并转发底层后端,路径一致; 3. 多后端(如 hccl,gloo)及其它后端:原 patch 本就回退原实现,行为不变。 因此 **torch ≥ 2.14 上该 patch 可消除**,由社区原生实现直接覆盖;torch 2.13 社区代码仍有白名单 gate,patch 需保留。 ### 4. 修改实现(patch 定义与安装整体收敛至 torch_npu/_compat/distributed.py) 参照 torch_npu/_compat/distributed.py 已有 COMPAT 例子的写法(如register_op_strategy / _mm_like_strategy / ShardedTensor npu() patch):版本判断、shim 定义与安装全部封装在 compat 模块内,消费方不感知。 1. torch_npu/_compat/distributed.py:新增 # COMPAT(< 2.14) 块(附 # CAN REMOVE when MIN_SUPPORTED >= (2, 14) 标记),自包含三步——捕获上游原实现 origin_get_sequence_number_for_group → 定义 shim _hccl_get_sequence_number_for_group → 安装到 _C10dProcessGroup._get_sequence_number_for_group。仅 CURRENT_VERSION < (2, 14) 时执行;捕获与安装同处一块,消除中间窗口期; 2. torch_npu/_init/patches/distributed_patches.py:**不改动**。文件头已有的 import torch_npu._compat.distributed 在 import 时即触发上述安装(与 ShardedTensor npu() patch 同一机制),_INTERNAL_REPLACEMENTS 中的无条件替换条目随之删除; 3. torch_npu/distributed/distributed_c10d.py:删除 _hccl_get_sequence_number_for_group 定义与模块级 origin_get_sequence_number_for_group 捕获,旧 torch 专用代码全部收敛进 compat,模块不再承担 patch 载体职责; 4. test/test_torch_npu_init.py test_07:断言改为按版本分支——CURRENT_VERSION < (2, 14) 时断言已替换为 shim(is 精确断言);否则断言 compat 未定义 shim、保持社区原实现。版本判断仍在 compat 模块内; 5. 新增 test/distributed/test_c10d_get_sequence_number.py(参照 _add_ephemeral_timeout_for_all_pgs 的测试模式):2 卡 hccl 用例验证序列号可查询且随 collective 递增(< 2.14 无 shim 时该调用直接抛异常,跑通即证明分派成功);单卡 gloo 用例验证非 hccl 后端走捕获的 origin(< 2.14)或原生实现(≥ 2.14)。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如 不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 测试环境:**torch 2.13.0+cpu + torch_npu 2.13.0+gita95ebd01**(EulerOS aarch64) 说明:torch 2.14 下的消除效果采用 venv + torch 2.14.0+cpu 验证 compat 分支逻辑(见验证四);hccl 真机 2.14 验证需待 torch_npu 完成 2.14 适配并重编后补验。 ### 验证一:test_07 与新增用例(2.13 < 2.14 分支) bash python test/test_torch_npu_init.py \ TestTorchNpuBootstrap.test_07_distributed_patch_behavior python test/distributed/test_c10d_get_sequence_number.py 预期:全部通过。2.13 上断言 ProcessGroup._get_sequence_number_for_group 仍被替换为 shim(行为与修改前一致),2 卡 hccl 用例输出 [rankN] sequence number OK: x -> y(递增),单卡 gloo 用例通过。 验证截图:   ### 验证二:2.13 功能回归(patch 仍生效) python import os import torch import torch.distributed as dist import torch_npu import torch_npu._compat.distributed as compat_distributed os.environ["MASTER_ADDR"] = "127.0.0.1" os.environ["MASTER_PORT"] = "29500" dist.init_process_group(backend="hccl", world_size=1, rank=0) pg = dist.group.WORLD # 2.13:patch 仍生效,shim 来自 compat 模块 assert torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_group \ is compat_distributed._hccl_get_sequence_number_for_group assert pg._get_sequence_number_for_group() == 0 dist.all_reduce(torch.ones(8).npu()) assert pg._get_sequence_number_for_group() >= 1 print("sequence number after all_reduce:", pg._get_sequence_number_for_group()) dist.destroy_process_group() 预期:无异常,all_reduce 后 sequence number 递增。  ### 验证三:compat 安装验证(2.13 下 shim 由 compat 模块安装) bash python -c "import torch, torch_npu, torch_npu._compat.distributed as cd; \ assert torch._C._distributed_c10d.ProcessGroup._get_sequence_number_for_group \ is cd._hccl_get_sequence_number_for_group; \ print('shim installed from compat OK')" 预期:输出 shim installed from compat OK。  ### 验证四:2.14 分支行为(venv + torch 2.14.0+cpu 实测) bash python3 -m venv /tmp/t214 && /tmp/t214/bin/pip install torch==2.14.0+cpu \ --extra-index-url https://download.pytorch.org/whl/cpu 在真 torch 2.14 上加载改后的 compat 模块并验证: - compat 文件加载正常; - shim / origin 均不定义(not hasattr 断言通过),ProcessGroup 保持上游实现; - 真实 gloo 单卡进程组走原生实现返回 int(gloo seq = 0)。 预期输出:torch 2.14 分支验证 OK, gloo seq = 0 hccl 真机 2.14:待 torch_npu 2.14 发布包推出后跑同一套测试即可(测试已按两版本分支写好,无需改动)。  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44969 | 3 天前 | |
remove patch_skipFunctionVariable Co-authored-by: gcw_3ffySSwy<1305321851@qq.com> # message auto-generated for no-merge-commit merge: !43291 merge Dynamo into master remove patch_skipFunctionVariable Created-by: gcw_3ffySSwy Commit-by: gcw_3ffySSwy Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 [#3459](https://gitcode.com/Ascend/pytorch/issues/3459) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!43291 | 3 天前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35981 merge master_lintrunner into master [Fix] Fix static check errors detected by SPACES Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 检测和删除代码中的行尾空白字符 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35981 | 3 个月前 | |
compat(v2.13) : Update master to upstream 0610, adapt the upstream to remove NamedTensor. Co-authored-by: chz34<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !39675 merge compat/master into master compat(v2.13) : Update master to upstream 0610, adapt the upstream to remove NamedTensor. Created-by: c_34 Commit-by: chz34 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 https://gitcode.com/ascend/pytorch/issues/2325 - [ ] issue/工单 - [x] 重构优化 https://gitcode.com/Ascend/pytorch/issues/2569 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) PyTorch 2.13 removed named-tensor support entirely (at::Dimname, at::DimnameList, the at::namedinference namespace and the header ATen/NamedTensorUtils.h). Remove all corresponding interface. # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39675 | 2 个月前 | |
fix:修复is_available开销过大 Co-authored-by: Jessedhd<denghaodong3@huawei.com> # message auto-generated for no-merge-commit merge: !45540 merge master into master fix:修复is_available开销过大 Created-by: Jessedhd Commit-by: Jessedhd Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**关联issue: https://gitcode.com/Ascend/pytorch/issues/4452**</font>\ - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 原 is_available() 默认调用 device_count(),在 NPU 未初始化时会重复执行 HAL 探测,导致频繁调用开销较大。优化后默认调用带缓存的 _npu_getDeviceCount(),并新增与 CUDA 侧PYTORCH_NVML_BASED_CUDA_CHECK 对齐的 PYTORCH_HAL_BASED_NPU_CHECK 环境变量,用于保留原 HAL 检查路径。 # 【资料变更】 > 不涉及 # 【接口变更】 > 不涉及 # 【功能验证】 > 测试结果 >UT测试: > > > 性能测试: >  > > 性能测试结果 >  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45540 | 11 天前 | |
[onnx] fix group_norm_silu and rotary_mul onnx api. Co-authored-by: shi-jiaxin9<shijiaxin10@h-partners.com> # message auto-generated for no-merge-commit merge: !31954 merge master into master [onnx] fix group_norm_silu and rotary_mul onnx api. Created-by: shi-jiaxin9 Commit-by: shi-jiaxin9 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 问题单 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!31954 | 5 个月前 | |
[optim] Add distributed Muon optimizer support for Ascend NPU Co-authored-by: guoqi1024<guoqi5@huawei.com> # message auto-generated for no-merge-commit merge: !38393 merge feature/distributed-muon-optimizer into master [optim] Add distributed Muon optimizer support for Ascend NPU Created-by: guoqi1024 Commit-by: guoqi1024 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 https://gitcode.com/Ascend/pytorch/issues/2403 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!38393 | 2 个月前 | |
pytorch profiler show additional headers && fix log Co-authored-by: xieanran<694099604@qq.com> # message auto-generated for no-merge-commit merge: !46096 merge master into master pytorch profiler show additional headers && fix log Created-by: SoraAzzz Commit-by: xieanran Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 主要改动 新增 Mix Block Num 列头并重命名常量:在 torch_npu/profiler/analysis/prof_common_func/_csv_headers.py 中,将 OP_SUMMARY_SHAPE_HEADERS 重命名为 OP_SUMMARY_ADDITIONAL_HEADERS,并在其最前面新增 Mix Block Num 字段,使 kernel 视图可展示该附加列。 同步更新 kernel 视图列头逻辑:在 _kernel_view_parser.py 的 KernelViewParser._get_kernel_headers 中改用新的 OP_SUMMARY_ADDITIONAL_HEADERS 常量,从而让非全量列头场景也能按需筛选并输出新增的附加列。 更新对应单元测试:在 test/profiler/analysis/prof_view/test_kernel_view_parser.py 中,将相关断言与期望列头同步替换为 OP_SUMMARY_ADDITIONAL_HEADERS,覆盖 Mix Block Num 参与列头拼接的用例。 修复日志级别:在 _fwk_api_db_parser.py 的 FwkApiDbParser 中,将找不到 node launch str id 时的 logger.error 调整为 logger.warning,并注明该情况在 aclgraph 场景下安全,避免误报错误日志。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46096 | 4 天前 | |
compat(2.14): default requirements to 2.14 nightly and fix related tests Co-authored-by: chz34<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !41741 merge compat/2.14 into master compat(2.14): default requirements to 2.14 nightly and fix related tests Created-by: c_34 Commit-by: chz34 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 https://gitcode.com/Ascend/pytorch/issues/2258 https://gitcode.com/Ascend/pytorch/issues/2890 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 上游新增接口,暴露的路径与实际module不一致,实际来自_C库,添加测试白名单,与上游添加的白名单保持一致。 2. 上游新增接口,依赖额外三方库与cuda库,test_public_binding.py中增加相关过滤 3. 上游 Backedn.register_backend.__func__新增参数,修改对应patch函数,增加**kwargs,缺省忽略,同时保持与之前版本的接口兼容 4. 上游cudagraphify调用时新增额外参数kernel_free_cudagraph, user_visible_output_idxs,下游npugraphify跟随新增,函数内不处理 5. 新增requirements_2_13.txt的配置,默认配置升级到2.14 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 跟随上游变更,不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 跟随上游变更,不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 跟随上游变更,基于现有测试用例进行验证 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!41741 | 1 个月前 | |
remove patch_skipFunctionVariable Co-authored-by: gcw_3ffySSwy<1305321851@qq.com> # message auto-generated for no-merge-commit merge: !43291 merge Dynamo into master remove patch_skipFunctionVariable Created-by: gcw_3ffySSwy Commit-by: gcw_3ffySSwy Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 [#3459](https://gitcode.com/Ascend/pytorch/issues/3459) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!43291 | 3 天前 | |
[sync] PR-39678: revert: detect Ascend950 SoC for TORCH_NPU_USE_COMPATIBLE_IMPL default Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !39703 merge sync-pr39678-revert/compat-impl-socname-routing-26.1.0-to-master into master [sync] PR-39678: revert: detect Ascend950 SoC for TORCH_NPU_USE_COMPATIBLE_IMPL default Created-by: ascend-ds-bot Commit-by: wuyouqi1 Merged-by: ascend-robot Description: ### 1. Origin pull request: https://gitcode.com/Ascend/pytorch/merge_requests/39678 ### 2. Original pull request related issue(s): https://gitcode.com/Ascend/pytorch/issues/2561 ### 3. Original pull request related commit(s): | Sha | Datetime | Message | |---|---|---| |[8539c290](https://gitcode.com/Ascend/pytorch/commit/8539c290bd0035b66335b3e92ac28540de8c2805)|2026-06-30 21:08:41 +0800 CST|Revert "feat: detect Ascend950 SoC for TORCH_NPU_USE_COMPATIBLE_IMPL default"<br><br>This reverts commit acebf35339791ea6fcac6f116acdb242a1c09096.<br><br>Removes the _is_ascend950() SoC auto-detection and the SoC-based default-value assignment for TORCH_NPU_USE_COMPATIBLE_IMPL in torch_npu/__init__.py, and drops test_compatible_impl_soc_detect.py.<br><br>Co-Authored-By: Claude <noreply@anthropic.com><br>| See merge request: Ascend/pytorch!39703 | 2 个月前 | |
| 1 年前 | ||
| 1 年前 |