| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
fix: fix npugrphs backend bug and add indexput test case Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !31726 merge Pta_add_index_put_test_case_v2.9.0 into v2.9.0 fix: fix npugrphs backend bug and add indexput test case Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列 > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **修复 patch_get_first_incompatible_cudagraph_node monkey patch 不生效的问题**(torch_npu/_inductor/utils.py): - 去除 compile_fx 和 cudagraphs 模块 patch 时的 hasattr 条件判断,改为直接赋值覆盖,因为 torch_npu 与 torch 是固定版本匹配的,不需要兼容性判断 - 新增对 torch_npu.utils._graph_tree 模块的 patch:该模块通过 from torch._inductor.utils import get_first_incompatible_cudagraph_node 拿走了原始引用,必须显式覆盖该模块命名空间中的引用,否则 npugraphs 后端无法正确检测 cudagraph-unsafe 算子 2. **修复 _graph_tree.py 中的代码格式问题**(torch_npu/npu/_graph_tree.py): - 清理行尾多余空格 3. **新增 ACL graph 特殊算子的测试用例**(test_acl_graph_special_op.py): - test_masked_assign_forward:验证 tensor[bool_mask] = -1(aten.index_put_ with bool indices)在 inductor 后端 cudagraphs 模式下被正确检测为 cudagraph-unsafe 并回退到 eager 执行,支持 float32/float16 参数化测试 - test_masked_assign_forward_backward:验证包含 bool index_put 的前向+反向传播在 inductor 后端下的正确性 - test_npugraphs_masked_assign_forward:同上,使用 npugraphs 后端验证 - test_npugraphs_masked_assign_forward_backward:同上,使用 npugraphs 后端验证前向输出和梯度正确性 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤 > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已新增 UT 测试用例 test_acl_graph_special_op.py,覆盖以下场景: - **inductor 后端 + cudagraphs**:bool index_put 前向(float32/float16)、前向+反向 - **npugraphs 后端**:bool index_put 前向(float32/float16)、前向+反向 - 测试方法:torch.compile 编译后与 eager 模式对比输出和梯度一致性 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!31726 | 4 个月前 | |
[fix] support memory reuse in launch_host_func_pending Co-authored-by: Chukun Wang<wangchukun@huawei.com> # message auto-generated for no-merge-commit merge: !35787 merge v2.9.0 into v2.9.0 [fix] support memory reuse in launch_host_func_pending Created-by: kita-ikuyo Commit-by: Chukun Wang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/2009 - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) launch_host_func_pending由直接传递Tensor改为传递tensor地址,由callback thread根据地址做h2h拷贝,拷贝结束后原始tensor的pinned memory可以被释放并复用。回调线程/python线程使用被拷贝的tensor值做后续print/save,并在print/save结束后释放内存,以节省运行时host内存使用。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 验证ok,修改前整网出现host oom,修改后解决。  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35787 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
fix: fix task queue aclgraph bug Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !32564 merge Pynative_fix_task_queue_aclgraph_bug_add_wait_stream_status_20260327 into v2.9.0 fix: fix task queue aclgraph bug Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列 > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **NPUCachingAllocator.h/cpp**:新增 hasCapturesUnderway(device) 接口,用于查询当前设备是否有正在进行的 ACLGraph capture。在 DeviceCachingAllocator 中加锁读取 captures_underway 容器是否为空;在 NpuCachingAllocator 顶层类中实现 override 并转发到对应 device allocator;在头文件中新增 inline 辅助函数 hasCapturesUnderway(device) 供外部调用。 2. **NPUEvent.cpp**:在 NPUEvent::block() 函数中,LaunchWaitEventTask 之后增加判断:若当前设备处于 ACLGraph capture 状态(hasCapturesUnderway 返回 true),则调用 emptyAllNPUStream() 刷新 task queue。修复了多流场景下(主流与旁路流通过 wait_stream 交互时)capture replay 结果不正确的问题。 3. **test/npu/test_aclgraph_multi_stream.py**:新增多流 ACLGraph 正确性测试,覆盖两种场景:shared-expert 旁路流 fork/join 模式、并行分支 fork/join 模式,验证 replay 后数值结果与 eager 模式一致。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 新增内部接口 NPUCachingAllocator::hasCapturesUnderway(c10::DeviceIndex device),为 NPU allocator 虚函数扩展,不属于对外客户面 API,不涉及跨仓接口变更。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤 > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 新增测试文件 test/npu/test_aclgraph_multi_stream.py,包含以下用例: - test_shared_expert_stream_capture_replay:验证 shared-expert 旁路流模式下 capture/replay 数值正确性 - test_parallel_branch_capture_replay:验证并行分支 fork-join 模式下 capture/replay 数值正确性 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32564 | 4 个月前 | |
【feat】新增第三批sk_options并更新autofusion commit id Co-authored-by: wangkai<wangkai579@huawei.com> # message auto-generated for no-merge-commit merge: !36332 merge v2.9.0_sk2 into v2.9.0 【feat】新增第三批sk_options并更新autofusion commit id Created-by: mihudan Commit-by: wangkai 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/2004 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用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!36332 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[Feature] generate aligned trace in NPUGraph debug dump Co-authored-by: ChengLyric<licheng236@huawei.com> # message auto-generated for no-merge-commit merge: !43287 merge feat/npugraph-debug-dump-aligned-v2.9.0 into v2.9.0 [Feature] generate aligned trace in NPUGraph debug dump Created-by: LyriCheng Commit-by: ChengLyric 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能力等内容) - 在 NPUGraph.debug_dump() 成功生成新的原始 JSON 后,额外生成 *.aligned.json。 - 对齐处理仅调整可视化时间轴,不修改原始 JSON。 - 对齐失败仅打印 warning,不影响原始 debug_dump() 返回或原始文件。 - 未成功 capture 或未生成新 dump 时,跳过对齐处理,避免处理旧文件。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验证ok # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!43287 | 14 天前 | |
feat: Add ACLGraph update plans Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !38049 merge Pynative_refactor_aclgraph_update_20260519_2.9.0 into v2.9.0 feat: Add ACLGraph update plans Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 > 关联 issue: #2338 (https://gitcode.com/Ascend/pytorch/issues/2338) - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列 > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 新增 torch_npu._inductor.aclgraph_update_plan 模块,在 Inductor codegen 阶段生成 ACLGraph update plan,并在运行期根据 callable 属性解析 new_inputs 到 FA 类算子 actual sequence 参数的映射。 2. 在 NPU Python wrapper、MLIR/DVM wrapper、graph partition 子图 wrapper 中挂载 plan,支持 graph partition 开关下分别写入 call 或 partition_x 函数属性。 3. 在 _graph_tree record/replay 路径消费 update plan,record 后校验 plan 与真实 capture record 的顺序、算子名和可更新 key,replay 前解析为 CPU update input。 4. 将 IFA/IFA v2/FA3 等 npugraph handler 的 actual sequence 更新点改为 UPDATE_SPECS 声明式描述,并由 base handler 统一更新 args/kwargs。 5. 补充 plan 构建、plan 解析、handler 注册、wrapper emit、npugraphify callable 属性保持等单元测试,替换旧的集中测试文件。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 不涉及对外资料变更。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及客户面可见 API 变更;新增 torch_npu._inductor.aclgraph_update_plan 为内部编译与 ACLGraph 运行期协同模块。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤 > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已补充并验证以下单测: 1. test/npu/test_aclgraph_update_plan.py 覆盖 plan 构建、输入映射、常量解析、非法 plan 校验。 2. test/npu/test_npugraph_handler.py 覆盖 IFA/IFA v2 handler 的 UPDATE_SPECS 注册。 3. test/_inductor/test_aclgraph_update_plan_compile.py 覆盖 wrapper/graph partition emit、MLIR/DVM wrapper、npugraphify callable 属性保持等非设备单测。 4. 多版本迁移后已在 v2.7.1、v2.9.0、v2.10.0、v2.11.0、v2.12.0、master 分支通过静态检查和不涉及设备的单测验证。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!38049 | 2 个月前 | |
[fix]multi_stream_lazy_reclaim coredump error Co-authored-by: xuyun15<xuyun15@huawei.com> # message auto-generated for no-merge-commit merge: !42369 merge fix_multi_stream_lazy_reclaim_v2.9.0 into v2.9.0 [fix]multi_stream_lazy_reclaim coredump error Created-by: xuyun15 Commit-by: xuyun15 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 选取issue中方案2作为解决方案 ### 方案2:将 sum > kLazyQuerySize 的 process_events 移到 get_free_block 之前(推荐) 将 sum > kLazyQuerySize 触发的 process_events() 移到 get_free_block 之前,保持与原生 PyTorch 相同的安全时序。同时引入 reaped 变量避免 process_events() 的冗余二次调用。 #### 2.1 process_events() 二次调用问题分析 方案2将 process_events() 的调用拆分为两段: 1. **第一段**:sum > kLazyQuerySize 时在 get_free_block 之前调用 2. **第二段**:!block_found 时在 get_free_block 之后调用 当 sum > kLazyQuerySize 且 get_free_block() 仍然失败时,两段都会触发 process_events(),导致**同一轮 malloc() 中 process_events() 被调用两次**。 # 【资料变更】 不涉及:当前pr不涉及,但是后续会持续跟踪搜集用户诉求,逐步补齐对应的资料和用例 # 【接口变更】 不涉及 # 【功能验证】 修复前:  修复后:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!42369 | 28 天前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
Support allocator trace tracker in NPU caching allocator Co-authored-by: zzhongmin<zhongmin23@huawei.com> # message auto-generated for no-merge-commit merge: !38688 merge v2.9.0_tratra into v2.9.0 Support allocator trace tracker in NPU caching allocator Created-by: zzhongmin Commit-by: zzhongmin Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 将 NPU Caching Allocator 对齐到上游 CUDA 实现,补齐 Allocator Trace Tracker 回调机制,并将 mempool 关联方式从间接反查改为直接存储。 1. 新增 AllocatorTraceTracker 回调机制(NPUCachingAllocator.h + .cpp) - 新增 AllocatorTraceTracker 类型、虚方法、trace_trackers_ 成员、公共接口层转发及便捷函数,与 CUDA 接口对齐 2. record_trace 支持 tracker 回调分发(NPUCachingAllocator.cpp) - 入口条件改为 !record_history && trace_trackers_.empty(),构造 TraceEntry 后遍历 trace_trackers_ 调用回调 3. TraceEntry 新增 mempool_ 字段(NPUCachingAllocator.h) - 构造函数新增 MempoolId_t mempool = {0, 0} 参数,新增 MempoolId_t mempool_ 成员 4. PrivatePool 改为直接存储 mempool ID(NPUCachingAllocator.cpp) - 新增 id 成员,构造函数接受 MempoolId_t id - 新增 BlockPool::owner_MempoolId() 方法 - 新增 create_or_incref_pool / get_private_pool,重构 beginAllocateToPool / endAllocateToPool 5. 所有 record_trace 调用点补齐 mempool_id 参数(NPUCachingAllocator.cpp) - 8 处调用点传入 block->pool->owner_MempoolId() 6. NPUWorkspaceAllocator 补齐 TraceEntry 构造参数(NPUWorkspaceAllocator.cpp) - 3 处构造补齐 MempoolId_t{0, 0} 7. NPUPluggableAllocator 补齐接口(NPUPluggableAllocator.h + .cpp) - 新增 attachAllocatorTraceTracker override,TORCH_CHECK(false) 拒绝调用 8. 新增测试 - C++ 扩展注册回调统计 SEGMENT_ALLOC/FREE 事件,Python 测试验证两种场景下回调正确触发 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 test/npu/test_allocator_trace_tracker.py # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!38688 | 1 个月前 | |
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35872 merge v2.9.0_lintrunner into v2.9.0 fix: lintrunner --all-files --take NEWLINE -a 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/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 执行: lintrunner --all-files --take NEWLINE -a 修复换行符,不影响代码逻辑。 2. 屏蔽两个分布式用例,已提issue,给对应接口人跟踪。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35872 | 3 个月前 | |
[2.9.0]fix aoe ut Co-authored-by: DaiFu<daifu2@huawei.com> # message auto-generated for no-merge-commit merge: !27469 merge v2.9.0 into v2.9.0 [2.9.0]fix aoe ut Created-by: daifu1234567 Commit-by: DaiFu Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug **What does this PR do / why do we need it**: 需要走aclop才会有aoe的dump图,现在conv2d需要切aclnn,所以用例并不会保存aoe图。 **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!27469 | 8 个月前 | |
fix ut Co-authored-by: DaiFu<daifu2@huawei.com> # message auto-generated for no-merge-commit merge: merge master into master fix ut Created-by: daifu1234567 Commit-by: DaiFu Merged-by: ascend-robot Description: fix test_binary_cross_with_logits_float16 by setting random seed See merge request: Ascend/pytorch!25307 | 10 个月前 | |
Revert "fix: fix aclnn npu_format_cast to respect allow_internal_format=False" Co-authored-by: wangzili<wangzili14@huawei.com> # message auto-generated for no-merge-commit merge: !39262 merge v2.9.0 into v2.9.0 Revert "fix: fix aclnn npu_format_cast to respect allow_internal_format=False" Created-by: wangzili121 Commit-by: wangzili Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 回退 fix aclnn npu_format_cast to respect allow_internal_format=False,删除 npu_format_cast 的 aclnn 路径中对 allow_internal_format 的处理 # 【资料变更】 当前PR不涉及,相应资料已在op-plugin仓呈现 # 【接口变更】 不涉及 # 【功能验证】 UT通过 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39262 | 1 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
| 2 年前 | ||
| 2 年前 | ||
[v2.9.0][Fix] Fix static check errors detected by TABS Co-authored-by: thickhair<zp2165064878@163.com> # message auto-generated for no-merge-commit merge: !37946 merge tabs_fix_v2.9 into v2.9.0 [v2.9.0][Fix] Fix static check errors detected by TABS 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!37946 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[feat] support custom segment_size for expandable_segments Co-authored-by: XDaoHong<xudaohong@huawei.com> # message auto-generated for no-merge-commit merge: !26374 merge v2.9.0 into v2.9.0 [feat] support custom segment_size for expandable_segments Created-by: XDaoHong Commit-by: XDaoHong Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug > /kind task > feature **What does this PR do / why do we need it**: 虚拟内存管理场景,增加segment_size环境变量,优化集合通信zerocopy内存映射性能 **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!26374 | 9 个月前 | |
add set_deterministic_level Co-authored-by: SCh-zx<1325467101@qq.com> # message auto-generated for no-merge-commit merge: !30384 merge v2.9.0 into v2.9.0 add set_deterministic_level Created-by: SCh_zx Commit-by: SCh-zx Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug > /kind task > /kind feature **What does this PR do / why do we need it**: 新增接口用于配置强一致性 **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!30384 | 6 个月前 | |
| 2 年前 | ||
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
feat(inductor): Add dispatcher-free _empty_strided_npu fast path allocation Co-authored-by: liuyutong_bury<liuyutong25@huawei.com> # message auto-generated for no-merge-commit merge: !41837 merge feat/empty-strided-npu-fastpath-for-v2.9.0 into v2.9.0 feat(inductor): Add dispatcher-free _empty_strided_npu fast path allocation Created-by: liuyutong_bury Commit-by: liuyutong_bury Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/2888 - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 Add a torch_npu._C._empty_strided_npu binding that mirrors upstream's _empty_strided_ (CUDA/XPU/MTIA) fast path for inductor-generated wrappers, bypassing the operator dispatcher. - InitNpuBindings.cpp: THPModule_empty_strided_npu METH_VARARGS stub that parses the (sizes, strides, dtype) 3-tuple directly and calls the native factory; registered in TorchNpuMethods. - TensorFactories.{h,cpp}: TORCH_NPU_API empty_strided_npu — inlines the essential empty_strided steps (storage byte-size from size/stride, single allocate, set sizes/strides, one SetDesc) without empty({0})'s RECORD_FUNCTION / NPURecordFunction guard / 0-byte resize round-trip. at::empty_strided(device='npu') is dispatched (~2us/alloc). Inductor backward graphs allocate many buffers per step, so this host overhead dominates; the fast path removes it while keeping the NPU storage-descriptor setup. # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 #### 基础功能测试 | 测试用例 | 状态 | 验证功能 | |---------|------|---------| | test/npu/test_tensor.py::TestTensor::test_empty_strided | ✅ PASSED | 基本empty_strided功能、各种shape/stride组合、空tensor处理、storage大小计算正确性 | #### API兼容性测试 | 测试用例 | 状态 | 验证功能 | |---------|------|---------| | test/npu/test_npu.py::TestNpu::test_function_torch_empty_strided | ✅ PASSED | torch.empty_strided API、不同dtype支持 | | test/test_tensor_creation_ops.py::TestTensorCreationPRIVATEUSE1::test_empty_strided_npu | ✅ PASSED | 通用tensor创建、跨设备一致性 | #### 新增测试用例验证 新增 test/npu/test_empty_strided_npu.py 测试文件,包含9个测试用例全面验证 _empty_strided_npu fast path 功能。 **测试覆盖:** - 基础功能、空tensor、多dtype支持 (float32/16, int32/8, uint8, bool) - 复杂stride模式、广播stride - 确定性计算场景torch.empty_strided一致性验证、Storage大小计算正确性 - new_empty_strided API集成、@Dtypes装饰器测试 **测试结果:** 9/9 passed ✅ **文件信息:** - 路径: test/npu/test_empty_strided_npu.py - 行数: 200行 - 运行: pytest test/npu/test_empty_strided_npu.py -v 该测试套件确保了inductor NPU内存分配fast path的功能正确性和兼容性。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!41837 | 27 天前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35872 merge v2.9.0_lintrunner into v2.9.0 fix: lintrunner --all-files --take NEWLINE -a 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/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 执行: lintrunner --all-files --take NEWLINE -a 修复换行符,不影响代码逻辑。 2. 屏蔽两个分布式用例,已提issue,给对应接口人跟踪。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35872 | 3 个月前 | |
[feat][v2.9.0]add fav3-npugraph testcase Co-authored-by: y30062407<handsome0324@163.com> # message auto-generated for no-merge-commit merge: !34502 merge v2.9.0_testcase into v2.9.0 [feat][v2.9.0]add fav3-npugraph testcase Created-by: yangch0324 Commit-by: y30062407 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 新增fav3支持aclgraph的update功能的测试用例 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!34502 | 3 个月前 | |
test(npu): add SupportedDevices decorator for test_fault_mode Co-authored-by: xftxyz<pangxiaoyu@h-partners.com> # message auto-generated for no-merge-commit merge: !32021 merge v2.9.0-2603180 into v2.9.0 test(npu): add SupportedDevices decorator for test_fault_mode Created-by: xftxyz Commit-by: xftxyz Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) test/npu/test_fault_mode.py:Ascend950不支持aclop,为test_aclopCompile、test_ascyn这两个用例添加@SupportedDevices(['Ascend910A', 'Ascend910B', 'Ascend910_93'])装饰器 test/distributed/test_fault_mode.py:Ascend950日志字符串改变,为test_hccl_timeout用例添加@SupportedDevices(['Ascend910A', 'Ascend910B', 'Ascend910_93'])装饰器,并新增test_hccl_timeout_950,将断言修改为task timeout # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32021 | 4 个月前 | |
| 2 年前 | ||
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[sync] PR-35335: [feat]: A5 only supports INF_NAN mode Co-authored-by: weixin_47897441<wuyouqi1@h-partners.com> Co-authored-by: wanglijun55<wanglijun54@huawei.com> # message auto-generated for no-merge-commit merge: !35528 merge sync-pr35335-v2.7.1-infnan-to-v2.9.0 into v2.9.0 [sync] PR-35335: [feat]: A5 only supports INF_NAN mode Created-by: ascend-ds-bot Commit-by: weixin_47897441;wanglijun55 Merged-by: ascend-robot Description: ### 1. Origin pull request: https://gitcode.com/Ascend/pytorch/merge_requests/35335 ### 2. Original pull request related issue(s): https://gitcode.com/Ascend/pytorch/issues/1918 ### 3. Original pull request related commit(s): | Sha | Datetime | Message | |---|---|---| |[92382e10](https://gitcode.com/Ascend/pytorch/commit/92382e10973ba5780721b079332366383ec841ff)|2026-05-12 21:49:33 +0800 CST|modify ut<br>| |[1352140c](https://gitcode.com/Ascend/pytorch/commit/1352140cad591b7fc472db91eb726d1b553bd65e)|2026-05-11 20:54:16 +0800 CST|fix(npu): Ascend950 only supports INF_NAN mode, bypass env var checks<br><br>Ascend950 does not support saturation mode. When users set<br>INF_NAN_MODE_ENABLE=0 or INF_NAN_MODE_FORCE_DISABLE=1 on Ascend950,<br>the code incorrectly falls into saturation mode path, causing<br>RuntimeError: SET StreamOverflowSwitch Failed.<br><br>Add early return in IsSupportInfNan() for Ascend950 to always return<br>true, making both env vars ineffective on this device.<br><br>Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com><br>| See merge request: Ascend/pytorch!35528 | 3 个月前 | |
[v2.9.0][feature][bugfix]support IPC 64k and HDK xx.xx.xx.b version Co-authored-by: Dring<17737727613@163.com> # message auto-generated for no-merge-commit merge: !41876 merge v2.9.0 into v2.9.0 [v2.9.0][feature][bugfix]support IPC 64k and HDK xx.xx.xx.b version Created-by: Dring Commit-by: Dring Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/2919 - [✓ ] 需求 - [✕ ] 问题单 - [✕ ] issue/工单 - [✕ ] 重构优化 - [✕ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 64k pagesize,新版本HDK已支持,去除4k校验限制。同时增加HDK b版本判断分支。 版本排序语义:b-build < T版本 < RC版本 < 正式release |版本 |release |关键项 |数值| |--|--|--|--| |26.1.0 |0| (0+1)*10000| 2702010000| |26.1.0.T1| -1 |(1+1)*100| 2702000200| |26.1.0.b083| -1(不设)| +83(patch)| 2702000083| 验证:2702000083 < 2702000200 < 2702010000 → b083 < T1 < 正式版 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 64k页机器 ut验证:  4k页机器 ut验证:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [✓ ] 代码注释完备,正确记录错误日志 - [✕ ] 代码实现进行了返回值、空指针等校验 - [ ✓] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [✓ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!41876 | 30 天前 | |
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35872 merge v2.9.0_lintrunner into v2.9.0 fix: lintrunner --all-files --take NEWLINE -a 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/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 执行: lintrunner --all-files --take NEWLINE -a 修复换行符,不影响代码逻辑。 2. 屏蔽两个分布式用例,已提issue,给对应接口人跟踪。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35872 | 3 个月前 | |
[feat] support environment variable LD_PRELOAD Co-authored-by: liujunzhu<liujunzhu@huawei.com> # message auto-generated for no-merge-commit merge: !34371 merge v2.9.0 into v2.9.0 [feat] support environment variable LD_PRELOAD Created-by: liujunzhu Commit-by: liujunzhu 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能力等内容) 用户自实现 aclrtMallocAlign32 等 ACL 符号并打包成 .so,通过 LD_PRELOAD 注入 torch_npu 进程,期望拦截对 ACL 函数的调用,但实际未被调用。 根因:torch_npu 中部分 ACL 函数(如 aclrtMallocAlign32、aclrtFreePhysical)通过 FunctionLoader::Get() 使用 dlsym(handle, name) 查找符号,该方式限定在 handle 对应的库中查找,不搜索 LD_PRELOAD 预加载的库,导致覆盖失效。而直接链接调用的 ACL 符号(如 aclrtFree)走 PLT 全局符号解析,天然支持 LD_PRELOAD。 修改方案: 1. 修改 FunctionLoader::Get() 方法,当 LD_PRELOAD 环境变量非空时,优先通过 dlsym(RTLD_DEFAULT, name) 在全局符号表中查找函数,使 LD_PRELOAD 注入的同名符号可被命中;未命中时回落原有 dlopen + dlsym(handle) 路径。 2. 以 LD_PRELOAD 非空作为门控条件,未设置时完全走旧路径,行为与修改前一致。 3. 仅修改 torch_npu/csrc/core/npu/register/FunctionLoader.cpp,不新增头文件、不改变调用方。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 测试场景:通过 LD_PRELOAD 注入自定义 aclrtMallocAlign32 实现,验证 FunctionLoader 路径的符号可被覆盖。 测试方法:子进程隔离测试,每个用例在独立子进程中设置不同 LD_PRELOAD 环境变量。 | 测试用例 | 验证内容 | |---------|---------| | 无 LD_PRELOAD | 行为与修改前一致,hook 不被调用 | | LD_PRELOAD 设置 hook so | aclrtMallocAlign32 被 hook 拦截 | | LD_PRELOAD 设置不含 ACL 符号的 so | 正确回落到原始库,功能不受影响 | | LD_PRELOAD 多 so | 先加载的 hook 优先命中 | 新增测试文件:test/npu/test_ld_preload_acl_hook.py。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!34371 | 3 个月前 | |
| 2 年前 | ||
| 2 年前 | ||
AI assist developer for python dt third batch for 2.9.0 Co-authored-by: deepSeekya<chenzhihan6@huawei.com> # message auto-generated for no-merge-commit merge: !26520 merge v2.9.0 into v2.9.0 AI assist developer for python dt third batch for 2.9.0 Created-by: deepSeekya Commit-by: deepSeekya Merged-by: ascend-robot Description: 【合入说明】 AI辅助研发python dt测试用例生成。 【合入来源】 AI辅助研发需求 dt测试文件覆盖率提升。 See merge request: Ascend/pytorch!26520 | 8 个月前 | |
[feat] add ~mempool() with emptyCache Co-authored-by: xuyun15<xuyun15@huawei.com> # message auto-generated for no-merge-commit merge: !39221 merge releaseMemPool_v2.9.0 into v2.9.0 [feat] add ~mempool() with emptyCache Created-by: xuyun15 Commit-by: xuyun15 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 **目标模块 / Feature:** MemPool 析构与指定池内存释放 该改动的核心目标是:**实现 MemPool 对象析构时自动释放其关联的内存池资源**,解决 MemPool 缺少析构函数导致的内存泄漏问题。 ### 1. feature 核心工作机制 该改动实现了 MemPool 的 RAII 析构机制: - **MemPool 构造时**:记录当前设备索引 device_,生成唯一池 ID id_ - **MemPool 析构时**:调用 releasePool(device_, id_) 减少引用计数并标记可释放,再调用 emptyCache(id_) 精确释放该池的缓存内存 - **emptyCache 扩展**:新增 mempool_id 参数,支持只释放指定池的缓存,避免影响其他池 - **synchronize_and_free_events 扩展**:新增 pool 过滤参数,支持只同步特定池的事件,减少不必要的同步开销 - **graph_pool_handle 静态化**:将池 ID 生成逻辑提取为静态方法,避免创建临时 MemPool 对象:该步骤目的是保证修改前后graph行为一致,且与社区行为一致。如果NPUGraph中仍然使用临时MemPool,会由于新增的析构函数导致多次releasePool,这样导致TORCH_INTERNAL_ASSERT(it != graph_pools.end());报错 ### 2. 核心调用路径 MemPool::~MemPool() → NPUCachingAllocator::releasePool(device_, id_) // 引用计数管理 → DeviceCachingAllocator::releasePool(mempool_id) → use_count-- → 插入 graph_pools_freeable → NPUCachingAllocator::emptyCache(id_) // 缓存释放 → NPUCachingAllocator::emptyCache(check_error, free_physical, mempool_id) → DeviceCachingAllocator::emptyCache(..., mempool_id) → release_cached_blocks(..., mempool_id) → synchronize_and_free_events(..., pool) // 只同步该池事件 → release_blocks(small_blocks/large_blocks) // 释放该池缓存块 → graph_pools.erase (若 npuMalloc_count==0) ### 3. 核心数据结构 - MemPool:新增 device_ 成员(c10::DeviceIndex),新增析构函数、device() 方法、graph_pool_handle() 静态方法 - MempoolId_t:std::pair<CaptureId_t, CaptureId_t>,{0,0} 表示"未指定池" - PrivatePool:持有 use_count(图引用计数)和 npuMalloc_count(未释放分配数) - graph_pools_freeable:ska::flat_hash_map<MempoolId_t, PrivatePool*>,记录可释放的池 ### 4. 推荐阅读顺序 1. torch_npu/csrc/core/npu/NPUCachingAllocator.h:563-603 — MemPool 类定义,理解新增接口 2. torch_npu/csrc/core/npu/NPUCachingAllocator.cpp:3997-4022 — MemPool 析构函数、device()、graph_pool_handle() 实现 3. torch_npu/csrc/core/npu/NPUCachingAllocator.cpp:2181-2212 — releasePool 引用计数管理 4. torch_npu/csrc/core/npu/NPUCachingAllocator.cpp:1643-1665 — emptyCache 设备级实现 5. torch_npu/csrc/core/npu/NPUCachingAllocator.cpp:2810-2848 — release_cached_blocks 指定池释放 6. torch_npu/csrc/core/npu/NPUCachingAllocator.cpp:3000-3048 — synchronize_and_free_events 池过滤 7. torch_npu/csrc/core/npu/NPUGraph.cpp:42-47 — graph_pool_handle() 改用静态方法 8. test/npu/test_mempool_destructor.py — 测试用例 ### 5. 可能存在的API一致性以及ABI兼容性问题 1. **vtable 布局变化**:NPUAllocator 基类新增虚函数 emptyCache(bool, bool, MempoolId_t),所有继承该基类的第三方代码需重新编译 2. **MemPool 类大小变化**:新增 device_ 成员改变了 sizeof(MemPool),直接操作 MemPool 对象的已编译代码需重新编译 3. **Python 绑定不完整(涉及到api,当前需求暂不做该步骤,后续社区一致性需求补齐)**:新增的 device() 和 graph_pool_handle() 方法未绑定到 Python,Python 用户无法调用 4. **NPUPluggableAllocator 不支持(cuda带mempool_id的行为与不带mempool_id行为一致,所以暂时无需支持)**:带 mempool_id 的 emptyCache 仅打印警告,使用可插拔分配器时 MemPool 析构不会释放内存 5. **Python 侧 empty_cache 未暴露 mempool_id(涉及到api,当前需求暂不做该步骤,后续社区一致性需求补齐)**:torch.npu.empty_cache() 仍只调用无参版本,用户无法从 Python 手动释放指定池的缓存 ### 6、注意特性: 1、torch_npu/csrc/npu/MemPool.cpp : 参考cuda,pyblind过程初始化npu。解决mempool初始化未识别device的问题 2、torch_npu/csrc/core/npu/NPUCachingAllocator.cpp: 参考cuda,新增createOrIncrefPool 3、torch_npu/npu/memory.py :参考cuda,新增torch_npu._C._npu_releasePool(device_index, pool.id),解决第2点会带来use_count+1的问题 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 新增ut,库上为去掉print的版本: 优化前:  优化后:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39221 | 1 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[feature] aclgraph support PYTORCH_NO_NPU_MEMORY_CACHING=1 2.9.0 Co-authored-by: yurongkun<yurongkun@huawei.com> # message auto-generated for no-merge-commit merge: !35178 merge no_cache_2.9 into v2.9.0 [feature] aclgraph support PYTORCH_NO_NPU_MEMORY_CACHING=1 2.9.0 Created-by: yurongkun Commit-by: yurongkun Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > aclgraph支持PYTORCH_NO_NPU_MEMORY_CACHING 1)裸调capture时,打开PYTORCH_NO_NPU_MEMORY_CACHING不会报错,正常运行。 2)如果当前内存池无其他图持有且图内对象无依赖内存池时,释放该内存池给驱动 # 【资料变更】 > 不涉及 # 【接口变更】 > 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 新增UT看护,并运行多种场景用例。无运行报错 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35178 | 3 个月前 | |
Align NPU mixed-dtype async host-device copy behavior with CUDA Co-authored-by: zzhongmin<zhongmin23@huawei.com> # message auto-generated for no-merge-commit merge: !39574 merge v2.9.0_d2h into v2.9.0 Align NPU mixed-dtype async host-device copy behavior with CUDA Created-by: zzhongmin Commit-by: zzhongmin Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 对齐 CUDA Copy.cu 的 mixed-dtype 异步 Host/Device 拷贝策略,调整 NPU OpApi 路径。 当 non_blocking=True 且 Host/Device dtype 不一致时,将可由 aclnnCast 支持的 dtype 转换前移到 NPU Device 侧完成,避免因 CPU 侧 dtype cast 产生非 pinned 临时 Tensor,导致 H2D/D2H 退化为同步拷贝。non_blocking=False 与同 dtype fast path 保持原有逻辑。 - torch_npu/csrc/aten/ops/op_api/CopyKernelOpApi.cpp - H2D:先申请源 dtype 的 NPU temporary,将 pinned/已注册 CPU 数据按源 dtype 执行同 dtype H2D 拷贝,再通过 aclnnCast 转为目标 dtype 并写回目标 Tensor。 - D2H:先在 NPU 侧通过 custom_ops::_npu_dtype_cast 转为目标 dtype,再执行同 dtype D2H 拷贝到 CPU 目标。 - D2H cast 前补充 NpuUtils::check_match(&src) 判断;当 NPU 源 Tensor 是非连续 view 或 metadata 不满足 OpApi 要求时,先通过 NpuUtils::format_contiguous(src) 规范化输入,避免 aclnnCast 直接处理不匹配的 view。 - 新增 cast_dtype_out_baseformat_opapi,封装 aclnnCast out 路径,用于 H2D mixed-dtype async 路径中将 NPU temporary 转换并写入目标 Tensor。 - 新增 should_fallback_to_cpu_cast:在 A2 及之后产品上,对 aclnnCast 不支持的 dtype 组合保留原 CPU cast 路径,避免 unsupported dtype 走设备侧 cast 失败。 2. 补充 Tensor.copy_ mixed-dtype 功能、异步行为与 fallback 测试。 - test/test_copy_.py - 覆盖 pinned CPU → NPU、NPU → pinned CPU 的 mixed-dtype copy_(non_blocking=True)。 - 覆盖 int32 -> float32、int64 -> float32、float16 -> float32、float32 -> float16、complex64 <-> complex128 等基础转换组合。 - 扩展同步/异步结果一致性用例,覆盖 bool、int8、int16、uint16、int64、float16、bfloat16、float32、complex dtype,并包含负数、边界值、小数和复数数据。 - 通过 gate_stream 上的矩阵乘任务阻塞 copy_stream,再使用 done_event.query() 验证 copy_ 返回时没有同步等待异步拷贝完成。 - 补充非连续 NPU 目标、非连续 CPU pinned 目标、非连续 NPU 源、broadcast 源、带 storage offset 的 pinned CPU slice,以及连续 mixed-dtype 异步拷贝下 temporary 生命周期测试。 - 非连续 NPU 源用例覆盖 D2H mixed-dtype 场景,验证 _npu_dtype_cast 前的 format_contiguous 保护逻辑。 - 补充 float8_e5m2、float8_e4m3fn、complex32 等 aclnnCast unsupported dtype 的 CPU cast fallback 正确性测试。 - 保留 non_blocking=False 的 H2D/D2H mixed-dtype 结果正确性回归测试。 - mixed-dtype 相关用例限定在 Ascend910B、Ascend910_93、Ascend950 上执行。 3. 补充 Tensor.to mixed-dtype 跨设备测试。 - test/npu/test_npu.py - 新增 test_to_non_blocking_different_dtype,覆盖 CPU ↔ NPU、non_blocking=True/False 的跨设备 dtype 转换。 - 验证 int32 -> float32 转换结果正确性。 - 验证 D2H 且 non_blocking=True 时输出 Tensor 保持 pinned-memory 属性。 - 用例限定在 Ascend910B、Ascend910_93、Ascend950 上执行。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39574 | 1 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
add torch.npu._sleep Co-authored-by: nomiz<1606135114@qq.com> # message auto-generated for no-merge-commit merge: !42262 merge v2.9.0 into v2.9.0 add torch.npu._sleep Created-by: nomiz Commit-by: nomiz Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> https://gitcode.com/Ascend/pytorch/issues/3339 # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 新增torch.npu._sleep接口,功能对齐 torch.cuda._sleep,用于在当前 NPU Stream 上插入一个指定周期的忙等待(spin-wait)操作。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 ut验证结果  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!42262 | 22 天前 | |
feat: Add ACLGraph update plans Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !38049 merge Pynative_refactor_aclgraph_update_20260519_2.9.0 into v2.9.0 feat: Add ACLGraph update plans Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 > 关联 issue: #2338 (https://gitcode.com/Ascend/pytorch/issues/2338) - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列 > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 新增 torch_npu._inductor.aclgraph_update_plan 模块,在 Inductor codegen 阶段生成 ACLGraph update plan,并在运行期根据 callable 属性解析 new_inputs 到 FA 类算子 actual sequence 参数的映射。 2. 在 NPU Python wrapper、MLIR/DVM wrapper、graph partition 子图 wrapper 中挂载 plan,支持 graph partition 开关下分别写入 call 或 partition_x 函数属性。 3. 在 _graph_tree record/replay 路径消费 update plan,record 后校验 plan 与真实 capture record 的顺序、算子名和可更新 key,replay 前解析为 CPU update input。 4. 将 IFA/IFA v2/FA3 等 npugraph handler 的 actual sequence 更新点改为 UPDATE_SPECS 声明式描述,并由 base handler 统一更新 args/kwargs。 5. 补充 plan 构建、plan 解析、handler 注册、wrapper emit、npugraphify callable 属性保持等单元测试,替换旧的集中测试文件。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 不涉及对外资料变更。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及客户面可见 API 变更;新增 torch_npu._inductor.aclgraph_update_plan 为内部编译与 ACLGraph 运行期协同模块。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤 > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已补充并验证以下单测: 1. test/npu/test_aclgraph_update_plan.py 覆盖 plan 构建、输入映射、常量解析、非法 plan 校验。 2. test/npu/test_npugraph_handler.py 覆盖 IFA/IFA v2 handler 的 UPDATE_SPECS 注册。 3. test/_inductor/test_aclgraph_update_plan_compile.py 覆盖 wrapper/graph partition emit、MLIR/DVM wrapper、npugraphify callable 属性保持等非设备单测。 4. 多版本迁移后已在 v2.7.1、v2.9.0、v2.10.0、v2.11.0、v2.12.0、master 分支通过静态检查和不涉及设备的单测验证。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!38049 | 2 个月前 | |
support torch.npu.npurt Co-authored-by: bellatan<tanmei2@huawei.com> # message auto-generated for no-merge-commit merge: !39457 merge v2.9.0_torch_npurt into v2.9.0 support torch.npu.npurt Created-by: bellatan Commit-by: bellatan 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/2504 # 【资料变更】 新增接口 torch.npu.npurt() # 【接口变更】 新增接口 torch.npu.npurt() # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39457 | 1 个月前 | |
| 2 年前 | ||
add test for TORCH_ACL_INIT_CONFIG_PATH Co-authored-by: huangyunlong2022<huangyunlong4@h-partners.com> # message auto-generated for no-merge-commit merge: !39953 merge 2.9aclj into v2.9.0 add test for TORCH_ACL_INIT_CONFIG_PATH Created-by: huangyunlong2022 Commit-by: huangyunlong2022 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能力等内容) 为自定义配置acl.json路径添加校验 对自定义配置acl.json路径校验报错时添加修复提示 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39953 | 1 个月前 | |
| 2 年前 | ||
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35872 merge v2.9.0_lintrunner into v2.9.0 fix: lintrunner --all-files --take NEWLINE -a 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/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 执行: lintrunner --all-files --take NEWLINE -a 修复换行符,不影响代码逻辑。 2. 屏蔽两个分布式用例,已提issue,给对应接口人跟踪。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35872 | 3 个月前 | |
| 1 年前 | ||
feat: support DVM MM template fusion Co-authored-by: huangchengnuo<huangchengnuo1@huawei.com> # message auto-generated for no-merge-commit merge: !40027 merge dvm-mm-template-fusion-v290 into v2.9.0 feat: support DVM MM template fusion Created-by: SorryNaCN Commit-by: huangchengnuo Merged-by: ascend-robot Description: # 【合入来源】 - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 关联图模式 Issue:https://gitcode.com/Ascend/pytorch/issues/1978 # 【修改方案】 1. 在 torch_npu._inductor.dvm.config 中增加 enable_matmul_fusion。该开关默认关闭,仅在设置 INDUCTOR_DVM_ENABLE_MATMUL_FUSION=1 时注册 DVM matmul template lowering,未启用时保持原有 DVM/Inductor 路径不变。 2. 为 aten.mm、aten.bmm、aten.addmm 与 aten.baddbmm 注册 DVM template lowering,并新增 DvmTemplateBuffer 保存 matmul template FX 图及逻辑 placeholder 到实际 IR 输入的绑定关系。生成 wrapper 调用前恢复真实参数;不满足 DVM shape/type 规则的场景继续走原有 fallback。 3. 保留 addmm 的原始算子形态以进入 template lowering,补齐 baddbmm 的转置标注、图构建参数透传和 DVM codegen;保持 addmm/baddbmm 的 alpha、beta 语义。K=1 的 mm、bmm 下沉为逐元素 mul,K=1 的 addmm 下沉为 mul 与 add 组合。 4. 在 NpuDvmScheduling 的 template codegen 中复用 NpuMetaScheduling 的 traced-graph 构图与回退能力。DVM matmul template 仅支持合法 pointwise epilogue 的纵向融合;prologue、horizontal fusion、reduction、template-to-template、group/numel 不一致及不支持的 broadcast 场景均不融合。 5. 移除 _is_view_only_graph 对纯 view、reshape、_unsafe_view epilogue 的额外拒绝逻辑,统一由既有 pointwise、shape、依赖和广播合法性检查决定是否进入 DVM template 融合路径。 6. 补充 mm、bmm、addmm、baddbmm 的 template fusion 回归覆盖,并覆盖 K=1、multi-user 输出、view/view+pointwise epilogue、view 输入及同一 buffer 多 view 场景。 # 【资料变更】 不涉及。 # 【接口变更】 不涉及客户可见接口变更。 # 【功能验证】 - 对全部变更 Python 文件执行 python3 -m py_compile,通过。 - 执行 git diff --check,通过。 - 完整 NPU 定向用例由 CI 执行。 ## 性能收益 该优化将 matmul 与下游 pointwise/view 融合为单个 DVM mix kernel,减少中间张量读写和 kernel launch。以下为 v2.9.0 同功能实测(端到端统计已排除首次编译与 warm-up): | 网络 / 指标(每 step) | Template OFF | Template ON | 时延收益 | |---|---:|---:|---:| | GLM-4-9B Chat LoRA BF16(batch 1、seq 512,稳态端到端) | 279.752 ms | 255.837 ms | **8.55%** | | Qwen2-VL-2B-Instruct LoRA BF16(batch 1、max length 512,step 11-51) | 773.792 ms | 747.664 ms | **3.38%** | | BERT_pytorch BF16(稳态端到端) | 23.3781 ms | 21.8458 ms | **6.55%** | | GLM-4-9B LoRA BF16(batch 1、seq 128,稳态端到端) | 219.3782 ms | 204.9709 ms | **6.57%** | | Llama3-8B LoRA BF16(batch 1、seq 128,稳态端到端) | 409.4111 ms | 393.3233 ms | **3.93%** | GLM-4-9B Chat 对应吞吐约提升 **9.34%**。GPT-OSS-20B 的 device kernel duration 为 -0.62%,当前不作为性能收益结论。 详细测试配置与完整数据见:https://gitcode.com/Ascend/pytorch/merge_requests/40027 # 【CheckList】 - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40027 | 25 天前 | |
| 2 年前 | ||
[feat] Add disable_tensor_unsafe_check option to restart_device Co-authored-by: LiNuohang<linuohang@huawei.com> # message auto-generated for no-merge-commit merge: !36164 merge bz-9 into v2.9.0 [feat] Add disable_tensor_unsafe_check option to restart_device Created-by: LiNuohang Commit-by: LiNuohang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 需求背景: 推理场景,不需要更新权重数据,因此发生uce故障时,存在只做流恢复,不需要做数据标脏和恢复的场景。当前快恢流恢复和数据标脏通过同一个配置项rebuild_all_resources控制,导致该场景无法使用,需要为数据标脏单独增加配置项。 当前现状: 当前快恢流恢复和数据标脏通过同一个配置项rebuild_all_resources控制 具体设计方案: 描述:restart_device接口增加disable_tensor_unsafe_check开关,用于单独控制是否对数据做标脏处理 为保证兼容性,默认为False,且仅在rebuild_all_resource为True时生效,即: rebuild_all_resources = True, disable_tensor_unsafe_check = True, 不做数据标脏 rebuild_all_resources = True, disable_tensor_unsafe_check= False, 做数据标脏 rebuild_all_resources = False, disable_tensor_unsafe_check= True, 不做数据标脏 rebuild_all_resources = False, disable_tensor_unsafe_check= False, 不做数据标脏 # 【资料变更】 restart_device接口增加disable_tensor_unsafe_check开关 # 【接口变更】 restart_device接口增加disable_tensor_unsafe_check开关 # 【功能验证】 已新增UT # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!36164 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
round_size pad 32 byte Co-authored-by: zhaoyu<nanzhaogang@qq.com> # message auto-generated for no-merge-commit merge: !28330 merge v2.9.0 into v2.9.0 round_size pad 32 byte Created-by: zhaoyu65 Commit-by: zhaoyu Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > /kind bug **What does this PR do / why do we need it**: round_size增加32byte,避免aclnn算子内存问题 **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!28330 | 7 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
feat: adapt FRACTAL_NZ D2H/printing and serialization UT for Ascend950 Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !44315 merge feat/nz2nd-serialization-v2.9.0 into v2.9.0 feat: adapt FRACTAL_NZ D2H/printing and serialization UT for Ascend950 Created-by: wuyouqi1 Commit-by: wuyouqi1 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [x] issue/工单 https://gitcode.com/Ascend/pytorch/issues/2629 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 同步 #2629(A5/Ascend950 上 FRACTAL_NZ 私有格式 tensor 的 D2H、打印、序列化适配)至本分支,与 v2.7.1 实现(MR !40289)保持一致。本 PR 内容: 1. torch_npu/utils/tensor_methods.py:新增 _add_repr_patch()。私有格式(FRACTAL_NZ 系列)tensor 在 Tensor.__repr__ 中会命中 _tensor_str 内部格式守卫(cat/stack),导致打印/D2H 失败;patch 在私有格式时先 .cpu() 触发 D2H + format cast,再走原 __repr__。在 _add_tensor_methods() 末尾注册。 2. torch_npu/csrc/aten/common/FormatCastKernelNpu.cpp:IsAclnnOnly() 路径下,未显式指定 customize_dtype 时,对 element_size() >= 4 的类型(fp32/int32)将 customizeAcltype 默认置为 ACL_FLOAT16(C0=16),与 aclop 路径的历史行为对齐。 3. test/npu/test_serialization_format.py:新增 Ascend950 专属用例 TestSerializationFormatAscend950(受 @unittest.skipUnless(IS_ASCEND950, ...) 门控),覆盖 ND save/load、按 dtype 的 FRACTAL_NZ round-trip、NZ tensor D2H/repr/print;原 TestSerializationFormat 在 Ascend950 上跳过。 > 说明:本分支不含 v2.7.1 MR !40289 中的 __reduce_ex__ 序列化 patch(该 patch 在本分支不需要)。如该 patch 后续需要,将另行评估。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 测试场景: - A2/A3(非 Ascend950):TestSerializationFormat 原用例照常执行,TestSerializationFormatAscend950 被 skipUnless(IS_ASCEND950) 跳过。 - A5/Ascend950:TestSerializationFormat 跳过,执行 TestSerializationFormatAscend950:fp16/bf16/int8/int32/int64 的 FRACTAL_NZ save/load round-trip 与 D2H/repr/print。 运行方式:python test/npu/test_serialization_format.py -v 新增/变更内容已适配 UT 用例(test_serialization_format.py)。本 PR 为跨版本同步,代码已验证在各目标分支干净 apply、无遗留依赖(不含 _reduce_ex__);具体执行结果以本分支 CI 流水线为准。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 Fixes #2629 https://gitcode.com/Ascend/pytorch/issues/2629 See merge request: Ascend/pytorch!44315 | 2 天前 | |
feat: adapt FRACTAL_NZ D2H/printing and serialization UT for Ascend950 Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !44315 merge feat/nz2nd-serialization-v2.9.0 into v2.9.0 feat: adapt FRACTAL_NZ D2H/printing and serialization UT for Ascend950 Created-by: wuyouqi1 Commit-by: wuyouqi1 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [x] issue/工单 https://gitcode.com/Ascend/pytorch/issues/2629 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 同步 #2629(A5/Ascend950 上 FRACTAL_NZ 私有格式 tensor 的 D2H、打印、序列化适配)至本分支,与 v2.7.1 实现(MR !40289)保持一致。本 PR 内容: 1. torch_npu/utils/tensor_methods.py:新增 _add_repr_patch()。私有格式(FRACTAL_NZ 系列)tensor 在 Tensor.__repr__ 中会命中 _tensor_str 内部格式守卫(cat/stack),导致打印/D2H 失败;patch 在私有格式时先 .cpu() 触发 D2H + format cast,再走原 __repr__。在 _add_tensor_methods() 末尾注册。 2. torch_npu/csrc/aten/common/FormatCastKernelNpu.cpp:IsAclnnOnly() 路径下,未显式指定 customize_dtype 时,对 element_size() >= 4 的类型(fp32/int32)将 customizeAcltype 默认置为 ACL_FLOAT16(C0=16),与 aclop 路径的历史行为对齐。 3. test/npu/test_serialization_format.py:新增 Ascend950 专属用例 TestSerializationFormatAscend950(受 @unittest.skipUnless(IS_ASCEND950, ...) 门控),覆盖 ND save/load、按 dtype 的 FRACTAL_NZ round-trip、NZ tensor D2H/repr/print;原 TestSerializationFormat 在 Ascend950 上跳过。 > 说明:本分支不含 v2.7.1 MR !40289 中的 __reduce_ex__ 序列化 patch(该 patch 在本分支不需要)。如该 patch 后续需要,将另行评估。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 测试场景: - A2/A3(非 Ascend950):TestSerializationFormat 原用例照常执行,TestSerializationFormatAscend950 被 skipUnless(IS_ASCEND950) 跳过。 - A5/Ascend950:TestSerializationFormat 跳过,执行 TestSerializationFormatAscend950:fp16/bf16/int8/int32/int64 的 FRACTAL_NZ save/load round-trip 与 D2H/repr/print。 运行方式:python test/npu/test_serialization_format.py -v 新增/变更内容已适配 UT 用例(test_serialization_format.py)。本 PR 为跨版本同步,代码已验证在各目标分支干净 apply、无遗留依赖(不含 _reduce_ex__);具体执行结果以本分支 CI 流水线为准。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 Fixes #2629 https://gitcode.com/Ascend/pytorch/issues/2629 See merge request: Ascend/pytorch!44315 | 2 天前 | |
| 2 年前 | ||
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
perf: defer dynamo/inductor loading on v2.9.0 (#2788) Co-authored-by: stevenaw0<huangguijun@huawei.com> # message auto-generated for no-merge-commit merge: !43444 merge v2.9.0_import into v2.9.0 perf: defer dynamo/inductor loading on v2.9.0 (#2788) Created-by: stevenaw0 Commit-by: stevenaw0 Merged-by: ascend-robot Description: ## 变更说明 将 v2.7.1_import 上的懒加载性能优化同步到 v2.9.0: - import torch_npu 时不再提前加载 torch._dynamo、torch._inductor 和 sympy。 - 首次导入或使用 Dynamo 入口时完成 Dynamo lazy setup;只有选择 Inductor backend 时才继续完成 Inductor lazy setup,非 Inductor backend 不初始化 Inductor。 - 设计上保留 torchair、npugraph_ex、transfer_to_npu、RNG prims 与公开接口行为;本文列出的测试和 CI 范围内未发现兼容性回归。 - 采用 v2.9.0 原生的 NPU Inductor device-op 注册路径,并保留目标分支的版本特有语义。 - 除 v2.7.1_import 的懒加载同步外,target 还包含一项来自 v2.10 修复意图、基于 v2.9 当前代码实现的 aten.erfc decomposition 重注册修复。 # v2.7.1_import 与 v2.9.0_import 改动差异总报告 ## 1. 报告目的 方便 committer 进行代码检视。 ## 2. “相同”与“差异”的判定规则 对每个文件分别提取两边 patch 的新增行和删除行,保留原始顺序和全部字符,然后逐字节比较: - **相同**:新增/删除代码行序列完全一致,包括空格、空行和文件末尾换行。 - **差异**:只要一个字符不同,或新增/删除行数不同,就标记为差异。 - **仅 v2.7.1**:v2.7.1 import 修改了该文件,v2.9.0 import 没有修改。 - **仅 v2.9.0**:v2.9.0 import 修改了该文件,v2.7.1 import 没有修改。 “改动代码相同”不等于“最终文件相同”。两个版本的基线代码本身可能不同;报告会把“同步 hunk 相同、最终文件因版本基线不同”单独说明。 本报告固定比较以下 SHA,避免维护分支继续前进后改变统计口径: - v2.7.1 source:0c9b783ca5635da8000e571fa60370f266a4e978..371545dc2e4a09ca2024ec220c3eed1b9a50ba48 - v2.9.0 target:dd936ee52a7202c144bd1322c04041955f0d2205..0bf5bdadcfa38f20608f6b5a6434dbe97ccb2c1b ## 3. 总体统计 两边 patch 的文件并集共 34 个文件;source 修改 33 个文件,target 修改 29 个文件: - 18 个文件的改动代码逐字符相同。 - 10 个文件双方都修改,但改动代码存在字符差异。 - 5 个文件仅 v2.7.1 修改,v2.9.0 采用不同的 DTensor 方案。 - 1 个文件仅 v2.9.0 修改,用于修复 aten.erfc decomposition 重复注册。 ### 3.1 改动代码完全相同的 18 个文件 | 文件 | v2.7.1 增/删 | v2.9.0 增/删 | 结论 | |---|---:|---:|---| | setup.py | +5/-0 | +5/-0 | entry point 声明完全相同 | | test/_inductor/test_current_device.py | +2/-1 | +2/-1 | 完全相同 | | test/_inductor/test_mlir_enable.py | +4/-1 | +4/-1 | 完全相同 | | test/npu/test_stream.py | +5/-0 | +5/-0 | 完全相同 | | test/utils/test_inductor.py | +0/-33 | +0/-33 | 删除代码完全相同 | | torch_npu/_init/patches/api_patches.py | +0/-2 | +0/-2 | 完全相同 | | torch_npu/_init/patches/distributed_patches.py | +61/-10 | +61/-10 | 完全相同 | | torch_npu/_init/patches/dynamo_patches.py | +0/-7 | +0/-7 | 完全相同 | | torch_npu/contrib/transfer_to_npu.py | +13/-1 | +13/-1 | 完全相同 | | torch_npu/distributed/fsdp/__init__.py | +2/-0 | +2/-0 | 完全相同 | | torch_npu/distributed/tensor/__init__.py | +14/-1 | +14/-1 | 完全相同 | | torch_npu/dynamo/__init__.py | +67/-5 | +67/-5 | 改动行完全相同;最终文件有一个基线空行差异 | | torch_npu/npu/__init__.py | +13/-2 | +13/-2 | 完全相同 | | torch_npu/npu/_graph_tree.py | +1/-12 | +1/-12 | 改动行完全相同;保留各版本图树基线 | | torch_npu/npu/_graph_tree_state.py | +11/-0 | +11/-0 | 新文件完全相同 | | torch_npu/npu/deterministic.py | +11/-3 | +11/-3 | 完全相同 | | torch_npu/utils/_graph_tree.py | +20/-9 | +20/-9 | 改动行完全相同;保留各版本 API 基线 | | torch_npu/utils/_rng_prims_patch.py | +255/-0 | +255/-0 | 新文件完全相同 | ### 3.2 双方都修改但代码不同的 10 个文件 | 文件 | v2.7.1 增/删 | v2.9.0 增/删 | 主要差异原因 | |---|---:|---:|---| | test/dynamo/test_compile_trigger.py | +1372/-0 | +1438/-0 | PyTorch 2.9 行为适配及 target 独有 has_triton、shape、fork 锁测试 | | test/test_torch_npu_init.py | +89/-14 | +79/-15 | DTensor OpSpec、TMA 名称及 bootstrap 快照版本差异 | | torch_npu/_inductor/kernel/bmm.py | +5/-4 | +3/-2 | v2.9 已无 bmm_configs/bmm_template 本地别名 | | torch_npu/_inductor/utils.py | +2/-1 | +2/-2 | source 在此定义并安装 has_triton;target 复用 _dynamo.py 的 v2.9 实现,只同步 Inductor 已绑定入口 | | torch_npu/_init/registry/registry_manager.py | +10/-24 | +8/-31 | 两版 registry 项目和初始化列表不同 | | torch_npu/distributed/__init__.py | +19/-1 | +18/-0 | 两版 distributed 基线 import 结构不同 | | torch_npu/npu/npugraph_ex/__init__.py | +2/-2 | +1/-1 | 基线空格/EOF 不同;最终文件收敛相同 | | torch_npu/utils/__init__.py | +1/-1 | +1/-0 | source 替换已有 import,target 在不同基线上新增;最终相同 | | torch_npu/utils/_dynamo.py | +447/-133 | +428/-129 | v2.9 wrapper、options、has_triton、AscendC、lookup 与 fork 锁适配 | | torch_npu/utils/_inductor.py | +8/-248 | +8/-247 | 删除代码相差一个基线空行;最终兼容转发文件相同 | ### 3.3 仅 v2.7.1 修改的 5 个文件 | 文件 | v2.7.1 增/删 | v2.9.0 | 原因 | |---|---:|---|---| | torch_npu/distributed/tensor/_attention.py | +2/-2 | 未修改 | v2.9 直接使用上游 register_sharding | | torch_npu/distributed/tensor/_dtensor_patch.py | +63/-0 | 未修改 | 2.7.1 需要本地轻量 helper;2.9 不需要复制上游实现 | | torch_npu/distributed/tensor/_math_ops.py | +2/-1 | 未修改 | 同上 | | torch_npu/distributed/tensor/_matrix_ops.py | +1/-1 | 未修改 | 同上 | | torch_npu/distributed/tensor/_moe_ops.py | +3/-2 | 未修改 | 同上 | ### 3.4 仅 v2.9.0 修改的 1 个文件 | 文件 | v2.7.1 | v2.9.0 增/删 | 原因 | |---|---|---:|---| | torch_npu/_inductor/decomposition.py | 未修改 | +1/-0 | 将 aten.erfc 加入重注册前的 overload 清理集合,避免 backend 重载时重复注册 | ## 4. 最重要的版本差异 ### 4.1 DTensor:v2.9 不同步 source 的 5 个文件改动是有意设计 v2.7.1 为避免导入 DTensor experimental API 间接加载 compiler 模块,在已有 _dtensor_patch.py 中增加轻量 register_sharding helper,并让 4 个算子文件改用该 helper。它依赖 2.7.1 内部结构,例如 TupleStrategy.childs 和 _is_inplace_op。 v2.9 保留算子文件对 PyTorch 自带 register_sharding 的直接使用。目标基线同时存在以下两种 PyTorch 2.9 兼容路径: python # _attention.py / _matrix_ops.py / _moe_ops.py from torch.distributed._tensor.experimental import register_sharding # _math_ops.py from torch.distributed.tensor.experimental import register_sharding 在 PyTorch 2.9 当前实现中,这些导入路径不会加载 Dynamo/Inductor,因此无需复制 2.7.1 的本地 decorator。target 最终没有新增 _sharding_registration.py,但仍保留并在 strategy 注册前加载目标基线已有的 _dtensor_patch.py;该文件负责 v2.9 的 kwargs strategy 和 expand_to_full_mesh_op_strategy 兼容,不是 2.7.1 register_sharding helper 的副本。 因此,target 未引入 _sharding_registration.py 对应的上游源码副本,也没有这类新增副本的 Meta/BSD License 声明要求;不能表述为 target 不存在 _dtensor_patch.py。 ### 4.2 has_triton:保留 v2.9 实现,并按初始化层级复用 v2.7.1 的 has_triton 是 torch_npu/_inductor/utils.py::patch_has_triton() 内部的缓存函数。v2.9 最终没有复制该函数体,也没有把自身实现移动到 Inductor 模块,而是把 v2.9 原有语义保留在 torch_npu/utils/_dynamo.py: python @functools.lru_cache(None) def has_triton() -> bool: from torch.utils._triton import has_triton_package if not has_triton_package(): return False from torch._dynamo.device_interface import get_interface_for_device ... _dynamo_register_interface_for_device() for device, extra_check in triton_supported_devices.items(): device_interface = get_interface_for_device(device) if device_interface.is_available() and extra_check(device_interface): return True return False 该实现逐项检查 CUDA、XPU、CPU、NPU;CPU 还要求 Triton CPU backend 存在,NPU 不查询 CUDA device properties。import torch_npu 时仅将这个轻量 callable 提前安装到 torch.utils._triton.has_triton,函数体内部的 Dynamo/Triton backend 导入仍延迟到首次调用,因此不会因为安装 patch 而提前加载 Dynamo/Inductor。 首次初始化 Inductor 后,torch_npu/_inductor/utils.py 复用同一个函数对象,更新 Inductor 已按值绑定的入口: python def patch_has_triton(): from torch._inductor import compile_fx from torch_npu.utils._dynamo import has_triton torch._inductor.scheduler.has_triton = has_triton compile_fx.has_triton = has_triton 这种归属确保全局只有一份 v2.9 设备判定实现,同时兼顾 import 阶段的早期 consumer 和 Inductor 加载后的已绑定 consumer。 ### 4.3 Inductor wrapper:v2.9 保留参数校验和 shape 延迟顺序 PyTorch 2.9 的 _TorchCompileInductorWrapper.__init__ 会在构造期间调用 self.apply_options()。target 因此不能复制 2.7.1 wrapper,而是保留以下顺序: text NPU option 名规范化及 npu_backend 类型预检 → PyTorch 2.9 src_init/src_apply_options 完成 mode、option 名和值校验 → 根据规范化 options/config/env 选择 NPU backend → 初始化所选 backend → 执行延迟记录的 shape handling patch → 执行 MLIR/DVM 构造期附加 scope 操作 target 还支持 PyTorch 2.9 原生的连字符 option alias: python attr_name = key.replace("-", "_") 因此 npu-backend/npu_backend、enable-shape-handling/enable_shape_handling 行为一致。任何校验失败都发生在 _setup_inductor_for_compile() 前,不会先初始化 NPU Inductor。 ### 4.4 backend lookup:两边最新实现均覆盖已绑定入口 v2.9 的 torch._dynamo.eval_frame 会按值绑定 lookup_backend。target 除更新 registry 外,还按 identity 更新已绑定入口: python registry.lookup_backend = lookup_backend if torch_dynamo.lookup_backend is original_lookup_backend: torch_dynamo.lookup_backend = lookup_backend if eval_frame.lookup_backend is original_lookup_backend: eval_frame.lookup_backend = lookup_backend 注册完成后通过 _COMPILER_FNS 无锁返回;只有指定 NPU backend 尚未出现在 _COMPILER_FNS 时才进入 RLock,避免正常 compile 热路径锁竞争。v2.7.1_import 最新提交也已同步该已绑定入口和无锁热路径语义,因此这不再是 target 独有能力。 ### 4.5 fork:两边均在 child 中重建 compiler 状态 两边最新实现都会在 child 中重建每个 run_once 的 Condition,并清除可能指向父进程线程的 running owner;已完成的 has_run 状态保留,fork 时尚未完成的 lazy setup 可由 child 重试。 两边也都维护 backend lookup 与 backend scope 两把 RLock。当前实现不在 fork 前获取并等待这些锁,而是在 child hook 中直接丢弃继承的锁对象: python def _reset_compiler_locks_after_fork(): global _INDUCTOR_NPU_BACKEND_LOCK, _DYNAMO_NPU_BACKEND_LOOKUP_LOCK _INDUCTOR_NPU_BACKEND_LOCK = threading.RLock() _DYNAMO_NPU_BACKEND_LOOKUP_LOCK = threading.RLock() os.register_at_fork(after_in_child=_reset_compiler_locks_after_fork) 父进程继续使用原锁,child 使用新锁,避免 child 继承一个由不存在的父线程永久持有的 RLock。该方案不保证 fork 前临时 TORCHINDUCTOR_NPU_BACKEND 已恢复;环境变量按 fork 瞬间复制,child backend scope 保存并恢复的是 fork 瞬间继承的值,不会自动推断父线程进入 scope 前的值。target 额外直接验证了父线程持有 lookup lock 时,child 可通过 torch._dynamo.lookup_backend("npu") 恢复;scope 测试直接覆盖 _NpuBackendScope,不能描述成 fork child 内执行完整 Inductor compile。 ### 4.6 AscendC deterministic:仅 target 需要保留的 v2.9 语义 AscendC deterministic 是 v2.9 target 独有的基线语义。实际 compile 调用进入 _NpuBackendScope("ascendc") 后,先按临时 backend 环境加载或切换 NPU Inductor,再安装 deterministic level cache-key patch;随后 new_call() 在调用 PyTorch 原 wrapper 前安装 Dynamo deterministic guard。两者都位于 backend scope 内,异常时 scope 仍恢复 TORCHINDUCTOR_NPU_BACKEND 并释放锁。2.7.1 source 没有对应分支,跨版本同步时必须保留 target 实现。 ### 4.7 aten.erfc:target 独有的重复注册修复 target 原本已定义 Triton erfc = 1 - erf(x) decomposition,但 backend 重载会再次执行注册。若 aten.erfc.default 等 overload 仍留在全局 decomposition 表,第二次注册会先报 duplicate registrations for aten.erfc.default。 0bf5bdadcf 仅将 aten.erfc 加入 DECOMPOSITION_OVERLOAD_OP:add_overload() 会展开 packet,并在现有 decorator 再次注册前删除 default、out 等旧 overload。在标准干净 registry 状态下,首次注册结果和数值公式不变,只修复重复初始化。 该语义参考 v2.10 提交 ab0acd320e,但实现是基于 v2.9 当前 decomposition 结构完成;它不是 v2.7.1_import patch 的一部分,也没有同步 ab0acd320e 的其他文件。 ## 5. 测试差异与审查提示 `test/dynamo/test_compile_trig See merge request: Ascend/pytorch!43444 | 7 天前 | |
AI assist developer for python dt third batch for 2.9.0 Co-authored-by: deepSeekya<chenzhihan6@huawei.com> # message auto-generated for no-merge-commit merge: !26520 merge v2.9.0 into v2.9.0 AI assist developer for python dt third batch for 2.9.0 Created-by: deepSeekya Commit-by: deepSeekya Merged-by: ascend-robot Description: 【合入说明】 AI辅助研发python dt测试用例生成。 【合入来源】 AI辅助研发需求 dt测试文件覆盖率提升。 See merge request: Ascend/pytorch!26520 | 8 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
Update LocalScalarDenseNpu and include ATen/Dispatch_v2.h to support more data types. Co-authored-by: wangzhenwu7<5ge@live.com> # message auto-generated for no-merge-commit merge: !27196 merge v2.9.0 into v2.9.0 Update LocalScalarDenseNpu and include ATen/Dispatch_v2.h to support more data types. Created-by: wangzhenwu Commit-by: wangzhenwu7 Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug > /kind task > /kind feature **What does this PR do / why do we need it**: **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!27196 | 7 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36364 merge v2.9.0_lintrunner into v2.9.0 [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!36364 | 2 个月前 | |
| 2 年前 | ||
AI assist developer for python DT 2.9.0 Co-authored-by: deepSeekya<chenzhihan6@huawei.com> # message auto-generated for no-merge-commit merge: !26291 merge v2.9.0 into v2.9.0 AI assist developer for python DT 2.9.0 Created-by: deepSeekya Commit-by: deepSeekya Merged-by: ascend-robot Description: 【合入说明】 AI辅助研发python dt测试用例生成。 【合入来源】 AI辅助研发需求 dt测试文件覆盖率提升。 See merge request: Ascend/pytorch!26291 | 9 个月前 | |
| 2 年前 | ||
| 1 年前 | ||
use torch_npu._C instead of option Co-authored-by: huangyunlong2022<huangyunlong4@h-partners.com> # message auto-generated for no-merge-commit merge: !43705 merge 2.9fille into v2.9.0 use torch_npu._C instead of option Created-by: huangyunlong2022 Commit-by: huangyunlong2022 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 使用torch_npu.\_C接口替换option接口 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!43705 | 15 天前 | |
support torch.npu.npurt Co-authored-by: bellatan<tanmei2@huawei.com> # message auto-generated for no-merge-commit merge: !39457 merge v2.9.0_torch_npurt into v2.9.0 support torch.npu.npurt Created-by: bellatan Commit-by: bellatan 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/2504 # 【资料变更】 新增接口 torch.npu.npurt() # 【接口变更】 新增接口 torch.npu.npurt() # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39457 | 1 个月前 | |
| 2 年前 | ||
pta supports to create nested tensor Co-authored-by: chenshuai<chenshuai81@huawei.com> # message auto-generated for no-merge-commit merge: !30196 merge cherry-pick-mr-29723-1769659047478-auto into v2.9.0 pta supports to create nested tensor Created-by: culechan Commit-by: chenshuai Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug > /kind task > /kind feature **What does this PR do / why do we need it**: **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!30196 | 6 个月前 | |
| 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 14 天前 | ||
| 2 个月前 | ||
| 28 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 9 个月前 | ||
| 6 个月前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 27 天前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 30 天前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 22 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 1 年前 | ||
| 25 天前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 7 天前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 9 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 15 天前 | ||
| 1 个月前 | ||
| 2 年前 | ||
| 6 个月前 | ||
| 2 年前 |