Ascend Extension for PyTorch
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !45813 merge fxrt-src into master feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Created-by: c_34 Commit-by: chenhaozhe 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/4733 - [ ] 重构优化 - [ ] 资料更新 ## 目的 将 fxrt(FX 图运行时)以源码方式合入 torch_npu,随 torch_npu 一起编译打包,用户安装 torch_npu 后即可直接使用,无需单独安装 fxrt。 ### 概述 将 FX 图运行时 fxrt 放入 fxrt/ 目录,随 torch_npu 一起构建,以 torch_npu.fxrt 子包的形式发布,不再单独发包。 diff 主体是 fxrt/ 下的源码。对 torch_npu 已有代码的改动为 19 个文件、约 270 行,其中约 200 行是新增测试。 ### 对 torch_npu 的影响 - import torch_npu 不加载 fxrt,行为不变;fxrt 在 import torch_npu.fxrt 时才加载。 - 导入 fxrt 不改动 inductor,需显式调用 torch_npu.fxrt.register_fx_wrapper() 才会接管。 - C++ 接口唯一改动:导出 npu_logging::Logger。 - --disable_fxrt 可构建不含 fxrt 的 wheel。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) **构建接入**(沿用 torchair 方式) - setup.py:检测到 fxrt/fxrt 时传入 BUILD_FXRT、FXRT_INSTALL_DST、FXRT_TARGET_PYTHON;package_data 增加 fxrt 的 .so。fxrt 暂不提供 C++ 接口,wheel 中不含 fxrt 头文件。 - CMakeLists.txt:在 torch_npu target 之后 add_subdirectory(fxrt/fxrt)。 - ci/build.sh:新增 --disable_fxrt。 fxrt 的依赖(ACL/HCCL stub、nlohmann、DVM)均复用仓库内已有内容,构建时不下载,也不依赖 CANN 安装。fxrt 库的 RPATH 包含 torch_npu/lib,auditwheel 可在 wheel 内解析 libtorch_npu.so 及其依赖。 **日志** - torch_npu/_logging/_internal.py:注册 fxrt 日志别名,TORCH_NPU_LOGS=+fxrt 控制 fxrt 的 C++ 和 Python 日志。 - torch_npu/csrc/logging/Logger.h:Logger 加 TORCH_NPU_API。torch_npu 以 -fvisibility=hidden 编译,fxrt 调用 Logger 成员函数需要导出符号,实现不变。 - TORCH_NPU_LOGS.md:模块表增加 fxrt。 **构建依赖** - nanobind 仅构建时需要(静态链接,运行时不依赖),加入 requirements*-build.txt、.ci/docker/requirements-builder.txt(==2.13.0)、ci/docker 的 Dockerfile 和源码构建指南。 **测试与门禁** - 新增 test/fxrt(7 个用例,fxrt 未构建时跳过):fxrt 后端编译运行;import torch_npu / import torch_npu.fxrt 无副作用;register_fx_wrapper() 注册行为。 - test/npu/test_public_bindings.py:模块名检查跳过 torch_npu.fxrt。fxrt 以顶层包名 fxrt 执行,对象的 __module__ 为 fxrt.*;导入检查不跳过。 - .lintrunner.toml:fxrt C++ 源码纳入 clang-format 检查。 - tools/linter/dictionary.txt:增加 hax`(fxrt 哈希实现中的变量名)。 详见RFC issue # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 当前版本不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 新增demo特性,不涉及历史接口版本变更,demo特性已进行隔离,默认不开启。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 当前作为demo能力,默认不主动使能的情况下,要求不修改任何pytorch_npu已有逻辑和行为。 主要验证: 1. 构建打包安装行为不影响torch-npu的包。 2. 不主动使能情况下,原有torch-npu行为不受fxrt任何影响。 关于新增依赖的缺陷扫描,主要新增一个nanobind作为构建过程中的python依赖,扫描结果如下,引入依赖版本无安全缺陷报告:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45813 | 1 个月前 | |
update_dockerfile_torch Co-authored-by: SCh-zx<1325467101@qq.com> # message auto-generated for no-merge-commit merge: !44280 merge master into master update_dockerfile_torch Created-by: SCh_zx Commit-by: SCh-zx 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能力等内容) 已有正式torch2.13.0与正式cann9.1.0,更新相关dockerfile配置 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44280 | 2 个月前 | |
代码化适配拆分inductor任务&去除多余任务 Co-authored-by: wujinyuan1<wujinyuan1@huawei.com> # message auto-generated for no-merge-commit merge: !47954 merge master into master 代码化适配拆分inductor任务&去除多余任务 Created-by: wujinyuan1 Commit-by: wujinyuan1 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] issue/工单 https://gitcode.com/Ascend/pytorch/issues/5428 # 【修改方案】 拆分inductor torch2.13分支测试用例为4个并行任务,并去除多余不用跑的任务 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已验证 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47954 | 13 天前 | |
ci: add the precise-test PR trigger wrapper Co-authored-by: thickhair<zp2165064878@163.com> # message auto-generated for no-merge-commit merge: !46910 merge ci-precise-trigger into master ci: add the precise-test PR trigger wrapper 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/5014 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 添加精准流水线触发 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 不影响torch_npu # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46910 | 30 天前 | |
[bugfix][torchbench] Fix dictionary inputs being passed as positional arguments Co-authored-by: taochong<2636757099@qq.com> # message auto-generated for no-merge-commit merge: !47249 merge fix/torchbench-dict-inputs into master [bugfix][torchbench] Fix dictionary inputs being passed as positional arguments Created-by: taochong Commit-by: taochong Merged-by: ascend-robot Description: ## What does this PR do? This PR fixes dictionary-input dispatch in the TorchBench forward model-dispatch path for official-framework models. - When inputs is a dictionary, TorchBenchmarkRunner.forward_pass now invokes the model with mod(**inputs). - Tuple/list inputs continue to use the existing mod(*inputs) behavior. - The change is limited to the forward model-dispatch call site; other benchmark paths remain unchanged. ## Observed Moondream symptom The official TorchBench Moondream benchmark previously failed when example_inputs was a dictionary. The runner called mod(*inputs), so Python expanded dictionary keys as positional arguments instead of passing the associated tensors as keyword arguments. The observed failure was: text embedding(): argument 'indices' must be Tensor, not str This is a benchmark input-dispatch issue, not a Moondream model or NPU operator issue. ## Root cause Dictionary inputs require keyword expansion (mod(**inputs)), while tuple/list inputs require positional expansion (mod(*inputs)). The previous forward path assumed all inputs were positional collections. ## Performance validation | Metric | Value | Notes | |---|---:|---| | Eager step time | **125.35 ms/step** | Official TorchBench, FP32, batch size 4, steps 16-40 average | | Graph-mode step time | **106.82 ms/step** | Inductor + Triton Experimental NPU backend, same measurement scope | | Same-run speedup | **1.17x** | Eager divided by graph-mode step time | ## Accuracy validation | Item | Value | |---|---| | Verdict | **pass_accuracy** | ## Does this PR introduce any user-facing change? No. This is a TorchBench input-dispatch compatibility fix. Existing positional-input models retain their previous behavior, and the backward benchmark path is unchanged. ## Validation results - Applied the patch cleanly. - git diff --check: passed. - Python syntax compilation passed for benchmarks/torchbench/torchbench.py. - The official Moondream workflow completed with pass_accuracy. - GitCode pre-push hooks passed. - Full benchmark matrix validation was not run in this environment. See merge request: Ascend/pytorch!47249 | 16 天前 | |
fxrt: register the test case, fix and clean some arch Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !47686 merge fxrt-ci-test-selection into master fxrt: register the test case, fix and clean some arch Created-by: c_34 Commit-by: chenhaozhe Merged-by: ascend-robot Description: # 【合入来源】 - [x] 重构优化 https://gitcode.com/Ascend/pytorch/issues/5278 对应 fxrt 架构清理 tracking issue 的 P0 阶段(正确性与对外接口面)。两项 P0 有意不含: - **P0-5**(CPU 平台符号算子与张量算子同名冲突)动作待定,需随 P1-2 的声明式算子表一并定性; - **P0-4**(跨内存池的死接口)目前无人调用,不引入中间态,留待与资源池整合一并修改。 # 【修改方案】 1. **把 fxrt 用例接入门禁**。改 fxrt/ 下的文件此前只会选中 test/npu 核心用例集,test/fxrt 从不被 PR 选中,用例只在手动传 --all 时才跑 —— 构建侧一直带着 fxrt,看起来「CI 覆盖了」,实际是选取侧从未把用例挑出来。新增 ci/access_control/strategy/fxrt.py,把顶层 fxrt/ 的改动映射到 test/fxrt。没有扩展 DirectoryMappingStrategy,因为它只处理 torch_npu/ 下的路径,且 get_module_name() 取 parts[1],对 fxrt/CMakeLists.txt 这类路径命不中。用 glob 而非写死文件名,后续在 test/fxrt/ 加用例无需再改这里。 2. **logger.h 的 vector 流输出收进 fxrt::common** —— 本 PR 唯一影响 fxrt 之外的改动。它原先定义在**全局命名空间**,被 40 个 TU include,而 fxrt 与 torch_npu 链入同一进程,于是进程内任何地方对 std::vector 做流式输出都可能让这个重载参与重载决议。移入命名空间后放在 LogStream 之前,LogStream 同在该命名空间、靠普通查找即可找到,因此 RT_GLOG/RT_VLOG 继续接受 vector,无需改任何调用点。同时把 std::to_string(vec[i]) 改为 os << vec[i],解除「T 必须是算术类型」的隐式限制 —— std::to_string 没有 std::string 重载,旧实现对 std::vector<std::string> 直接实例化失败。 3. **删除 depend / load / update_state 三个不可达算子**。它们是上游 functional IR 的副作用排序原语,FX 没有对应概念,无下降路径、无 kernel 实现,图里不可能出现这类节点。其中 depend 与 update_state 仍在 op_support 白名单里,使 CheckOpSupport 对它们返回 kOk 而运行期无 kernel,把错误推迟到 CreateOperator 且错误信息与真实原因无关。删 ops.list 条目会一并带走 Op 枚举值,故运行时派发表中的对应项同步删除:runtime/utils/utils.cpp 的 opsOutputFromInputIndex 三条与 dummyOpsSet 的 Op_depend,utils.h 的 IsSkipRecordRefCount 收敛为只判 Op_End(语义等价,因为那两类节点不可能存在)。 4. **清掉上游工程名残留,DA_API 合入 FXRT_EXPORT**。两个宏在 Linux 下展开完全相同(均为 __attribute__((visibility("default")))),DA_API 的 51 处用法改为 FXRT_EXPORT。**两个宏的 Windows 分支均保留**,以维持头文件的可移植性。view_utils.h 因宏变长导致两处声明超列宽,用仓库 .clang-format 重排。 建议审阅顺序即上列顺序:1 独立;2 影响面最大,先看;3、4 是收口动作,彼此独立。 # 【资料变更】 不涉及。 需要说明的是 DART_KERNEL_LIB_PATH 这个环境变量在 fxrt/README.md 与 README_CN.md 的环境变量表中**原本就未收录**,本 PR 未补。若认为它应当对外可见,可另起一个资料补充。 # 【接口变更】 涉及,共四项,均在 fxrt 内部或尚无使用者: | 接口 | 变更 | 兼容处理 | | --- | --- | --- | | 环境变量 DART_KERNEL_LIB_PATH | 改名 FXRT_KERNEL_LIB_PATH | **旧名保留一个版本**,命中时打 WARNING 后照常生效 | | 注册宏 DART_REGISTER_KERNEL_LIB | 改名 FXRT_REGISTER_KERNEL_LIB | 直接改,无兼容别名 —— 已核实仓内外零使用者 | | 导出宏 DA_API | 删除,并入 FXRT_EXPORT | Linux 下展开相同,无影响;Windows 下见下方说明 | | Python _fxrt_ir.Op 枚举 | 少 depend / load / update_state 三个值 | 无需兼容,已核实无任何使用者 | # 【功能验证】 Ascend 910B3 实测。 **构建与门禁** | 项 | 结果 | | --- | --- | | ninja install_fxrt 增量构建 | EXIT=0,零 error、零 undefined reference | | 全部 239 个 fxrt TU -fsyntax-only(取 compile_commands.json 的真实编译参数) | 0 error | | test/fxrt | 7 passed | | lintrunner(按 CI 命令,全部改动文件) | ok No lint issues | **用例选取(改动 1)** —— 直接驱动 TestMgr.analyze() 与 estimate_core_select_tasks,四个场景: | 场景 | 选中 | core 任务 | select 任务 | fxrt 用例 | | --- | --- | --- | --- | --- | | fxrt PR | 106 | 1 | **1** | test_fxrt_basic.py、test_fxrt_register_fx_wrapper.py | | 非 fxrt PR(torch_npu/utils/_dynamo.py) | 105 | 1 | 1 | 无(行为未变) | | 仅改测试文件 | 1 | 0 | 1 | test_fxrt_basic.py | | 仅改文档 | 0 | 0 | 0 | 无 | 改前 fxrt PR 的 select_tasks 为 0,UT_select_part_* 全部跳过;改后为 1,用例在该任务中执行。不需要改动任何流水线 YAML。 **logger(改动 2)** —— 写了针对性 C++ 用例,四项断言全过:vector<int> 格式未变({1, 2, 3})、vector<std::string> 新增可用({a, b})、LogStream 仍接受 vector({7, 8})、static_assert 断言全局命名空间不再可见该重载。并反向验证该用例有效:同一份代码对 master 的 logger.h 编译,两条 static_assert 如预期触发,vector<std::string> 如预期报 no matching function for call to 'to_string'。 **算子删除(改动 3)** —— NPU 实跑:Python Op 枚举中三个算子已消失(剩 159 个),make_tuple/tuple_getitem/return/view/autofuse_call/custom_call 等完好,图正常构建执行、结果与 eager allclose。另按五个维度全树扫描确认零残留引用(枚举形式 ops::Op_*、算子名字符串、Python 侧、其他算子表、README);find 确认全树只有 ops.list 一张算子表。 **宏与环境变量(改动 4)** —— 用预处理器核对 FXRT_EXPORT 三个分支的展开,与 master 逐一一致: | 条件 | 展开 | 与 master 对比 | | --- | --- | --- | | Linux | __attribute__((visibility("default"))) | identical | | _WIN32 + HARDWARE_DLL | __declspec(dllexport) | identical | | _WIN32 无 HARDWARE_DLL | __declspec(dllimport) | identical | libfxrt.so 导出符号集改动前后 diff 为空(30 个,一致)。环境变量双向实测:FXRT_KERNEL_LIB_PATH 直接生效且无告警;DART_KERNEL_LIB_PATH 打出 DART_KERNEL_LIB_PATH is deprecated, use FXRT_KERNEL_LIB_PATH instead. 后照常加载。 # 【CheckList】 - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR 标题正确使用类型标签,如:feat、fix、refactor、docs、test 等 - [ ] PR 持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47686 | 16 天前 | |
[Feature]support abi configuration for libtorch_npu. | 3 年前 | |
docs: update Developer Community link in devel OVERVIEW.md Co-authored-by: mhy<mahongyu7@huawei.com> # message auto-generated for no-merge-commit merge: !47854 merge docs-fix into master docs: update Developer Community link in devel OVERVIEW.md Created-by: m0_64341872 Commit-by: mhy Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 将英文版资料中的开发者链接更换为英文版链接 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 链接更改 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47854 | 13 天前 | |
cherry-pick-mr-47900-1791969620505-auto Co-authored-by: m0_68000167<wangzhiyuan86@h-partners.com> # message auto-generated for no-merge-commit merge: !47902 merge cherry-pick-mr-47900-1791969620505-auto into master cherry-pick-mr-47900-1791969620505-auto Created-by: wzyly Commit-by: m0_68000167 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单https://gitcode.com/Ascend/op-plugin/issues/320 - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 产品打标签 # 【资料变更】 涉及 # 【接口变更】 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47902 | 13 天前 | |
docs: 修复文档 markdownlint 扫描问题 Co-authored-by: Xinrui Chen<chenxinrui11@huawei.com> # message auto-generated for no-merge-commit merge: !45683 merge codex/fix-markdownlint-docs into master docs: 修复文档 markdownlint 扫描问题 Created-by: chenrayray Commit-by: Xinrui Chen Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单:#4529 - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 1. 调整文档标题层级及标题前后的空行。 2. 为围栏代码块补充语言标识,并补齐代码块前后的空行。 3. 修复列表间距、标题末尾标点、多余空行及文件末尾换行问题。 4. 本次仅修改 Markdown 排版,不改变文档语义。 # 【资料变更】 涉及资料变更,修改以下文档: - test/README.md - tools/flight_recorder/flight_recorder.md - examples/libtorch_hccl/README_HCCL.md - torch_npu/csrc/libs/README.md - tools/linter/adapters/README.md # 【接口变更】 不涉及。 # 【功能验证】 1. 执行 git diff --check,检查通过。 2. 文档门禁中的 markdownlint、链接有效性、资源存在性及标签闭合检查均已通过。 3. 本次为纯文档格式修复,不涉及 UT 用例变更。 # 【CheckList】 - [x] 代码注释完备,正确记录错误日志(不涉及代码变更) - [x] 代码实现进行了返回值、空指针等校验(不涉及代码变更) - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45683 | 1 个月前 | |
| 1 年前 | ||
fxrt: version the IR export contract and so could coperate with fx_converter Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !47883 merge fxrt-converter-contract into master fxrt: version the IR export contract and so could coperate with fx_converter Created-by: c_34 Commit-by: chenhaozhe Merged-by: ascend-robot Description: # 【合入来源】 - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 https://gitcode.com/Ascend/pytorch/issues/5278 - [ ] 资料更新 无社区 issue 关联。 # 【修改方案】 标准化 fxrt 的 IR 导出,使树外的 fx_converter 能与 torch_npu 中的 fxrt 协同:fxrt 负责 FX → IR 建图,converter 接过这份 IR 继续 lowering 成 GE ExecuteGraph,交由 ModelV2 执行器运行。 converter 无法随 fxrt 一起 in-tree:它需要公开 CANN 不含的 GE 内部头,且 GE host 库以 _GLIBCXX_USE_CXX11_ABI=0 构建,而 fxrt / torch / torch_npu 是 ABI=1,两侧不共享任何 C++ 类型。因此当前临时方式是走序列化的 IR dict 对接,本 PR 把这份 dict 标准化: 1. 新增 ir_graph_export_fields.inc 作为权威键表,与树外消费者共享同一份源文件(X-macro 写法,idiom 同 ops/op_def/ops.list),字段两侧错位从此不可能发生。 2. ir_graph_export.{h,cpp} 补齐 4 个此前缺失但消费者必需的键:stride、 storage_shape、storage_offset、sym_list。 3. pybind_ir.cpp 所有 dict 键改走生成的常量(改名即编译错误),envelope 增加 schema_version 并暴露 IR_EXPORT_SCHEMA_VERSION,导出时自检键集合。 4. pybind_torch.cpp 新增出向接缝 adopt_external_device_buffers,把 ModelV2 分配的 设备内存接管为 torch tensor。 共 5 个文件,+418/-27。torch_npu 对树外包零反向依赖:不加 entry point、不加软导入, fxrt.__all__ 不变。 # 【资料变更】 不涉及。仅改动代码内注释(ir_graph_export.h 的头注释)。 # 【接口变更】 不涉及用户接口 # 【功能验证】 当前已做的验证: | 场景 | 方法 | 结果 | | --- | --- | --- | | 既有用例无回归 | pytest test/fxrt/(master 原有 2 个文件) | 7 passed | | 键名改名能否拦住 | 把 .inc 里 stride 改名 strides | 编译错误 'stride' is not a member of 'ir_export_keys' | | 跨 ABI dict 握手 | ABI=1 导出器 → Python dict → ABI=0 消费者重建图,同进程、torch 已加载 | 5/5 | | 运行期 schema 拒绝 | 版本不符 / 缺版本 | 均 ValueError | | 端到端 | 910B 单卡,RecSDK ETA 模型,inductor fx_wrapper → 树外 converter | 与 eager 对拍精度通过,AVG 时延 9.94ms | # 【CheckList】 - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47883 | 14 天前 | |
Merge remote-tracking branch 'origin/npu-profiler-manager' into aclprof-backend | 13 天前 | |
Update torchair commit id Co-authored-by: pta-robot<pta_robot@163.com> # message auto-generated for no-merge-commit merge: !47936 merge master into master Update torchair commit id Created-by: pta-robot Commit-by: pta-robot Merged-by: ascend-robot Description: Commited by @pta-robot at 2026-10-14 22:06:20. See merge request: Ascend/pytorch!47936 | 13 天前 | |
Refactor compat impl for strong validation instead of comment Co-authored-by: li_jing_hw<lijing202@huawei.com> # message auto-generated for no-merge-commit merge: !46750 merge master into master Refactor compat impl for strong validation instead of comment Created-by: li_jing_hw Commit-by: li_jing_hw Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 重构优化https://gitcode.com/Ascend/pytorch/issues/4978 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46750 | 19 天前 | |
Merge remote-tracking branch 'origin/npu-profiler-manager' into aclprof-backend | 13 天前 | |
[sync] PR-46827: [fix] 修复 aclnn_extension 门禁下 to_padded_tensor 注册符号缺失 Co-authored-by: yucaopanmu<yangpeng276@h-partners.com> # message auto-generated for no-merge-commit merge: !46840 merge sync-pr46827-fix/nested-to-padded-tensor-to-master into master [sync] PR-46827: [fix] 修复 aclnn_extension 门禁下 to_padded_tensor 注册符号缺失 Created-by: ascend-ds-bot Commit-by: yucaopanmu Merged-by: ascend-robot Description: ### 1. Origin pull request: https://gitcode.com/Ascend/pytorch/merge_requests/46827 ### 2. Original pull request related issue(s): https://gitcode.com/Ascend/pytorch/issues/4861 ### 3. Original pull request related commit(s): | Sha | Datetime | Message | |---|---|---| |[e3d0386c](https://gitcode.com/Ascend/pytorch/commit/e3d0386c635af99224811dabbeaef522150b9659)|2026-09-22 19:07:57 +0800 CST|refactor: 抽取额外实现列表为独立函数并添加条件逻辑<br><br>将原本硬编码在特殊注册配置中的额外实现列表抽取为独立函数 _nestedtensor_extra_impls,新增了对 aclnn 扩展代码生成的判断,仅在非 aclnn 环境下添加 to_padded_tensor 的实现,提升代码可维护性。<br>| |[8e57b0c1](https://gitcode.com/Ascend/pytorch/commit/8e57b0c1b2c6a04f020cd61c5d4db42703da8bc6)|2026-09-22 19:00:43 +0800 CST|style(torchnpugen): 统一gen_backend_stubs.py里的字符串引号风格<br><br>修正了to_padded_tensor注册行的引号混用问题,将双引号外层改为单引号保持代码风格一致<br>| |[c5da100e](https://gitcode.com/Ascend/pytorch/commit/c5da100e21ed3fe56020df42937cb4a7b0092a21)|2026-09-22 18:59:52 +0800 CST|fix: add nested tensor register header for to_padded_tensor<br>| See merge request: Ascend/pytorch!46840 | 1 个月前 | |
[master][Fix] Fix static check errors detected by clang-format Co-authored-by: thickhair<zp2165064878@163.com> # message auto-generated for no-merge-commit merge: !44399 merge clang-format-0812 into master [master][Fix] Fix static check errors detected by clang-format 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/3340 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 修复clang-format错误 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44399 | 2 个月前 | |
Static checking tools and rules are adopted directly from pytorch. Co-authored-by: JingweiHuang<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !32658 merge code-check into master Static checking tools and rules are adopted directly from pytorch. Created-by: huangjingwei Commit-by: JingweiHuang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 本地(工作区+HEAD提交)静态检查执行结果:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32658 | 6 个月前 | |
Static checking tools and rules are adopted directly from pytorch. Co-authored-by: JingweiHuang<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !32658 merge code-check into master Static checking tools and rules are adopted directly from pytorch. Created-by: huangjingwei Commit-by: JingweiHuang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 本地(工作区+HEAD提交)静态检查执行结果:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32658 | 6 个月前 | |
Static checking tools and rules are adopted directly from pytorch. Co-authored-by: JingweiHuang<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !32658 merge code-check into master Static checking tools and rules are adopted directly from pytorch. Created-by: huangjingwei Commit-by: JingweiHuang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 本地(工作区+HEAD提交)静态检查执行结果:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32658 | 6 个月前 | |
fxrt: port upstream runtime changes made since the in-tree integration Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !47662 merge fxrt-port-squash into master fxrt: port upstream runtime changes made since the in-tree integration Created-by: c_34 Commit-by: chenhaozhe Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 https://gitcode.com/Ascend/pytorch/issues/5278 - [ ] 资料更新 同步进行in-tree合入过程中修改的原始仓库内容。 ## 背景 fxrt 整改合入 master 之后,上游(pta 分支)又积累了一批运行时改动。本 PR 把这些改动移植进 in-tree 的 torch_npu.fxrt,使两边重新对齐。 **e64806be** (08-31) 按生成时的 stride 寻址 compiled-kernel 参数 融合后端是针对参数在 trace 时的 stride 生成 kernel 的。记录这些 layout 并在调用前恢复,使期间被重新 layout 的参数仍按 kernel 预期的方式寻址。 → compiled_kernel_adapter.py、fx_backend.py **81a537aa** (09-02) DVM op 通过 pybind 头文件已授予 fxrt::ops::OpDvmCallV2 的 friendship 访问 torch_npu 的 DVM kernel 状态,而不是它从未存在过的公有 accessor;helper 折进 op 类以使 friendship 生效。动态与静态 kernel 合并为一个入口,由 kernel 的 F_DYN 标志区分。附带效果见下方「需要注意」。 → src/ops/ascend/dvm/、dvm_adapter.py **ad4c84cc** (09-02) AutoFuse 新增 autofuse_call op:dlopen AutoFuse codegen 产出的 wrapper stub 并直接 launch,外加生成该 stub 的 Python codegen。下降位置在 DVM 与通用 compiled-kernel 路径之间,由 FXRT_AUTOFUSE_NATIVE=1 门控。算子注册无需登记表,LoadOpLib 按 libops_ascend* 前缀发现。 → src/ops/ascend/autofuse/、autofuse_codegen.py、ops.list **bbf45634** (09-07) custom / torch / python call 的 ref、view 零拷贝 仅重新解释输入 storage 的输出不再拷贝。OpRunner 里通用的 ref 元数据同步会跳过输出 shape 与输入不同的算子,因此 view 类自定义算子自行计算元数据;AclnnCustomViewOperator 是它们的新基类,经 custom op API 暴露。 → op_custom_call、op_torch_call、op_python_call、aclnn_custom_view_operator.h、data_convert **0ae75226** (09-12) FXRT 自定义集合通信 用 arg-mapping hook 把 vLLM 四参数的 all_gather ABI 适配到 FXRT 原生三参数 HCCL ABI;从 FX 图收集通信信息时,把 vLLM 的逻辑 group 名解析为对应的 torch device ProcessGroup。 → fx_backend.py、utils.py **c7e3a2e0** (09-12) FX 操作数分类,自定义调用加固 一个 FX 参数能否走标量算子 ABI,改由 FXRT 运行时实际可表示的值决定,而不是看 node target —— item 节点不再仅凭名字就被当成标量。自定义调用侧在转换前校验操作数种类,并报出出错的那一个,而不是在转换深处失败。 → fx_backend.py、symbolic_shape.py、op_torch_call、data_convert **37fcc1bb** (09-22) 修复多输出 ref 算子的输出数据校验 ref alias 输出与输入共享 storage,且两侧都不持有 deleter,清掉共享的 data pointer 会让第一个之后的每个输出都校验失败。改为读取 storage 地址而不取走它,仅在持有所有权的路径上移出 data pointer。影响 split、unbind、chunk。 → op_torch_call.cpp **6051b291** (09-22) Tensor[] 自定义调用输出保留 ref alias 返回 Tensor[] 的自定义调用丢失了单 Tensor 输出能保留的 ref aliasing,导致列表里每个元素各自声明 storage。让 alias 穿过列表输出,并把 c7e3a2e0 引入的操作数预校验换成转换点上的检查。 → fx_backend.py、op_torch_call、data_convert ## 内容 建议按三组顺序审阅: 1. **compiled-kernel 路径**(compiled_kernel_adapter.py、fx_backend.py、autofuse_codegen.py、src/ops/ascend/autofuse/)——按 inductor 生成的 stride 寻址 kernel 参数而不再假定连续;FX 操作数分类,标量不再走张量路径;新增 OP(autofuse_call) 与 FXRT_AUTOFUSE_NATIVE 门控的原生 AutoFuse 下降。vLLM 集合通信 hook 在同一路径上,自成一体。 2. **零拷贝 view**(op_custom_call、op_torch_call、op_python_call、aclnn_custom_view_operator.h)——改为交出 ref 输出而非拷贝,data_convert 删掉只为喂拷贝而存在的转换。多输出校验修复与 Tensor[] alias 修复是对同一段代码的纠正。 3. **DVM v2**(src/ops/ascend/dvm/)——CMake 探测改为匹配 torch_npu/csrc/inductor/dvm/pybind_api.h 实际携带的 friend 声明,并通过该 friendship 访问 kernel 私有成员。 ## 需要 reviewer 注意 **两处对上游的有意偏离,均在 CMake**:autofuse 的 CMakeLists.txt 采用 in-tree 同级算子模块的写法,而非上游的 glob + 自带 install() 形式(上游还链接了 in-tree 不存在的 fxrt::securec);ops_ascend_autofuse 加入 FXRT_OP_LIBS 与 install_fxrt 拷贝列表,使 wheel 携带该库。 **一处告警屏蔽**: 为了处理autofuse的自动生成算子函数签名,实现中使用了一个长f-string字符串进行代码生成,这个长字符串触发了超长行的告警,参考之前cpp_wapper中类似情况的处理方式增加的.flak8的告警屏蔽。 ## 验证 Ascend 910B3 实测: - test/fxrt 7 项全部通过 - libops_ascend_autofuse.so / libops_ascend_dvm_v2.so 均构建产出、随 wheel 安装,运行时经 /proc/self/maps 确认已 dlopen - ref/view 定向用例 10/10 与 eager 一致:split(均分/不均分)、unbind、chunk、split->add、broadcast_tensors、select/permute、flatten/reshape、item() 标量、标量乘 - AutoFuse 门控双向验证:默认关闭与 FXRT_AUTOFUSE_NATIVE=1 结果均正确 - eta 推荐模型(inductor + fx_wrapper -> fxrt 运行时,batch 128)精度校验通过,QPS 8929;IR dump 显示 146 个 compiled_kernel_mutation,即本 PR 的 stride 与操作数分类改动在真实负载下被覆盖 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47662 | 18 天前 | |
consolidate nightly scripts into generic counterparts Co-authored-by: y30037164<yuaiming@h-partners.com> # message auto-generated for no-merge-commit merge: !46618 merge yam/master into master consolidate nightly scripts into generic counterparts Created-by: y30037164 Commit-by: yuaiming;y30037164 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/5012 - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46618 | 1 个月前 | |
feat(_inductor): Support DVM for the master branch Co-authored-by: huangchengnuo<huangchengnuo1@huawei.com> # message auto-generated for no-merge-commit merge: !39780 merge support-dvm-master-20260701 into master feat(_inductor): Support DVM for the master branch Created-by: SorryNaCN Commit-by: huangchengnuo Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [x] 重构优化 - [ ] 资料更新 关联社区 issue:https://gitcode.com/Ascend/pytorch/issues/1962 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 本 PR 将 v2.10.0 分支中已验证的 DVM 相关能力迁移到 master,为 inductor 增加 DVM 后端和融合支持。 1. 引入 DVM 第三方依赖并接入构建,仅在 .gitmodules 中新增 DVM submodule,保留目标分支已有 submodule 配置。 2. 新增/迁移 DVM inductor 代码,包括 mlir_fusion、graph_fusion、DVM op emitter、decomp、codegen、工具函数和相关测试。 3. 新增 DVM C++ pybind 接口,并在 _C 初始化阶段注册 torch_npu._C.dvm 相关绑定。 4. 调整 torch_npu._inductor 后端加载逻辑,支持 npu_backend=dvm;DVM 后端复用 MLIR patch 与 codegen backend 注册流程。 5. 调整 dynamo/inductor wrapper,使 mlir 与 dvm 路径通过 NPU backend scope 生效,覆盖初始化与调用阶段。 6. 补充 DVM 相关 UT 与 public bindings 清单,覆盖后端加载、kernel、graph fusion、mlir fusion 等场景。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 涉及 torch_npu._inductor 的后端选择能力扩展: 1. 支持通过 torch._inductor.config.npu_backend = "dvm" 选择 DVM 后端。 2. 支持通过 torch.compile(..., options={"npu_backend": "dvm"}) 选择 DVM 后端。 3. 支持通过环境变量 TORCHINDUCTOR_NPU_BACKEND=dvm 选择 DVM 后端。 4. 新增 torch_npu._C.dvm C++ pybind 绑定,供 DVM Python 侧构图与运行调用。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已完成本地静态验证: 1. git diff --check origin/master 2. 对相对 origin/master 变更的 Python 文件执行 python -m py_compile 3. 已在 PR 评论中发送 compile 触发编译流水线 新增/迁移测试覆盖: 1. DVM kernel 基础能力测试 2. DVM graph fusion 测试 3. DVM mlir fusion 测试 4. DVM public bindings 清单校验 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!39780 | 3 个月前 | |
feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !45813 merge fxrt-src into master feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Created-by: c_34 Commit-by: chenhaozhe 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/4733 - [ ] 重构优化 - [ ] 资料更新 ## 目的 将 fxrt(FX 图运行时)以源码方式合入 torch_npu,随 torch_npu 一起编译打包,用户安装 torch_npu 后即可直接使用,无需单独安装 fxrt。 ### 概述 将 FX 图运行时 fxrt 放入 fxrt/ 目录,随 torch_npu 一起构建,以 torch_npu.fxrt 子包的形式发布,不再单独发包。 diff 主体是 fxrt/ 下的源码。对 torch_npu 已有代码的改动为 19 个文件、约 270 行,其中约 200 行是新增测试。 ### 对 torch_npu 的影响 - import torch_npu 不加载 fxrt,行为不变;fxrt 在 import torch_npu.fxrt 时才加载。 - 导入 fxrt 不改动 inductor,需显式调用 torch_npu.fxrt.register_fx_wrapper() 才会接管。 - C++ 接口唯一改动:导出 npu_logging::Logger。 - --disable_fxrt 可构建不含 fxrt 的 wheel。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) **构建接入**(沿用 torchair 方式) - setup.py:检测到 fxrt/fxrt 时传入 BUILD_FXRT、FXRT_INSTALL_DST、FXRT_TARGET_PYTHON;package_data 增加 fxrt 的 .so。fxrt 暂不提供 C++ 接口,wheel 中不含 fxrt 头文件。 - CMakeLists.txt:在 torch_npu target 之后 add_subdirectory(fxrt/fxrt)。 - ci/build.sh:新增 --disable_fxrt。 fxrt 的依赖(ACL/HCCL stub、nlohmann、DVM)均复用仓库内已有内容,构建时不下载,也不依赖 CANN 安装。fxrt 库的 RPATH 包含 torch_npu/lib,auditwheel 可在 wheel 内解析 libtorch_npu.so 及其依赖。 **日志** - torch_npu/_logging/_internal.py:注册 fxrt 日志别名,TORCH_NPU_LOGS=+fxrt 控制 fxrt 的 C++ 和 Python 日志。 - torch_npu/csrc/logging/Logger.h:Logger 加 TORCH_NPU_API。torch_npu 以 -fvisibility=hidden 编译,fxrt 调用 Logger 成员函数需要导出符号,实现不变。 - TORCH_NPU_LOGS.md:模块表增加 fxrt。 **构建依赖** - nanobind 仅构建时需要(静态链接,运行时不依赖),加入 requirements*-build.txt、.ci/docker/requirements-builder.txt(==2.13.0)、ci/docker 的 Dockerfile 和源码构建指南。 **测试与门禁** - 新增 test/fxrt(7 个用例,fxrt 未构建时跳过):fxrt 后端编译运行;import torch_npu / import torch_npu.fxrt 无副作用;register_fx_wrapper() 注册行为。 - test/npu/test_public_bindings.py:模块名检查跳过 torch_npu.fxrt。fxrt 以顶层包名 fxrt 执行,对象的 __module__ 为 fxrt.*;导入检查不跳过。 - .lintrunner.toml:fxrt C++ 源码纳入 clang-format 检查。 - tools/linter/dictionary.txt:增加 hax`(fxrt 哈希实现中的变量名)。 详见RFC issue # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 当前版本不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 新增demo特性,不涉及历史接口版本变更,demo特性已进行隔离,默认不开启。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 当前作为demo能力,默认不主动使能的情况下,要求不修改任何pytorch_npu已有逻辑和行为。 主要验证: 1. 构建打包安装行为不影响torch-npu的包。 2. 不主动使能情况下,原有torch-npu行为不受fxrt任何影响。 关于新增依赖的缺陷扫描,主要新增一个nanobind作为构建过程中的python依赖,扫描结果如下,引入依赖版本无安全缺陷报告:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45813 | 1 个月前 | |
refactor: simplify options manager mode validation Co-authored-by: chujinjin<chujinjin52@huawei.com> # message auto-generated for no-merge-commit merge: !46410 merge refactor/options-manager-mode-validation into master refactor: simplify options manager mode validation Created-by: chujinjin Commit-by: chujinjin Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 - 1. 将 OptionsManager.h 中用于校验环境变量取值的模式映射移至 OptionsManager.cpp 的匿名命名空间,并让相关校验函数直接使用这些映射。原先的映射获取函数定义在头文件中,下游项目即使没有调用它们,只要包含该头文件就可能产生 -Wunused-function 警告。迁移后,头文件不再引入这些未使用的函数定义。此项修改对应 issue #5054 (https://gitcode.com/Ascend/pytorch/issues/5054)。 - 2. 保留各环境变量原有的默认值、合法取值和异常处理逻辑。此次调整只改变模式映射的存放位置及使用方式,不改变 OptionsManager 对环境变量的校验结果。 - 3. 将原本依赖头文件内容的公开环境变量模式兼容性检查移至 tools/check_public_environments.py。脚本读取 torch_npu_schema.json 和 OptionsManager.cpp,规范化空白字符后检查模式定义是否仍与 schema 一致;同时更新受排版调整影响的 schema记录。 - 4. 在 CMake 中添加兼容性检查目标,并将其设为插件构建的依赖,使构建过程继续执行这项检查。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46410 | 29 天前 | |
docs: 完善版本配套表并说明 TorchNPU 产品与安装包版本命名 Co-authored-by: Xinrui Chen<chenxinrui11@huawei.com> # message auto-generated for no-merge-commit merge: !46026 merge codex/fix-version-compatibility into master docs: 完善版本配套表并说明 TorchNPU 产品与安装包版本命名 Created-by: chenrayray Commit-by: Xinrui Chen Merged-by: ascend-robot Description: # 【合入来源】 - [x] 资料更新 - [x] issue/工单 关联 issue:https://gitcode.com/Ascend/pytorch/issues/4688 # 【修改方案】 中英文版本配套表缺少 26.1.1 的五组配套关系及 PyTorch 2.10.0 对应的 26.0.0 配套行,也缺少产品版本与安装包版本的命名说明。 1. 根据官方发行版说明和发布标签的 version.txt,补充以下 26.1.1 配套关系,CANN 范围均为 9.1.X: | TorchNPU版本 | 安装包版本 | PyTorch版本 | | --- | --- | --- | | 26.1.1 | 2.12.0.post2 | 2.12.0 | | 26.1.1 | 2.11.0.post2 | 2.11.0 | | 26.1.1 | 2.10.0.post6 | 2.10.0 | | 26.1.1 | 2.9.0.post8 | 2.9.0 | | 26.1.1 | 2.7.1.post10 | 2.7.1 | 2. 补回 26.0.0 | 2.10.0 | 2.10.0 | CANN 9.0.0 配套行。 3. 删除 GitCode 分支列,在最左侧增加 TorchNPU 版本列,采用 26.1.0、26.1.1 等产品版本号;说明产品版本独立于 PyTorch 编号,以及安装包 {PyTorch版本}、{PyTorch版本}.postN 的命名规则,并举例。 发布依据:https://gitcode.com/Ascend/pytorch/releases # 【资料变更】 修改仅限 COMPATIBILITY.md 和 COMPATIBILITY.en.md 的 TorchNPU 版本配套表章节,包含命名说明及活跃、历史版本表。 # 【接口变更】 不涉及。 # 【功能验证】 - git diff --check 通过。 - 中英文 68 行配套数据一致;26.1.1 的五组安装包版本已逐一核对官方发布标签。 - 配套表章节之外的内容与原 master 基线一致。 - 最新提交的 CI 结果待确认。 # 【CheckList】 - [x] 文档修改已完成中英文同步。 - [x] 不涉及代码或接口变更。 - [x] 已关联对应 issue。 - [ ] CI 检查通过。 See merge request: Ascend/pytorch!46026 | 1 个月前 | |
docs: 完善版本配套表并说明 TorchNPU 产品与安装包版本命名 Co-authored-by: Xinrui Chen<chenxinrui11@huawei.com> # message auto-generated for no-merge-commit merge: !46026 merge codex/fix-version-compatibility into master docs: 完善版本配套表并说明 TorchNPU 产品与安装包版本命名 Created-by: chenrayray Commit-by: Xinrui Chen Merged-by: ascend-robot Description: # 【合入来源】 - [x] 资料更新 - [x] issue/工单 关联 issue:https://gitcode.com/Ascend/pytorch/issues/4688 # 【修改方案】 中英文版本配套表缺少 26.1.1 的五组配套关系及 PyTorch 2.10.0 对应的 26.0.0 配套行,也缺少产品版本与安装包版本的命名说明。 1. 根据官方发行版说明和发布标签的 version.txt,补充以下 26.1.1 配套关系,CANN 范围均为 9.1.X: | TorchNPU版本 | 安装包版本 | PyTorch版本 | | --- | --- | --- | | 26.1.1 | 2.12.0.post2 | 2.12.0 | | 26.1.1 | 2.11.0.post2 | 2.11.0 | | 26.1.1 | 2.10.0.post6 | 2.10.0 | | 26.1.1 | 2.9.0.post8 | 2.9.0 | | 26.1.1 | 2.7.1.post10 | 2.7.1 | 2. 补回 26.0.0 | 2.10.0 | 2.10.0 | CANN 9.0.0 配套行。 3. 删除 GitCode 分支列,在最左侧增加 TorchNPU 版本列,采用 26.1.0、26.1.1 等产品版本号;说明产品版本独立于 PyTorch 编号,以及安装包 {PyTorch版本}、{PyTorch版本}.postN 的命名规则,并举例。 发布依据:https://gitcode.com/Ascend/pytorch/releases # 【资料变更】 修改仅限 COMPATIBILITY.md 和 COMPATIBILITY.en.md 的 TorchNPU 版本配套表章节,包含命名说明及活跃、历史版本表。 # 【接口变更】 不涉及。 # 【功能验证】 - git diff --check 通过。 - 中英文 68 行配套数据一致;26.1.1 的五组安装包版本已逐一核对官方发布标签。 - 配套表章节之外的内容与原 master 基线一致。 - 最新提交的 CI 结果待确认。 # 【CheckList】 - [x] 文档修改已完成中英文同步。 - [x] 不涉及代码或接口变更。 - [x] 已关联对应 issue。 - [ ] CI 检查通过。 See merge request: Ascend/pytorch!46026 | 1 个月前 | |
【docs】fix community contributing docs Co-authored-by: zyw-hw<zhangyouwen7@huawei.com> # message auto-generated for no-merge-commit merge: !44879 merge fix_contribute_docs into master 【docs】fix community contributing docs Created-by: zyw-hw Commit-by: zyw-hw Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> [#4807](https://gitcode.com/Ascend/pytorch/issues/4807) - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 修改社区贡献文档,将相关内容整理在同一章节,提升文档易用性,解决以下问题: 1、贡献场景格式老旧,和当前的格式存在差异 2、章节介绍逻辑混乱,提交PR等需要反复跳转,未循序渐进 3、缺少SIG等机制的介绍,社区沟通方式不完整 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” > 不涉及功能等资料变更 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” > 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 > 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44879 | 1 个月前 | |
[Doc] CONTRIBUTING 附录A:补充云端代码检查(codecheck_pre-commit)的排查指引 Co-authored-by: gcw_Z7AGg2hf<jinlujia@pku.edu.cn> # message auto-generated for no-merge-commit merge: !47557 merge docs-codecheck-guide into master [Doc] CONTRIBUTING 附录A:补充云端代码检查(codecheck_pre-commit)的排查指引 Created-by: gcw_Z7AGg2hf Commit-by: gcw_Z7AGg2hf Merged-by: ascend-robot Description: ## 变更内容 在附录 A(本地静态检查)末尾新增一节 **"关于流水线中的云端代码检查(codecheck_pre-commit)"**,说明: 1. codecheck_pre-commit 不是本地 pre-commit / lintrunner,而是云端代码检查服务,规则集不随仓库分发、本地无法预检(例:安全规则 G.EDV.04 禁止 subprocess 的 shell=True,严重级,不在 .flake8 / lintrunner 配置中); 2. 失败详情的查看路径:流水线运行页 → codecheck_pre-commit 任务日志 → openlibing_url: 行中的 entryCheckDashCode 链接(需登录); 3. 流水线评论指令(compile / retry [任务名] / stop)与一个已复现两次的坑:推送后立即评论 compile 会绑定过期提交(提示"获取流水线运行 commitId 不存在"、任务长期 QUEUED),须 stop 后等待约一分钟再 compile。 ## 动机 外部贡献者首 PR 极易在 codecheck_pre-commit 上连续受阻且看不到任何失败原因(#1901 即为先例,因无互动被关闭)。本指引来自 !47007 的完整实践:该 PR 曾连续 4 次 codecheck 失败,本地 .flake8/ruff 全绿无法定位,最终通过上述路径找到规则 G.EDV.04 并修复、流水线全绿。补充此节希望让后来的外部贡献者少走这段弯路。 ## 关联 - 实践案例:!47007 - 先例与方向:#1901、#1934(RFC 已指出"开发者无法在本地预知 CI 检查结果",本节是该方向在文档侧的补丁) - 另将提交一个 issue 建议失败评论直接透传问题列表 / entryCheckDashCode 链接(改进根因) See merge request: Ascend/pytorch!47557 | 14 天前 | |
| 2 年前 | ||
Update URL (gitcode) Co-authored-by: dilililiwhy<why.wuhuanyu@huawei.com> # message auto-generated for no-merge-commit merge: merge update_url into master Update URL (gitcode) Created-by: dilililiwhy Commit-by: dilililiwhy 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!24843 | 1 年前 | |
docs: 更新README链接、安装说明、TC组织说明 Co-authored-by: Xinrui Chen<chenxinrui11@huawei.com> # message auto-generated for no-merge-commit merge: !46171 merge codex/readme-links-release-26-1-1 into master docs: 更新README链接、安装说明、TC组织说明 Created-by: chenrayray Commit-by: Xinrui Chen Merged-by: ascend-robot Description: # 【合入来源】 - [x] 资料更新 - [x] issue/工单:https://gitcode.com/Ascend/pytorch/issues/4740 # 【修改方案】 修正中英文 README 中过期的 SIG 和上游 CI 链接,更新安装说明与文档引用。 1. SIG 路径更新为 AscendForPyTorch;CI 徽章指向当前 PR 工作流并支持点击查看运行记录。 2. 安装示例与版本配套表对齐为 TorchNPU/PyTorch 2.12.0、CANN 9.1.0,更新环境脚本路径并补充驱动、固件与 Python 配套提示。 3. 修正徽章替代文本及 DTensor 拼写。支持版本章节保持原文,快速入门恢复官网文档链接。 # 【资料变更】 涉及 README.md、README.zh.md,保持中英文同步。 # 【接口变更】 不涉及。 # 【功能验证】 - git diff --check 通过。 - README 本地链接与导航锚点检查通过。 - 已核实 SIG 目标目录、CI 徽章及安装包可用性。 - 纯文档修改,未执行 NPU 安装及运行测试;最新提交的上游 CI 待完成。 # 【CheckList】 - [x] 代码注释完备,正确记录错误日志(不涉及) - [x] 代码实现进行了返回值、空指针等校验(不涉及) - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常(最新提交待验证) See merge request: Ascend/pytorch!46171 | 1 个月前 | |
docs: 更新README链接、安装说明、TC组织说明 Co-authored-by: Xinrui Chen<chenxinrui11@huawei.com> # message auto-generated for no-merge-commit merge: !46171 merge codex/readme-links-release-26-1-1 into master docs: 更新README链接、安装说明、TC组织说明 Created-by: chenrayray Commit-by: Xinrui Chen Merged-by: ascend-robot Description: # 【合入来源】 - [x] 资料更新 - [x] issue/工单:https://gitcode.com/Ascend/pytorch/issues/4740 # 【修改方案】 修正中英文 README 中过期的 SIG 和上游 CI 链接,更新安装说明与文档引用。 1. SIG 路径更新为 AscendForPyTorch;CI 徽章指向当前 PR 工作流并支持点击查看运行记录。 2. 安装示例与版本配套表对齐为 TorchNPU/PyTorch 2.12.0、CANN 9.1.0,更新环境脚本路径并补充驱动、固件与 Python 配套提示。 3. 修正徽章替代文本及 DTensor 拼写。支持版本章节保持原文,快速入门恢复官网文档链接。 # 【资料变更】 涉及 README.md、README.zh.md,保持中英文同步。 # 【接口变更】 不涉及。 # 【功能验证】 - git diff --check 通过。 - README 本地链接与导航锚点检查通过。 - 已核实 SIG 目标目录、CI 徽章及安装包可用性。 - 纯文档修改,未执行 NPU 安装及运行测试;最新提交的上游 CI 待完成。 # 【CheckList】 - [x] 代码注释完备,正确记录错误日志(不涉及) - [x] 代码实现进行了返回值、空指针等校验(不涉及) - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常(最新提交待验证) See merge request: Ascend/pytorch!46171 | 1 个月前 | |
Release 2.14.0 Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !45390 merge feat/v2.14.0-release into master Release 2.14.0 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] issue/工单 https://gitcode.com/Ascend/pytorch/issues/1923 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 社区演进和版本升级,参考 !40367(Release 2.13.0),进行 2.14 切分支与出包适配,依赖切换至 torch 2.14.0(stable whl/cpu),并预置 2.15 开发线 requirements 轮转。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 涉及:SUPPORT.md / SUPPORT.en.md、SECURITYNOTE.md 版本信息随本 PR 同步更新 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 bash ci/build.sh --python=3.10 --torch=2.14.0 版本校验通过;torch 2.14.0+cpu / torchvision 0.29.0+cpu 已在 whl/cpu stable 通道确认可获取。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45390 | 1 个月前 | |
Release 2.14.0 Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !45390 merge feat/v2.14.0-release into master Release 2.14.0 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] issue/工单 https://gitcode.com/Ascend/pytorch/issues/1923 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 社区演进和版本升级,参考 !40367(Release 2.13.0),进行 2.14 切分支与出包适配,依赖切换至 torch 2.14.0(stable whl/cpu),并预置 2.15 开发线 requirements 轮转。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 涉及:SUPPORT.md / SUPPORT.en.md、SECURITYNOTE.md 版本信息随本 PR 同步更新 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 bash ci/build.sh --python=3.10 --torch=2.14.0 版本校验通过;torch 2.14.0+cpu / torchvision 0.29.0+cpu 已在 whl/cpu stable 通道确认可获取。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45390 | 1 个月前 | |
Release 2.14.0 Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !45390 merge feat/v2.14.0-release into master Release 2.14.0 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] issue/工单 https://gitcode.com/Ascend/pytorch/issues/1923 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 社区演进和版本升级,参考 !40367(Release 2.13.0),进行 2.14 切分支与出包适配,依赖切换至 torch 2.14.0(stable whl/cpu),并预置 2.15 开发线 requirements 轮转。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 涉及:SUPPORT.md / SUPPORT.en.md、SECURITYNOTE.md 版本信息随本 PR 同步更新 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 bash ci/build.sh --python=3.10 --torch=2.14.0 版本校验通过;torch 2.14.0+cpu / torchvision 0.29.0+cpu 已在 whl/cpu stable 通道确认可获取。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45390 | 1 个月前 | |
Release 2.14.0 Co-authored-by: wuyouqi1<wuyouqi1@h-partners.com> # message auto-generated for no-merge-commit merge: !45390 merge feat/v2.14.0-release into master Release 2.14.0 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] issue/工单 https://gitcode.com/Ascend/pytorch/issues/1923 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 社区演进和版本升级,参考 !40367(Release 2.13.0),进行 2.14 切分支与出包适配,依赖切换至 torch 2.14.0(stable whl/cpu),并预置 2.15 开发线 requirements 轮转。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 涉及:SUPPORT.md / SUPPORT.en.md、SECURITYNOTE.md 版本信息随本 PR 同步更新 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 bash ci/build.sh --python=3.10 --torch=2.14.0 版本校验通过;torch 2.14.0+cpu / torchvision 0.29.0+cpu 已在 whl/cpu stable 通道确认可获取。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45390 | 1 个月前 | |
[security] update 'Third_Party_Open_Source_Software_Notice' Co-authored-by: xuyun15<xuyun15@huawei.com> # message auto-generated for no-merge-commit merge: !46848 merge update_master_open_source_software_notice into master [security] update 'Third_Party_Open_Source_Software_Notice' 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/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 更新'Third_Party_Open_Source_Software_Notice' 2.6 -> 2.14 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 NA # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46848 | 1 个月前 | |
Using complete header files instead of stub Co-authored-by: huangyunlong2022<huangyunlong4@h-partners.com> # message auto-generated for no-merge-commit merge: !45706 merge 2.13head into master Using complete header files instead of stub 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能力等内容) 将打包third_party目录下的stub替换为真实的头文件,防止该路径放在-I的前面时由于 #pragma once被截断导致的报错 其中#include_next <acl/acl_rt.h>没有被使用,是因为这种情况下如果-I third_party目录后没有真实头文件也会报错 另外该方法会暴露用户使用#include "third_party/acl/inc/acl/acl_rt.h"时的错误,这种场景就是torch_npu之前修复的cann和torch_npu中acl头文件混合使用的报错,这种深度路径只能找到torch_npu目录下的acl头文件,但是acl头文件里由于存在#include "acl/acl_base_rt.h"这种写法导致只能在-I目录中寻找,可能找到cann中的头文件,如果和torch_npu版本不配套就会报错,这种情况需要用户改脚本成#include <acl/acl_rt.h>这种规范写法,torch_npu中这种写法已修复 同时添加测试用例,模拟用户#include cann和torch_npu真实头文件以及配置-I 中torch_npu,third_party,cann include路径的组合情况,目前只测试编译情况,真实的ABI兼容性暂未进行测试 其中用户#include "third_party/acl/inc/acl/acl_rt.h"这种使用没有被测试,因为这种是我们认为不合理写法,是会报错的, 另外该测试用例使用环境上真实的torch_npu和cann路径,只能覆盖CI上的真实情况,实际还可以使用不同的cann和torch_npu版本进行兼容性配套测试 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45706 | 1 个月前 | |
| 1 年前 | ||
feat(c_shim): version AOTInductor NPU C shim header per torch version Co-authored-by: chz34<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !40590 merge compat/c-shim into master feat(c_shim): version AOTInductor NPU C shim header per torch version Created-by: c_34 Commit-by: chz34 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 https://gitcode.com/Ascend/pytorch/issues/2568 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 根据多个版本分别在不同的目录存储 c_shim_npu.h,构建过程中根据构建命令(实际参考version.txt)选择不同的版本进行校验。 构建中固定生成一份新的c_shim_npu.h文件,存放在原有的位置。 对于开发中的上游最新版本,对应版本目录缺失或者文件缺失,进行软报错,打印提示但不中断构建,用于放行上游的主动改变。 对于已经稳定的上游版本,根据对应目录进行强校验,不一致则拦截,主要控制PTA与op-plugin的内部修改。 详情参考issue内容:https://gitcode.com/Ascend/pytorch/issues/2568 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 针对现有功能的多版本兼容重构,基于现有用例进行看护 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40590 | 3 个月前 | |
Static checking tools and rules are adopted directly from pytorch. Co-authored-by: JingweiHuang<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !32658 merge code-check into master Static checking tools and rules are adopted directly from pytorch. Created-by: huangjingwei Commit-by: JingweiHuang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 本地(工作区+HEAD提交)静态检查执行结果:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32658 | 6 个月前 | |
Static checking tools and rules are adopted directly from pytorch. Co-authored-by: JingweiHuang<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !32658 merge code-check into master Static checking tools and rules are adopted directly from pytorch. Created-by: huangjingwei Commit-by: JingweiHuang Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 本地(工作区+HEAD提交)静态检查执行结果:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!32658 | 6 个月前 | |
[fix]: 修复setuptools包兼容性问题 Co-authored-by: thickhair<zp2165064878@163.com> # message auto-generated for no-merge-commit merge: !47385 merge pyproject_master into master [fix]: 修复setuptools包兼容性问题 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/4371 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 【根因】:pyproject.toml 里的 [project] 块是对齐上游 PyTorch的,参考没有配套的 [tool.setuptools.dynamic] 表导致的。而 setup.py 早已把所有元数据(version、description、long_description、license、classifiers、entry_points、install_requires)显式传给了 setup(),所以这个 dynamic 声明是多余的。 【修复】:删掉了整个 [project] 块(共 15 行),让构建回归纯 setup.py 驱动——这正是本仓库的实际情况,也彻底绕开了 PEP 621 对 version/dynamic 的校验,对任何 setuptools 版本都稳定。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 测试已验证 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!47385 | 28 天前 | |
Fix pyrefly\set_linter\stabel_shim_version_linter error Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35516 merge code_check_fix into master Fix pyrefly\set_linter\stabel_shim_version_linter error 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. pyrefly的检查目录调整, 2. 修复set_linter检查报错。 3. 修复stable_shim_version_linter.py检查的分支。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 pyrefly功能:  set_linter功能:  stable_shim_version功能:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35516 | 5 个月前 | |
feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !45813 merge fxrt-src into master feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Created-by: c_34 Commit-by: chenhaozhe 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/4733 - [ ] 重构优化 - [ ] 资料更新 ## 目的 将 fxrt(FX 图运行时)以源码方式合入 torch_npu,随 torch_npu 一起编译打包,用户安装 torch_npu 后即可直接使用,无需单独安装 fxrt。 ### 概述 将 FX 图运行时 fxrt 放入 fxrt/ 目录,随 torch_npu 一起构建,以 torch_npu.fxrt 子包的形式发布,不再单独发包。 diff 主体是 fxrt/ 下的源码。对 torch_npu 已有代码的改动为 19 个文件、约 270 行,其中约 200 行是新增测试。 ### 对 torch_npu 的影响 - import torch_npu 不加载 fxrt,行为不变;fxrt 在 import torch_npu.fxrt 时才加载。 - 导入 fxrt 不改动 inductor,需显式调用 torch_npu.fxrt.register_fx_wrapper() 才会接管。 - C++ 接口唯一改动:导出 npu_logging::Logger。 - --disable_fxrt 可构建不含 fxrt 的 wheel。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) **构建接入**(沿用 torchair 方式) - setup.py:检测到 fxrt/fxrt 时传入 BUILD_FXRT、FXRT_INSTALL_DST、FXRT_TARGET_PYTHON;package_data 增加 fxrt 的 .so。fxrt 暂不提供 C++ 接口,wheel 中不含 fxrt 头文件。 - CMakeLists.txt:在 torch_npu target 之后 add_subdirectory(fxrt/fxrt)。 - ci/build.sh:新增 --disable_fxrt。 fxrt 的依赖(ACL/HCCL stub、nlohmann、DVM)均复用仓库内已有内容,构建时不下载,也不依赖 CANN 安装。fxrt 库的 RPATH 包含 torch_npu/lib,auditwheel 可在 wheel 内解析 libtorch_npu.so 及其依赖。 **日志** - torch_npu/_logging/_internal.py:注册 fxrt 日志别名,TORCH_NPU_LOGS=+fxrt 控制 fxrt 的 C++ 和 Python 日志。 - torch_npu/csrc/logging/Logger.h:Logger 加 TORCH_NPU_API。torch_npu 以 -fvisibility=hidden 编译,fxrt 调用 Logger 成员函数需要导出符号,实现不变。 - TORCH_NPU_LOGS.md:模块表增加 fxrt。 **构建依赖** - nanobind 仅构建时需要(静态链接,运行时不依赖),加入 requirements*-build.txt、.ci/docker/requirements-builder.txt(==2.13.0)、ci/docker 的 Dockerfile 和源码构建指南。 **测试与门禁** - 新增 test/fxrt(7 个用例,fxrt 未构建时跳过):fxrt 后端编译运行;import torch_npu / import torch_npu.fxrt 无副作用;register_fx_wrapper() 注册行为。 - test/npu/test_public_bindings.py:模块名检查跳过 torch_npu.fxrt。fxrt 以顶层包名 fxrt 执行,对象的 __module__ 为 fxrt.*;导入检查不跳过。 - .lintrunner.toml:fxrt C++ 源码纳入 clang-format 检查。 - tools/linter/dictionary.txt:增加 hax`(fxrt 哈希实现中的变量名)。 详见RFC issue # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 当前版本不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 新增demo特性,不涉及历史接口版本变更,demo特性已进行隔离,默认不开启。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 当前作为demo能力,默认不主动使能的情况下,要求不修改任何pytorch_npu已有逻辑和行为。 主要验证: 1. 构建打包安装行为不影响torch-npu的包。 2. 不主动使能情况下,原有torch-npu行为不受fxrt任何影响。 关于新增依赖的缺陷扫描,主要新增一个nanobind作为构建过程中的python依赖,扫描结果如下,引入依赖版本无安全缺陷报告:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45813 | 1 个月前 | |
fix: 补充requirements依赖声明,拆分构建期与运行期依赖 Co-authored-by: mhy<mahongyu7@huawei.com> # message auto-generated for no-merge-commit merge: !45566 merge deps/requirements-restructure into master fix: 补充requirements依赖声明,拆分构建期与运行期依赖 Created-by: m0_64341872 Commit-by: mhy 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能力等内容) 1. 新建 requirements-build.txt,拆出构建期工具依赖(pyyaml、setuptools),三个版本变体共用一份,因为这两个包不随 torch 版本变化 2. requirements.txt / requirements_2.13.txt / requirements_2.15.txt 开头通过 -r requirements-build.txt 引用上述文件;同时补充声明 numpy、sympy、typing-extensions 三个依赖——这三个包在 contrib/、profiler/、_inductor/ 中被无条件 import,但此前在任何依赖文件中均未声明 3. setup.py 的 install_requires 同步补充上述三个依赖,确保 pip install 生成的 wheel 依赖清单完整(这是唯一真正被 pip 强制执行、随 wheel 发布给用户的清单) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45566 | 1 个月前 | |
feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !45813 merge fxrt-src into master feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Created-by: c_34 Commit-by: chenhaozhe 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/4733 - [ ] 重构优化 - [ ] 资料更新 ## 目的 将 fxrt(FX 图运行时)以源码方式合入 torch_npu,随 torch_npu 一起编译打包,用户安装 torch_npu 后即可直接使用,无需单独安装 fxrt。 ### 概述 将 FX 图运行时 fxrt 放入 fxrt/ 目录,随 torch_npu 一起构建,以 torch_npu.fxrt 子包的形式发布,不再单独发包。 diff 主体是 fxrt/ 下的源码。对 torch_npu 已有代码的改动为 19 个文件、约 270 行,其中约 200 行是新增测试。 ### 对 torch_npu 的影响 - import torch_npu 不加载 fxrt,行为不变;fxrt 在 import torch_npu.fxrt 时才加载。 - 导入 fxrt 不改动 inductor,需显式调用 torch_npu.fxrt.register_fx_wrapper() 才会接管。 - C++ 接口唯一改动:导出 npu_logging::Logger。 - --disable_fxrt 可构建不含 fxrt 的 wheel。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) **构建接入**(沿用 torchair 方式) - setup.py:检测到 fxrt/fxrt 时传入 BUILD_FXRT、FXRT_INSTALL_DST、FXRT_TARGET_PYTHON;package_data 增加 fxrt 的 .so。fxrt 暂不提供 C++ 接口,wheel 中不含 fxrt 头文件。 - CMakeLists.txt:在 torch_npu target 之后 add_subdirectory(fxrt/fxrt)。 - ci/build.sh:新增 --disable_fxrt。 fxrt 的依赖(ACL/HCCL stub、nlohmann、DVM)均复用仓库内已有内容,构建时不下载,也不依赖 CANN 安装。fxrt 库的 RPATH 包含 torch_npu/lib,auditwheel 可在 wheel 内解析 libtorch_npu.so 及其依赖。 **日志** - torch_npu/_logging/_internal.py:注册 fxrt 日志别名,TORCH_NPU_LOGS=+fxrt 控制 fxrt 的 C++ 和 Python 日志。 - torch_npu/csrc/logging/Logger.h:Logger 加 TORCH_NPU_API。torch_npu 以 -fvisibility=hidden 编译,fxrt 调用 Logger 成员函数需要导出符号,实现不变。 - TORCH_NPU_LOGS.md:模块表增加 fxrt。 **构建依赖** - nanobind 仅构建时需要(静态链接,运行时不依赖),加入 requirements*-build.txt、.ci/docker/requirements-builder.txt(==2.13.0)、ci/docker 的 Dockerfile 和源码构建指南。 **测试与门禁** - 新增 test/fxrt(7 个用例,fxrt 未构建时跳过):fxrt 后端编译运行;import torch_npu / import torch_npu.fxrt 无副作用;register_fx_wrapper() 注册行为。 - test/npu/test_public_bindings.py:模块名检查跳过 torch_npu.fxrt。fxrt 以顶层包名 fxrt 执行,对象的 __module__ 为 fxrt.*;导入检查不跳过。 - .lintrunner.toml:fxrt C++ 源码纳入 clang-format 检查。 - tools/linter/dictionary.txt:增加 hax`(fxrt 哈希实现中的变量名)。 详见RFC issue # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 当前版本不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 新增demo特性,不涉及历史接口版本变更,demo特性已进行隔离,默认不开启。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 当前作为demo能力,默认不主动使能的情况下,要求不修改任何pytorch_npu已有逻辑和行为。 主要验证: 1. 构建打包安装行为不影响torch-npu的包。 2. 不主动使能情况下,原有torch-npu行为不受fxrt任何影响。 关于新增依赖的缺陷扫描,主要新增一个nanobind作为构建过程中的python依赖,扫描结果如下,引入依赖版本无安全缺陷报告:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45813 | 1 个月前 | |
fix: 补充requirements依赖声明,拆分构建期与运行期依赖 Co-authored-by: mhy<mahongyu7@huawei.com> # message auto-generated for no-merge-commit merge: !45566 merge deps/requirements-restructure into master fix: 补充requirements依赖声明,拆分构建期与运行期依赖 Created-by: m0_64341872 Commit-by: mhy 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能力等内容) 1. 新建 requirements-build.txt,拆出构建期工具依赖(pyyaml、setuptools),三个版本变体共用一份,因为这两个包不随 torch 版本变化 2. requirements.txt / requirements_2.13.txt / requirements_2.15.txt 开头通过 -r requirements-build.txt 引用上述文件;同时补充声明 numpy、sympy、typing-extensions 三个依赖——这三个包在 contrib/、profiler/、_inductor/ 中被无条件 import,但此前在任何依赖文件中均未声明 3. setup.py 的 install_requires 同步补充上述三个依赖,确保 pip install 生成的 wheel 依赖清单完整(这是唯一真正被 pip 强制执行、随 wheel 发布给用户的清单) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45566 | 1 个月前 | |
feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Co-authored-by: chenhaozhe<chenhaozhe1@huawei.com> # message auto-generated for no-merge-commit merge: !45813 merge fxrt-src into master feat: integrate fxrt as in-tree subpackage of torch_npu build and wheel Created-by: c_34 Commit-by: chenhaozhe 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/4733 - [ ] 重构优化 - [ ] 资料更新 ## 目的 将 fxrt(FX 图运行时)以源码方式合入 torch_npu,随 torch_npu 一起编译打包,用户安装 torch_npu 后即可直接使用,无需单独安装 fxrt。 ### 概述 将 FX 图运行时 fxrt 放入 fxrt/ 目录,随 torch_npu 一起构建,以 torch_npu.fxrt 子包的形式发布,不再单独发包。 diff 主体是 fxrt/ 下的源码。对 torch_npu 已有代码的改动为 19 个文件、约 270 行,其中约 200 行是新增测试。 ### 对 torch_npu 的影响 - import torch_npu 不加载 fxrt,行为不变;fxrt 在 import torch_npu.fxrt 时才加载。 - 导入 fxrt 不改动 inductor,需显式调用 torch_npu.fxrt.register_fx_wrapper() 才会接管。 - C++ 接口唯一改动:导出 npu_logging::Logger。 - --disable_fxrt 可构建不含 fxrt 的 wheel。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) **构建接入**(沿用 torchair 方式) - setup.py:检测到 fxrt/fxrt 时传入 BUILD_FXRT、FXRT_INSTALL_DST、FXRT_TARGET_PYTHON;package_data 增加 fxrt 的 .so。fxrt 暂不提供 C++ 接口,wheel 中不含 fxrt 头文件。 - CMakeLists.txt:在 torch_npu target 之后 add_subdirectory(fxrt/fxrt)。 - ci/build.sh:新增 --disable_fxrt。 fxrt 的依赖(ACL/HCCL stub、nlohmann、DVM)均复用仓库内已有内容,构建时不下载,也不依赖 CANN 安装。fxrt 库的 RPATH 包含 torch_npu/lib,auditwheel 可在 wheel 内解析 libtorch_npu.so 及其依赖。 **日志** - torch_npu/_logging/_internal.py:注册 fxrt 日志别名,TORCH_NPU_LOGS=+fxrt 控制 fxrt 的 C++ 和 Python 日志。 - torch_npu/csrc/logging/Logger.h:Logger 加 TORCH_NPU_API。torch_npu 以 -fvisibility=hidden 编译,fxrt 调用 Logger 成员函数需要导出符号,实现不变。 - TORCH_NPU_LOGS.md:模块表增加 fxrt。 **构建依赖** - nanobind 仅构建时需要(静态链接,运行时不依赖),加入 requirements*-build.txt、.ci/docker/requirements-builder.txt(==2.13.0)、ci/docker 的 Dockerfile 和源码构建指南。 **测试与门禁** - 新增 test/fxrt(7 个用例,fxrt 未构建时跳过):fxrt 后端编译运行;import torch_npu / import torch_npu.fxrt 无副作用;register_fx_wrapper() 注册行为。 - test/npu/test_public_bindings.py:模块名检查跳过 torch_npu.fxrt。fxrt 以顶层包名 fxrt 执行,对象的 __module__ 为 fxrt.*;导入检查不跳过。 - .lintrunner.toml:fxrt C++ 源码纳入 clang-format 检查。 - tools/linter/dictionary.txt:增加 hax`(fxrt 哈希实现中的变量名)。 详见RFC issue # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 当前版本不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 新增demo特性,不涉及历史接口版本变更,demo特性已进行隔离,默认不开启。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 当前作为demo能力,默认不主动使能的情况下,要求不修改任何pytorch_npu已有逻辑和行为。 主要验证: 1. 构建打包安装行为不影响torch-npu的包。 2. 不主动使能情况下,原有torch-npu行为不受fxrt任何影响。 关于新增依赖的缺陷扫描,主要新增一个nanobind作为构建过程中的python依赖,扫描结果如下,引入依赖版本无安全缺陷报告:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45813 | 1 个月前 | |
fix: 补充requirements依赖声明,拆分构建期与运行期依赖 Co-authored-by: mhy<mahongyu7@huawei.com> # message auto-generated for no-merge-commit merge: !45566 merge deps/requirements-restructure into master fix: 补充requirements依赖声明,拆分构建期与运行期依赖 Created-by: m0_64341872 Commit-by: mhy 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能力等内容) 1. 新建 requirements-build.txt,拆出构建期工具依赖(pyyaml、setuptools),三个版本变体共用一份,因为这两个包不随 torch 版本变化 2. requirements.txt / requirements_2.13.txt / requirements_2.15.txt 开头通过 -r requirements-build.txt 引用上述文件;同时补充声明 numpy、sympy、typing-extensions 三个依赖——这三个包在 contrib/、profiler/、_inductor/ 中被无条件 import,但此前在任何依赖文件中均未声明 3. setup.py 的 install_requires 同步补充上述三个依赖,确保 pip install 生成的 wheel 依赖清单完整(这是唯一真正被 pip 强制执行、随 wheel 发布给用户的清单) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45566 | 1 个月前 | |
Update URL (gitcode) Co-authored-by: dilililiwhy<why.wuhuanyu@huawei.com> # message auto-generated for no-merge-commit merge: merge update_url into master Update URL (gitcode) Created-by: dilililiwhy Commit-by: dilililiwhy 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!24843 | 1 年前 | |
test: verify community 2.14.0 features and fixes master Co-authored-by: Chansinging<1183520536@qq.com> # message auto-generated for no-merge-commit merge: !46469 merge verify_2.14_version into master test: verify community 2.14.0 features and fixes master Created-by: chansinging Commit-by: Chansinging Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 适配2.14版本更新 https://github.com/pytorch/pytorch/pull/187388,PyTorch 分布式后端发现机制重构为 Python entrypoints 动态注册路由。做下代码适配,与上游做法一致。 1. 一个 entry point 只注册对应后端。 PTA 导入时仍会主动注册 HCCL/LCCL,entry point 随后可能再次调用注册函数,所以需要重复调用保护 2. 通过 entry_points 注册 hccl/lccl(setup.py),注册幂等化。两个 entry point 都指向同一函数,而该函数一次注册 hccl 和 lccl 两个后端——第二次调用会因重复注册抛错。将其先检查 Backend.backend_list 再注册;同时去掉多余的 lambda 包装,直接传 _new_process_group_hccl_helper。保留了"hccl 必须先注册以保证 default_device_backend_map 正确"的既有顺序。 https://github.com/pytorch/pytorch/pull/188611 将 setSequenceNumberForGroup 降级为 Backend 级别,该接口废弃(带一次性警告)。 上游 2.14 已从 _new_process_group_helper 中移除 _set_sequence_number_for_group() 调用,pta做同步的删除操作 https://github.com/pytorch/pytorch/pull/188489 修复_new_group_with_tag 向自定义 PG 委托创建子组时遗漏了 backend 参数。跟随社区,新增兼容性测试。低版本选择跳过,自定义 DelegatingProcessGroup 注册为 cpu 后端,断言 new_group(ranks=[0]) 收到默认后端名 pta_new_group_backend_test、new_group(ranks=[0],backend="cpu:pta_new_group_backend_test") 收到显式 cpu: 前缀形式。 !189359,转需求 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 !187388 验证,通过脚本,由 PyTorch 根据后端名称 hccl,找到 PTA 安装包中的 entrypoint,查看是否自动加载并完成注册  !187388 验证  !188489  setsequence 2.13版本测试  # 【CheckList】 - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46469 | 29 天前 | |
update_torch Co-authored-by: SCh-zx<1325467101@qq.com> # message auto-generated for no-merge-commit merge: !46735 merge master into master update_torch Created-by: SCh_zx Commit-by: SCh-zx 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能力等内容) 更新torch # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!46735 | 1 个月前 |
TorchNPU
基于昇腾NPU的PyTorch适配插件
简体中文 | English
支持版本 · 安装 · 快速开始 · 版本配套 · 支持说明 · 贡献指南 · 文档 · 社区
简介
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
昇腾为基于华为昇腾 AI 处理器和软件的行业应用及服务提供全栈 AI 计算基础设施。您可以通过访问昇腾社区,了解关于昇腾的更多信息。
核心特性
TorchNPU 充分继承和复用上游 PyTorch 的大量成熟功能,并在此基础上针对昇腾 NPU 进行深度适配与优化,下图展示了 TorchNPU 的主要功能模块:
TorchNPU 主要模块介绍:
- 基础计算: 广泛支持 PyTorch 原生 API 及自定义 API,覆盖主流AI场景,提供一致性体验,支撑用户快速实现模型和算法。
- 分布式: 支持通过 FSDP2 加速分布式训练,核心计算 API 支持 DTensor,支持 AllGather、AllReduce、AllToAll 等集合通信原语,和 Send、Recv 等点对点通信原语。
- 图模式: 通过“动态图捕获+静态图优化+高效代码生成”的方式显著加速模型训练和推理任务,并支持通过 NPUGraph 下沉执行,在 2.6.0 以上版本已支持。
- 调试调优: 支持 Profiling 分析计算、通信和内存使用,支持通过 WatchDog 实时监控分析通信异常。
- TorchNPU Core: 支持虚拟内存管理降低内存碎片,在分布式场景支持跨流内存复用优化,通过 PrivateUse1 将算子和设备资源接入 PyTorch。
最新动态
- 📢 [2026-06-30] Ascend for PyTorch 社区相关组件名称规范统一预告。🔗 了解更多
- 📢 [2026-04-30] TorchNPU 26.0.0 版本发布,新增支持 PyTorch 2.10.0,支持Python3.13, 新增P2P通信支持group下发、DTensor策略扩展等特性。🔗 了解更多
支持版本
当前分支以单一源码适配多个 PyTorch 版本,所支持的 PyTorch 版本清单声明在 version.txt 中,该文件是版本支持的唯一来源,随版本适配同步更新。
已发布软件包的版本配套关系(TorchNPU / PyTorch / CANN / Python)请参见版本配套。
安装
软件包安装
以安装 TorchNPU 2.12.0 版本为例,请按照以下命令进行安装。下载其他版本的方式请参见社区下载页面 TorchNPU 下载。
安装 CANN
安装 CANN 9.1.0 及与硬件配套的 NPU 驱动和固件,并按照版本配套选择兼容的 Python 版本。具体步骤请参见 CANN 安装指南。
安装 PyTorch
执行以下命令安装 PyTorch 2.12.0:
pip install torch==2.12.0 --index-url https://download.pytorch.org/whl/cpu
安装 TorchNPU
执行以下命令安装 TorchNPU 2.12.0:
pip install torch-npu==2.12.0
源码编译安装
编译TorchNPU的详细步骤请参见源码安装。
快速开始
初始化环境
# 默认路径,请根据实际安装位置修改
source /usr/local/Ascend/cann/set_env.sh
运行示例
import torch
import torch_npu
x = torch.randn(2, 2).npu()
y = torch.randn(2, 2).npu()
z = x.mm(y)
print(z)
从 TorchNPU 2.5.1 版本起,
import torch_npu不再是强制要求(会自动注册),但建议在代码中显式导入以确保设备初始化。
输出如下类似信息说明运行成功:
tensor([[-0.0515, 0.3664],
[-0.1258, -0.5425]], device='npu:0')
完整的模型迁移和训练教程,请参见 快速入门。
社区交流
Ascend for PyTorch 社区由技术委员会(Technical Committee,TC)统筹管理,下设多个特别兴趣小组(Special Interest Groups,SIGs),各 SIG 负责特定技术领域的开发、维护和社区协作。以下是 TC 和当前各 SIG 的介绍,点击对应链接可查看详细说明。
| TC / SIG名称 | 简要描述 | 链接 |
|---|---|---|
| TC | 负责 Ascend for PyTorch 项目的技术方向与重大技术方案决策、SIG 治理及版本发布评审。 | 🔗 了解更多 |
| Core SIG | 聚焦于昇腾 NPU 平台上的 PyTorch 核心适配层开发,负责 TorchNPU 扩展库及其算子插件 OpPlugin 的设计、实现与维护。 |
🔗 了解更多 |
| Distributed SIG | 致力于在昇腾 NPU 硬件底座上,围绕 PyTorch 分布式训练框架(torch.distributed)构建高效、易用、可扩展的并行训练能力,为大语言模型、多模态模型和强化学习等场景提供极致性能体验。 | 🔗 了解更多 |
| Graph Mode SIG | 聚焦于 Dynamo、Inductor、NPUGraph等核心技术,旨在通过自动化的图捕捉与编译优化技术,弥合“易用性”与“高性能”之间的鸿沟。 | 🔗 了解更多 |
| Usability SIG | 致力于推动Ascend for PyTorch易用性体验提升,包含文档、教程、案例等。 | 🔗 了解更多 |
每个SIG都有自己的例会、邮件列表和贡献指南。点击对应的SIG链接可查看详细联系方式、工作目标及参与方式。欢迎大家为社区做贡献。如果有任何疑问或建议,请提交 GitCode Issues,我们会尽快回复。感谢您的支持。
安全声明
TorchNPU 的系统安全加固、运行用户建议和文件权限控制等内容,请参见 安全声明。
免责声明
本插件仅供调试和开发使用。使用者需自行保证输入命令行的安全性,并对使用过程中产生的数据做好权限控制。使用本插件即表示您同意并接受以上声明。
License
TorchNPU 的使用许可证,请参见 LICENSE 文件。 TorchNPU 资料文档的使用许可证,请参见 LICENSE 文件。
致谢
感谢来自社区的每一个 PR,欢迎开发者向 TorchNPU 插件贡献代码!