| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Optimize the patch for FSDP Co-authored-by: zhenyu10<shizhenyu5@huawei.com> # message auto-generated for no-merge-commit merge: !34632 merge master into master Optimize the patch for FSDP Created-by: zhenyu10 Commit-by: zhenyu10 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 社区 issue:https://gitcode.com/Ascend/pytorch/issues/1788 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 采用“上层复用原生,下层补齐后端语义”的设计: 1. torch-npu 删除 FSDP2 collectives patch: - 不再覆写 _get_param_all_gather_inputs - 不再覆写 torch.ops.fsdp.all_gather_copy_in - 不再覆写 FSDPParamGroup.finalize_backward - fully_shard() 入口只保留 NPU 侧增强 patch,例如内存缓存和 recompute/prefetch 状态管理 2. op-plugin 在 foreach copy 算子中对齐同设备 D2D fast path: - fast path 判定显式使用 PyTorch foreach 工具函数: - at::native::can_use_fast_route(self, src) - check_tensor_dtype_support_base(src) - can_use_fast_route(self, src) 本身会检查 self/src dtype 一致,因此 dtype 不同不会进入 NPU fast path,保持当前 NPU 不支持跨 dtype fast path 的既有语义。 - 命中 fast path 时调用: cpp split_and_exec_npu_cmd_copy(self, src, /*non_blocking=*/true); 3. fallback 路径保持调用方传入语义: - 未命中 fast path 时,memcpyBatch(self, src, non_blocking) 不变 - slow path foreach_tensor_copy_list_kernel_slow_(self, src, non_blocking) 不变 - DO_COMPATIBILITY 回退仍使用原始 non_blocking # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及。无新增客户可见接口;FSDP 对外使用方式不变。_foreach_copy_ 的 NPU 后端实现由 op-plugin 承接,不新增 Python 侧公开接口。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 测试场景: 1. FSDP collectives 覆写删除后,fully_shard 继续复用上游 PyTorch 原生 finalize_backward、_get_param_all_gather_inputs、all_gather_copy_in 主流程; 2. NPU 侧 _foreach_copy_ 在 op-plugin 中优先走 D2D fast path,不满足条件时回退到已有 batch copy / slow path; 3. 跨 dtype NPU D2D copy 场景在异步排队后结果正确。 测试方法: - op-plugin 用例: - python test/test_v2r1_ops/test_foreach_copy.py - python test/test_v2r2_ops/test_foreach_copy.py - torch-npu 侧建议验证 FSDP fully-shard 训练主路径,功能科通过仓内测试用例。 执行结果: - 已完成代码检查与 push hook 校验通过。 - NPU 环境 UT 结果请以当前 CI/转测执行结果为准。 UT看护: - 已适配 op-plugin foreach copy 用例,在跨 dtype copy 断言前增加 torch.npu.synchronize(),覆盖新增异步 D2D fast path 行为。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!34632 | 5 个月前 | |
Add HCCL in allgather base backward Co-authored-by: limuan<liyijie16@huawei.com> # message auto-generated for no-merge-commit merge: !31731 merge issue_lyj/master into master Add HCCL in allgather base backward Created-by: limuan Commit-by: limuan Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 运行torch社区用例,test/distributed/test_c10d_wpawn_nccl.py -v -k test_all_gather_base 报Backend not supported!错误, 原因:allgather base 的backward中if dist.get_backend(group=ctx.group) is dist.Backend.NCCL: 为false 则直接raise RuntimeError("Backend not supported!") 修改:在torch_npu的init中 对allgather base的backward函数进行替换 if dist.get_backend(group=ctx.group) is dist.Backend.NCCL: 改为 if dist.get_backend(group=ctx.group) in (dist.Backend.NCCL, dist.Backend.HCCL): 其他不变 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!31731 | 5 个月前 | |
[fix] Fix NPU pipeline None placeholder Error Co-authored-by: Yuheng Wang<wangyuheng16@huawei.com> # message auto-generated for no-merge-commit merge: !39890 merge codex/fix-pipeline-prune-master into master [fix] Fix NPU pipeline None placeholder Error Created-by: yuheng_wang Commit-by: Yuheng Wang 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/2606 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 当模型输入参数存在None时,会存在输入数据与GraphModule需要的输入数据不一致的问题。 通过修改GraphModule的输入参数,匹配实际非None的输入。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39890 | 3 个月前 | |
[fix] Add FaultyTensorpipeAgent For TestCase Co-authored-by: pengqi<pengqi33@huawei.com> # message auto-generated for no-merge-commit merge: !36296 merge master_faultytensor into master [fix] Add FaultyTensorpipeAgent For TestCase Created-by: pengqihw Commit-by: pengqi Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> 用例中原生社区使用了FaultyTensorPipeAgent类进行延时注入,NPU 缺少 FaultyTensorPipeAgent,导致无法使用 FAULTY_TENSORPIPE 后端,messages_to_delay / messages_to_fail 配置无效。本次改动为 NPU 实现完整的 FaultyTensorPipeAgent 基础设施。 - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 参考原生社区实现为 NPU 添加 FaultyTensorPipeAgent 实现,使 FAULTY_TENSORPIPE 后端能在 NPU 上用于 RPC 故障注入测试。 ## 修改范围(7 个文件) ### 新增(2 个) faulty_tensorpipe_agent.h — FaultyTensorPipeAgent 类定义 - 继承 NPU TensorPipeAgent,使用 tensorpipe_npu::Pipe / tensorpipe_npu::Error - send() override:根据 messagesToFail_ 配置决定是否注入发送失败 - pipeWrite() override:根据 messagesToDelay_ 配置在发送前注入延迟 faulty_tensorpipe_agent.cpp — 实现 - 构造函数使用 static_cast<TensorPipeRpcBackendOptions>(opts) 将基类部分切片拷贝传递给父类,避免 std::move(opts) 后访问 moved-from 成员的 undefined behavior(原生 PyTorch 存在同样的问题,NPU 实现中一并修复) ### 修改(5 个) init.cpp — Python 绑定 - 注册 FaultyTensorPipeRpcBackendOptions 和 FaultyTensorPipeAgent 到 torch_npu._C._distributed_rpc backend_registry.py — 后端注册 - 新增 _faulty_tensorpipe_construct_rpc_backend_options_handler:创建 FaultyTensorPipeRpcBackendOptions - 新增 _faulty_tensorpipe_init_backend_handler:创建 FaultyTensorPipeAgent 并调用 api._init_rpc_states()。在创建 agent 前调用 _init_device_state() 初始化 NPU 设备(NPU TensorPipeAgent 构造依赖已初始化的 NPU 设备,原生 CUDA 无此需求) - _rpc_backend_registry():注册 FAULTY_TENSORPIPE 后端;import torch.distributed.rpc._testing 并设置 is_available = lambda: False 阻止原生 PyTorch 的 FAULTY_TE- NSORPIPE 重复注册;若原生已提前注册则重建 BackendType Enum 替换为 NPU handler tensorpipe_agent.cpp — Bug 修复 - 添加 #include <fmt/format.h> - 超时错误消息修正:errorMsg = "" → fmt::format(kRpcTimeoutErrorStr, timeoutMetadata.timeout.count())。原生 PyTorch 会格式化为 "RPCErr:1:RPC ran for more than set timeout (500 ms)...",NPU 版本此前传空字符串导致异常消息为 "RPCErr:1:",测试 regex "RPC ran for more than" 无法匹配 tensorpipe_agent.h — 依赖补充 - 添加 using torch::distributed::rpc::kRpcTimeoutErrorStr;,与同文件中 kSecToMsConversion、kUnsetRpcTimeout 的引入方式一致 CMakeLists.txt — 编译配置 - FILE(GLOB ...) 添加 rpc/testing/*.cpp ### 关于 PYTHON_CALL vs SCRIPT_CALL torch_npu.contrib.transfer_to_npu 全局替换 torch.jit.script 为 pass-through 包装器。MultiProcessTestCase 以 multiprocessing.spawn 启动子进程运行测试,父进程中调用 enable_jit_script() 设置的状态不会传递给子进程。子进程中所有 @torch.jit.script 装饰的函数均不编译,RPC 框架因此使用 PYTHON_CALL 消息类型。测试用例需将 messages_to_delay / messages_to_fail 配置为 PYTHON_CALL 来匹配实际的消息类型。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!36296 | 5 个月前 | |
[fix] fix _dynamo lazy loading broken by _npu_attention module import Co-authored-by: yule100<chenyukun11@h-partners.com> # message auto-generated for no-merge-commit merge: !46846 merge cp-fix-master into master [fix] fix _dynamo lazy loading broken by _npu_attention module import Created-by: yule100 Commit-by: yule100 Merged-by: ascend-robot Description: <!--PR描述模板更新日期:20260203 --> # 【合入来源】 - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 https://gitcode.com/Ascend/pytorch/issues/5047 # 【修改方案】 修复 _npu_attention.py 中 _get_strategy_context 在模块加载时触发 _sharding_rules import,破坏 torch_npu 懒加载机制的问题。 将版本兼容逻辑从模块顶层 try/except 改为延迟执行+缓存的 _get_strategy_context_compat() 函数,仅在 CP dispatcher enable 时首次调用,避免模块加载时的 import 副作用。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 功能 test/distributed/tensor/test_context_parallel_attention.py 验证结果见门禁pass test/dynamo/test_compile_trigger.py 验证修改后失败用例pass 精度 不涉及 内存 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46846 | 1 个月前 | |
Revert "Optimize distributed import lazy initialization" Co-authored-by: dinghongzou<zoudinghong3@huawei.com> # message auto-generated for no-merge-commit merge: !41468 merge optimize-import-lazy-loading-master into master Revert "Optimize distributed import lazy initialization" Created-by: Windwindzzz Commit-by: dinghongzou 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能力等内容) 回退懒加载PR # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!41468 | 3 个月前 | |
2.14版本特性跟随 Co-authored-by: qq_45774794<hetiancheng1@huawei.com> # message auto-generated for no-merge-commit merge: !46747 merge community_check into master 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/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 社区演进,继承新接口和方法。本 PR 合并两个 2.14 社区特性跟随项: 社区演进,继承新接口和方法。本 PR 合并两个 2.14 社区特性跟随项: ## 一、pytorch/pytorch#188548:PyProcessGroup 补充 all_gather_single / reduce_scatter_single override(零适配,补测试锁定) PyTorch 2.14(pytorch/pytorch#188548,对应 issue pytorch/pytorch#188542)为PyProcessGroup(pybind11 trampoline)补充 all_gather_single、reduce_scatter_single两个 C++ override。修复前,纯 Python 自定义 ProcessGroup(继承 torch.distributed.ProcessGroup的,如 Torchcomms)上由 C++内核发起的这些 collective(如 torch.ops._c10d_functional.all_gather_into_tensor_out)会穿透 trampoline 落到基类实现、因无 C++后端,导致getbackend()返回为空 报错;修复后正确路由到 Python override。 torch_npu 适配结论为**零适配**:改动仅在上游 C++ 头文件(PyProcessGroup.hpp),torch_npu 构建时使用所装 torch 的头文件,升级 torch 即自动获得;torch_npu 的 HCCL ProcessGroup 为 C++ 原生实现,不走 trampoline;无 Python API 签名变化。 新增 test/distributed/test_pypg_npu.py,将"零适配"结论固化为回归测试: 1. test_all_gather_single_trampoline_npu(torch>=2.14 版本门控): 注册纯 Python 假 PG 后,在 NPU tensor 上通过torch.ops._c10d_functional.all_gather_into_tensor_out(CompositeExplicitAutograd 设备无关 op,必然走 group->all_gather_single 虚函数)重放与上游测试完全相同的调用链,断言调用路由到 Python override(指纹登记)且结果正确,验证上游修复在 torch_npu 环境生效。torch<2.14 无此桥,用例按版本跳过。 2. test_reduce_scatter_single_npu(全版本): Python 同名方法直接调用的 sanity 检查(不经 trampoline),验证假实现本身正确。 ## 二、pytorch/pytorch#189353:object collectives 支持 weights_only(适配 + 补测试) PyTorch 2.14(pytorch/pytorch#189353)为 object collectives(all_gather_object、gather_object、send_object_list、recv_object_list、broadcast_object_list、scatter_object_list)新增weights_only 参数(默认 False 向后兼容;True 时序列化走 torch.save / 反序列化走torch.load(weights_only=True) 安全模式)。 torch_npu 同步适配(当前 master 需同时兼容 torch 2.13 / 2.14,按torch_npu._compat 惯例做版本门控,以 CURRENT_VERSION >= (2, 14) 判定): 1. torch_npu/distributed/distributed_c10d.py: _gather_object(被 alias 为 dist.gather_object,是 torch_npu 唯一自定义实现的object collective)与上游签名对齐并适配: - 新增 weights_only=False 参数:torch >= 2.14 透传给上游_object_to_tensor / _tensor_to_object 的第 4 个参数,使 NPU 上dist.gather_object(...,weights_only=True) 可用;torch < 2.14 上游这两个函数无第 4 个参数,走原 3 参调用;显式传 weights_only=True 时直接raise RuntimeError,绝不静默降级到非安全的 pickle 反序列化路径; - 补充上游 pytorch#140827(RFC 0042)自 torch 2.6 起已有的 group_dst 参数(PTA 重写自 2024-12 引入后长期未同步):dst 为全局进程组视角、group_dst为 group 内视角,两者互斥(同时给出 raise ValueError);入口处将 group_dst规范化为全局 rank(get_global_rank),适配 PTA _gather 的全局视角约定;dst 默认值由 0 改为 None(两者均 None 时等价默认 dst=0,行为不变); - 修复子组 rootRank 转换(实测必现 bug):在引入 group_dst 参数后存在的隐性问题:PTA _gather 的 HCCL use_compatible_impl=true的 分支原将全局 dst 原样填入 opts.rootRank 直传ProcessGroupHCCL::gather(C++ assertRootRank 按**组内视角**校验 root ∈[0, size_))。HCCL用的是组内编号(从0开始),而此时传入的是全局编号(不一定从0开始)。在以往的默认组下全局等于组内侥幸正确,如果遇到子组不是从0开始的必崩,比如new_group([2,3])时,传入全局编号2将会导致HCCL找不到对应编号报错。添加opts.rootRank = get_group_rank(group, dst)保证传入HCCL的是组内编号。 其余 5 个 collectives 直接使用上游实现,升级后自动获得该能力,无需改动。 2. test/distributed/test_c10d_object_collectives.py: - 模块级新增 _WEIGHTS_ONLY_PARAMS = [True, False] if CURRENT_VERSION >= (2, 14) else [False]:torch 2.14 生成 True/False 两个变体,torch 2.13 只生成 False 变体; - 3 个现有用例(all_gather_object / broadcast_object_list / scatter_object_list)增加 @parametrize("weights_only", _WEIGHTS_ONLY_PARAMS) 覆盖,调用处按版本分支:2.14 透传 weights_only kwarg,2.13 完全不传(上游 2.13 签名无此参数,即使 False 变体传该 kwarg 也会 TypeError); - 新增 test_gather_object,覆盖 torch_npu 自定义的 _gather_object 实现(调用处无需版本分支:_gather_object 为 torch_npu 自身实现,签名已含该参数,2.13 上传 weights_only=False 走老路径); - 新增 test_gather_object_weights_only_rejects_unsafe_object:验证 PTA 自己的_gather_object 在 weights_only=True 下同样拒绝不安全对象。gather_object 仅dst rank 反序列化、仅 dst rank 抛异常,故用例采用各 rank 自行捕获、collective 结束后再断言的写法,避免 assertRaises 导致非 dst rank 失败或 barrier 死锁。加 @unittest.skipIf(CURRENT_VERSION < (2, 14)) 门控; - 新增 test_gather_object_group_dst(parametrize weights_only):默认组下group_dst=0 与 dst=0 等价; - 新增 test_gather_object_subgroup:子组 [2,3] 上 group_dst=0(组内视角的全局 rank 2),rank2 断言收 [2, 3],回归锁定子组 rootRank 转换修复;用例内显式 use_compatible_impl(True) 强制走真实 HCCL gather 路径(不开则走 allgather 替代路径,不涉及 rootRank,测不到该修复); - 新增 test_gather_object_dst_and_group_dst_conflict:dst 与 group_dst 同时给出,应在通信前于所有 rank 抛 ValueError; - 新增 test_weights_only_rejects_unsafe_object,验证 weights_only=True 拒绝不安全对象,加 @unittest.skipIf(CURRENT_VERSION < (2, 14)) 门控; - 修复测试骨架 with_comms 包装器未透传 *args, **kwargs 的问题(支持带参测试方法)。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 涉及:dist.gather_object 新增可选参数 weights_only(默认 False,向后兼容,#189353)和 group_dst(默认 None,与 dst 互斥,对齐上游 2.6+ 签名);dst 默认值由 0改为 None(语义等价)。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 一、#188548: 社区新增测试用例测试结果:  PTA新增测试用例测试结果: torch2.13+torch_npu环境运行 test_pypg_npu.py,2 个用例全部通过(新增的测试用例2.13未涉及)  torch 2.14 + torch_npu 环境运行 test_pypg_npu.py,2 个用例全部通过  二、#189353: 社区修改后的测试用例:   PTA修改后的测试用例: torch2.13+torchnpu下运行 test_c10d_object_collectives.py,全量7 个用例通过(每个用例默认weights_only是false,新增的测试用例2.13未涉及)  torch2.14+torchnpu下运行 test_c10d_object_collectives.py,全量14个用例通过:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46747 | 30 天前 | |
| 1 年前 | ||
[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 | 5 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 5 个月前 | ||
| 3 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 30 天前 | ||
| 1 年前 | ||
| 5 个月前 |