Ascend Extension for PyTorch
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[docs]v2.12.0文档产品名称更新 Co-authored-by: zxchen152<1135990991@qq.com> # message auto-generated for no-merge-commit merge: !40044 merge v2.12.0 into v2.12.0 [docs]v2.12.0文档产品名称更新 Created-by: zxchen152 Commit-by: zxchen152 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 更新代码仓文档中产品名称,使用 (?<![A-Za-z/])PTA(?![A-Za-z_])|(Ascend extension for pytorch)|((?<!import )(?<![A-Za-z_/.])(?<!(ninja ))torch_npu(?![A-Za-z_/.:])(?![-\\])(?!(进程|初始化)))|((?<!import )(?<![A-Za-z_/.])torch-npu(?![A-Za-z_/.:])(?![-\\]))匹配除doc目录外所有.md文档下的名称,并按需替换为TorchNPU # 【资料变更】 更新代码仓文档中产品名称,同时对文档的格式问题进行修复,不变更文档原有的代码。 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40044 | 1 个月前 | |
[feat]devcontainer Co-authored-by: SCh-zx<1325467101@qq.com> # message auto-generated for no-merge-commit merge: !40301 merge v2.12.0 into v2.12.0 [feat]devcontainer 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能力等内容) 新增devcontainer功能,以支持在ide环境下直接构建开发镜像。 合并x86与arm不同架构的dockerfile,简化构建流程。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40301 | 1 个月前 | |
[docs]add PR notes info Co-authored-by: liangsongwei<liangsongwei@huawei.com> # message auto-generated for no-merge-commit merge: !30843 merge master into master [docs]add PR notes info Created-by: liangsongwei Commit-by: liangsongwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 一是要求必须关联社区issue链接; 二是禁止填写需求链接、问题单等内部流程信息。 该修改通过直接更新模板文件生效,不涉及任何代码逻辑变更。 # 【资料变更】 PR提交模板信息补充 # 【接口变更】 不涉及 # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!30843 | 6 个月前 | |
[v2.12.0] Add CI Docker images build workflow Co-authored-by: wangqi<2801406898@qq.com> # message auto-generated for no-merge-commit merge: !42268 merge v2.12.0 into v2.12.0 [v2.12.0] Add CI Docker images build workflow Created-by: wangqi0808 Commit-by: wangqi Merged-by: ascend-robot Description: ## Summary 为 v2.12.0 分支添加 .github/workflows/build-docker-images.yml,实现 CI Docker 镜像的自动构建与推送到 SWR 镜像仓库。 Closes: #3073 ## Changes - 新增 .github/workflows/build-docker-images.yml - 支持 workflow_dispatch 手动触发和 push 自动触发(.ci/docker/** 变更时) - 覆盖 8 个镜像:builder (x86_64/aarch64) + test × CANN A1/A2/A3 (x86_64/aarch64) - 推送至 swr.cn-north-4.myhuaweicloud.com/frameworkptadapter/pytorch,Tag 含 UTC 时间戳 - Runner 自适应:x86_64 → ubuntu-latest,aarch64 → ubuntu-22.04-arm See merge request: Ascend/pytorch!42268 | 1 个月前 | |
update qwen3 docs Co-authored-by: HandsoemLemon<zhangafei@huawei.com> # message auto-generated for no-merge-commit merge: !44982 merge v2.12.0 into v2.12.0 update qwen3 docs Created-by: HandsoemLemon Commit-by: HandsoemLemon Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ https://gitcode.com/Ascend/pytorch/issues/4122 > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 修复benchmark-llm中qwen3拉起文档中缺少空格问题 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44982 | 12 天前 | |
[v2.12.0][bugfix]cann and pta header mixing bulid bugfix Co-authored-by: Dring<17737727613@163.com> # message auto-generated for no-merge-commit merge: !44995 merge v2.12.0 into v2.12.0 [v2.12.0][bugfix]cann and pta header mixing bulid bugfix Created-by: Dring Commit-by: Dring Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/3991 - [✕ ] 需求 - [ ✓] 问题单 - [ ✓] issue/工单 - [ ✓] 重构优化 - [✕ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 问题现象: PTA 26.1.0 仓库中的 third_party/acl 头文件来自 CANN 9.1.0,而编译环境安装的是 CANN 9.0.0。当同一个编译单元同时包含两套版本的 ACL 头文件时,会出现类似以下错误:aclmdlRITask 未声明、未定义或类型不匹配 aclmdlRITask 是 CANN 9.1.0 头文件所依赖的定义,但 CANN 9.0.0 对应头文件中不存在该定义或定义不兼容。 根因分析: 1 当前头文件查找路径不统一:PTA 源码中大量使用以下写法 #include "third_party/acl/inc/acl/acl_mdl.h" 因为编译命令中包含 PTA 项目根目录,这种写法会直接命中 PTA 26.1.0 仓库内由 CANN 9.1.0 导入的头文件:torch_npu/third_party/acl/inc/acl/acl_mdl.h 但该头文件内部使用的是标准 SDK 相对路径:#include "acl/acl_base.h" 编译器无法相对 acl_mdl.h 所在目录找到 acl/acl_base.h,因此转而按照全部 -I 目录依次搜索。如果 CANN 9.0.0 的 include 路径排在 PTA 内置 ACL 路径前面,就会命中:CANN-9.0.0/include/acl/acl_base.h 同一个翻译单元最终形成: acl_mdl.h -> PTA third_party 中的 CANN 9.1.0 版本 acl_base.h -> 环境 CANN 9.0.0 版本 这是一种“首层头文件由源码路径固定版本、传递头文件由 -I 顺序选择版本”的混合查找模式。 2 问题不局限于 acl_mdl.h 同样风险存在于所有能够继续 include 其他 CANN 头文件的入口,包括: acl/... aml/... profiling/... graph/... ge/... op_proto/... 因此不能只修复出现错误的某一个头文件,也不能只替换 acl_mdl.h。必须统一整个 CANN 头文件族的查找规则。 修改目标: 修改后需要满足 源码不再包含 third_party/acl/inc/... 这种仓库物理路径。 ACL、AML、profiling 等头文件全部通过统一 include root 查找。 一个编译 target 对 CANN 头文件只选择一套版本。 CANN 9.0.0 环境构建时,首层和传递头文件必须全部命中 CANN 9.0.0。 使用 PTA 内置头文件构建时,首层和传递头文件必须全部命中 PTA 内置的同一套版本。 wheel、libtorch_npu、C++ Extension 和 Inductor/AOT 使用同一目录契约 修改方案: 1、代码中使用 PTA 内置 ACL 头文件的地方,删除 third_party/acl/inc/ 物理路径前缀,统一改成从 include root 查找 2、打包或安装时,把 third_party/acl/inc 下需要公开的目录按原相对结构复制到安装产物的公共 include 根目录 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 cann 9.0.0 + pta 26.1.0的vllm-ascend安装验证成功  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [✓ ] 代码注释完备,正确记录错误日志 - [✕ ] 代码实现进行了返回值、空指针等校验 - [✓ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [✓ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44995 | 5 天前 | |
[Feature]support abi configuration for libtorch_npu. | 2 年前 | |
[docs]v2.12.0文档产品名称更新 Co-authored-by: zxchen152<1135990991@qq.com> # message auto-generated for no-merge-commit merge: !40044 merge v2.12.0 into v2.12.0 [docs]v2.12.0文档产品名称更新 Created-by: zxchen152 Commit-by: zxchen152 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 更新代码仓文档中产品名称,使用 (?<![A-Za-z/])PTA(?![A-Za-z_])|(Ascend extension for pytorch)|((?<!import )(?<![A-Za-z_/.])(?<!(ninja ))torch_npu(?![A-Za-z_/.:])(?![-\\])(?!(进程|初始化)))|((?<!import )(?<![A-Za-z_/.])torch-npu(?![A-Za-z_/.:])(?![-\\]))匹配除doc目录外所有.md文档下的名称,并按需替换为TorchNPU # 【资料变更】 更新代码仓文档中产品名称,同时对文档的格式问题进行修复,不变更文档原有的代码。 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40044 | 1 个月前 | |
[bugfix]cp冗余资料回退 Co-authored-by: TrHan<hantianrui1@huawei.com> # message auto-generated for no-merge-commit merge: !36647 merge pr_cp_2.12.0_0525 into v2.12.0 [bugfix]cp冗余资料回退 Created-by: TrHan Commit-by: TrHan Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 [#2035](https://gitcode.com/Ascend/pytorch/issues/2035) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用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!36647 | 3 个月前 | |
[docs]v2.12.0文档产品名称更新 Co-authored-by: zxchen152<1135990991@qq.com> # message auto-generated for no-merge-commit merge: !40044 merge v2.12.0 into v2.12.0 [docs]v2.12.0文档产品名称更新 Created-by: zxchen152 Commit-by: zxchen152 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 更新代码仓文档中产品名称,使用 (?<![A-Za-z/])PTA(?![A-Za-z_])|(Ascend extension for pytorch)|((?<!import )(?<![A-Za-z_/.])(?<!(ninja ))torch_npu(?![A-Za-z_/.:])(?![-\\])(?!(进程|初始化)))|((?<!import )(?<![A-Za-z_/.])torch-npu(?![A-Za-z_/.:])(?![-\\]))匹配除doc目录外所有.md文档下的名称,并按需替换为TorchNPU # 【资料变更】 更新代码仓文档中产品名称,同时对文档的格式问题进行修复,不变更文档原有的代码。 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40044 | 1 个月前 | |
| 1 年前 | ||
test: add torch.UntypedStorage.copy_ validation cases Co-authored-by: SS_RR<1445229659@qq.com> # message auto-generated for no-merge-commit merge: !44469 merge test-untyped-storage-copy-validation-cases-v2.12.0 into v2.12.0 test: add torch.UntypedStorage.copy_ validation cases Created-by: yuhuan2580 Commit-by: SS_RR Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 关联任务issue: https://gitcode.com/Ascend/pytorch/issues/3732 - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 torch.UntypedStorage.copy_ PyTorch 官方社区未针对 torch.UntypedStorage.copy_ 编写直接独立测试:全量检索 test 目录仅 test_subclass.py 中有一处异常路径调用(断言在无效 python storage 上调用 copy_ 抛 RuntimeError),正常路径仅被 tensor.copy_ 间接覆盖,因此自行编写用例并提交到 test 目录。 该 API 为 torch._C.StorageBase 的 C++ 绑定方法,设备感知但属框架层实现;torch_npu 序列化路径(torch_npu/utils/storage.py)已实际调用 UntypedStorage.copy_,NPU 上可直接运行,无需代码修改。 新增 test/test_storage_copy_.py,验证 copy_ 在同设备(CPU/NPU)、跨设备(CPU→NPU、NPU→CPU)、non_blocking、空 storage、size 不匹配报错及 TypedStorage 转发路径下的行为。 # 【资料变更】 不涉及文档修改。docs 各版本(pytorch_2-7-1 / 2-11-0 / 2-12-0 / 2-13-0)的 torch-Storage.md 均已收录 torch.UntypedStorage.copy_(原生文档链接在第 1408 行),支持状态为 Atlas A2/A3 ✔、Ascend 950DT ✘,表述正确,无需修改。本次提交仅补充测试用例,不涉及资料变更。 # 【接口变更】 不涉及 # 【功能介绍】 torch.UntypedStorage.copy_ 将 source storage 的数据复制到当前 storage,支持 non_blocking 参数,复制完成后返回 self。作为 torch._C.StorageBase 的底层存储复制方法,用于 storage 级数据搬运,tensor.copy_ 内部亦复用该路径。 # 【功能验证】 test_storage_copy_.py (torch.UntypedStorage.copy_) - test_copy_same_device_cpu — CPU 同设备复制,返回值与内容校验 - test_copy_same_device_npu — NPU 同设备复制,device 与内容校验 - test_copy_cpu_to_npu — CPU→NPU 跨设备复制 - test_copy_npu_to_cpu — NPU→CPU 跨设备复制 - test_copy_non_blocking — non_blocking=True 非阻塞路径 - test_copy_empty — 空 storage 复制 - test_copy_size_mismatch — size 不匹配抛 RuntimeError - test_copy_typed_storage_forwarding — TypedStorage.copy_ 转发到 UntypedStorage.copy_ 运行命令(v2.12.0): python -m pytest /workspace/user_data/pytorch-v2.12.0/test/test_storage_copy_.py -x -q 运行结果: `` 472a66bedabe# python -m pytest /workspace/user_data/pytorch-v2.12.0/test/test_storage_copy_.py -x -q ........ [100%] ================================================ warnings summary ================================================= ../usr/local/python3.11.15/lib/python3.11/site-packages/torch/jit/_script.py:362: 14 warnings /usr/local/python3.11.15/lib/python3.11/site-packages/torch/jit/_script.py:362: DeprecationWarning: torch.jit.script_method is deprecated. Please switch to torch.compile or torch.export. warnings.warn( test/test_storage_copy_.py::TestUntypedStorageCopy::test_copy_typed_storage_forwarding /workspace/user_data/pytorch-v2.12.0/test/test_storage_copy_.py:85: UserWarning: TypedStorage is deprecated. It will be removed in the future and UntypedStorage will be the only storage class. This should only matter to you if you are using storages directly. To access UntypedStorage directly, use tensor.untyped_storage() instead of tensor.storage() src = torch.TypedStorage([1, 2, 3], dtype=torch.float32) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 8 passed, 15 warnings in 8.36s `` # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44469 | 1 天前 | |
test: adapt debug_set_autodiff_subgraph_inlining for NPU Co-authored-by: yulin520<yutianaoxiang@163.com> # message auto-generated for no-merge-commit merge: !41607 merge test-debug-set-autodiff-subgraph-inlining-npu-v212 into v2.12.0 test: adapt debug_set_autodiff_subgraph_inlining for NPU Created-by: weixin_65332823 Commit-by: yulin520 Merged-by: ascend-robot Description: # 〖合入来源〗 - [ ] 需求 - [ ] 问题单 - [x] issue/工单:#2850 - [ ] 重构优化 - [ ] 资料更新 Issue: text https://gitcode.com/Ascend/pytorch/issues/2850 # 〖修改方案〗 本 PR 针对 v2.12.0 分支,补充以下 PyTorch 官方社区测试用例的 NPU 适配 patch: text test/jit/test_autodiff_subgraph_slicing.py 提交文件: text test_upstream/test/jit/test_autodiff_subgraph_slicing.py.patch 涉及 API: python torch._C._debug_set_autodiff_subgraph_inlining 该接口用于控制 PyTorch JIT 自动微分子图的内联行为,属于 PyTorch 内部调试接口。 PyTorch 官方社区已经提供相关测试,因此本 PR 不新增独立测试文件,仅对现有官方测试进行必要的 NPU 设备适配,不修改 API 实现代码。 相关测试及适配位置主要位于 PyTorch v2.12.0 官方测试文件约: text 42、66、332、392、405、420 行附近 本次主要修改内容如下: 1. 保留 PyTorch 官方社区测试用例原有验证逻辑和断言; 2. 对两个默认创建在 CPU、需要参与 NPU 计算的外部输入 Tensor 使用 .npu() 迁移至 NPU; 3. 对 JIT 函数内部新建的 zeros/ones Tensor,使用已有输入 Tensor 的 device 创建,避免 CPU/NPU Tensor 混用; 4. import torch_npu # noqa: F401 按项目导入顺序放置在全部 torch.testing 相关导入之后; 5. 保留自动微分子图切分和内联行为相关检查; 6. 未新增 device_type; 7. 未增加额外 NPU 设备检测逻辑; 8. 未增加 torch-npu API 实现代码; 9. 未引入 transfer_to_npu 自动迁移; 10. 未修改 torch.jit.script 或 torch.jit.script_method; 11. patch 基于 PyTorch v2.12.0 官方源码修改后通过 git diff 生成。 本次实际设备适配方式包括: python inputs = [torch.randn(size).npu().requires_grad_() for size in input_sizes] 以及: python input = torch.rand(6, 10).npu().requires_grad_() 对于 JIT 函数内部根据已有 Tensor 创建的新 Tensor,则使用已有 Tensor 的 device,例如: python torch.zeros(..., device=y.device) torch.zeros(..., device=a.device) torch.ones(..., device=y.device) 本 PR 保留 PyTorch 官方测试原有测试语义,仅进行与 NPU 执行相关的必要设备适配。 具体提交内容以当前 PR 最新 commit 为准。 # 〖资料变更〗 不涉及。 该 API 完整名称为: python torch._C._debug_set_autodiff_subgraph_inlining 该接口位于 PyTorch 内部 torch._C 模块,属于 PyTorch 私有调试接口。 本 PR 未新增公开 API,也未修改用户可见接口,因此无需补充 torch-npu 公共 API 资料。 # 〖接口变更〗 不涉及。 本 PR 仅补充 PyTorch 官方社区测试用例的 NPU 适配 patch,不修改: text API 定义 API 参数 返回值 调用方式 API 实现 # 〖功能验证〗 ## 验证环境 已在以下匹配环境完成当前 PR 提交对应的 NPU Runtime 验证: text 操作系统:Linux(Ubuntu) 昇腾硬件:910B4 CANN:8.5.0 目标分支:v2.12.0 PyTorch:2.12.0+cpu torch_npu:2.12.0rc1 npu available:True npu device count:1 Tensor device:npu:0 本次 Runtime 验证对应提交: text PR:#41607 HEAD SHA:812351c8934f2d5387ee9fed8d91f57cb2fe5e8c ## NPU Runtime 验证 已在真实 Ascend NPU 环境中执行与以下 API 相关的 PyTorch 官方测试: python torch._C._debug_set_autodiff_subgraph_inlining 运行前检查结果: text RUNTIME_TORCH=2.12.0+cpu RUNTIME_TORCH_NPU=2.12.0.rc1 RUNTIME_NPU_AVAILABLE=True RUNTIME_PROBE_DEVICE=npu:0 TARGET_API_DIRECT_CALL=PASS PREFLIGHT=PASS GRAPH_EXECUTOR=ProfilingMode.PROFILING GRAPH_EXECUTOR_INIT=PASS TEST_MODULE_LOAD=PASS 本次连续执行与目标 API 相关的 11 个 PyTorch 官方测试场景: text RELATED_TEST_COUNT=11 RAN_TESTS=11 FAILURES=0 ERRORS=0 SKIPPED=0 EXPECTED_FAILURES=0 UNEXPECTED_SUCCESSES=0 测试完成后检查结果: text FINAL_STATE_RESET=PASS NPU_SYNCHRONIZE=PASS API24_RUNTIME_RESULT=PASS FINAL_RESULT=PASS 本次 Runtime 验证确认: 1. 目标 API 在 PyTorch v2.12.0 与 torch_npu 2.12.0rc1 匹配环境中可正常调用; 2. 实际测试 Tensor 位于 npu:0; 3. 与该 API 相关的 11 个 PyTorch 官方测试均已执行; 4. 11 个测试全部通过,无 failure、error 或 skip; 5. 测试结束后已恢复 _debug_set_autodiff_subgraph_inlining(True); 6. torch.npu.synchronize() 检查通过,未发现异步 NPU 错误; 7. Runtime 验证对应当前 PR 提交 812351c8934f2d5387ee9fed8d91f57cb2fe5e8c。 ## 最新 commit 静态检查 本次调整 torch_npu import 顺序后,对最新 patch 重新完成以下检查: text PATCH_SEMANTIC_CHECK=PASS PATCH_APPLY_CHECK=PASS PATCH_APPLY=PASS PY_COMPILE=PASS SOURCE_DIFF_CHECK=PASS IMPORT_ORDER=PASS PATCH_GIT_DIFF_ROUNDTRIP=PASS POST_COMMIT_WORKTREE=PASS COMMITTED_PATCH_MATCH=PASS 当前 patch 设备适配检查结果: text PATCH_TORCH_NPU_IMPORT=1 PATCH_NPU_CALLS=2 PATCH_DERIVED_DEVICE=4 PATCH_DEVICE_TYPE=0 其中: text torch_npu import:1 处 .npu():2 处 从已有 Tensor 派生 device:4 处 device_type:0 处 torch_npu 导入顺序检查结果: text torch → torch.testing... → torch_npu 已确认: text torch_npu 位于全部 torch.testing 相关导入之后 ## patch 应用检查 已在对应版本 PyTorch 官方源码上执行: bash git apply --check test_upstream/test/jit/test_autodiff_subgraph_slicing.py.patch 结果: text PASS 同时已将 patch 应用到对应 PyTorch 官方源码,并完成: text Python 语法检查:PASS 源码 git diff --check:PASS import 顺序 AST 检查:PASS patch git diff round-trip:PASS # 〖修改范围审计〗 本 PR 当前仅包含以下一个文件: text test_upstream/test/jit/test_autodiff_subgraph_slicing.py.patch 最新检查结果: text FINAL_COMMIT_COUNT=1 FINAL_CHANGED_FILES=test_upstream/test/jit/test_autodiff_subgraph_slicing.py.patch 本 PR 当前远程分支信息: text 源仓库:weixin_65332823/pytorch 源分支:test-debug-set-autodiff-subgraph-inlining-npu-v212 目标仓库:Ascend/pytorch 目标分支:v2.12.0 当前最新远端 commit: text 812351c8934f2d5387ee9fed8d91f57cb2fe5e8c 本地与远端 SHA 已完成一致性检查: text REMOTE_VERIFY=PASS 修改范围审计结论: text Changed files:1 Commits:1 patch 仅修改 test/jit/test_autodiff_subgraph_slicing.py patch 不包含整文件删除 patch 不包含无关测试文件 patch 不包含日志、压缩包、环境文件或构建产物 同时确认: text 未引入 transfer_to_npu 未新增 device_type 未增加额外 NPU 检测逻辑 未修改 torch.jit.script 未修改 torch.jit.script_method 未修改 API 实现 # 〖验证结论〗 torch._C._debug_set_autodiff_subgraph_inlining 已在 PyTorch v2.12.0 与 torch_npu 2.12.0rc1 匹配环境中完成一致性验证。 当前结论如下: 1. PyTorch v2.12.0 中已存在该 API; 2. torch-npu 无需增加对应 API 实现; 3. PyTorch 官方社区已有相关测试用例,无需新增 Torch-NPU 原生测试文件; 4. 两个外部输入 Tensor 已按照最小修改原则使用 .npu() 迁移至 NPU; 5. JIT 函数内部新建 Tensor 使用已有输入 Tensor 的 device; 6. import torch_npu # noqa: F401 已位于全部 torch.testing 导入之后; 7. 未新增 device_type; 8. 未增加额外 NPU 检测逻辑; 9. 未引入 transfer_to_npu; 10. 未修改 PyTorch 官方测试原有核心逻辑和断言; 11. patch 基于对应版本 PyTorch 官方源码通过 git diff 生成; 12. patch 已通过对应 PyTorch 官方源码的 git apply --check; 13. patch 应用后的 Python 源码已通过语法和 whitespace 检查; 14. 当前 PR 保持单 commit; 15. 当前 PR 仅修改目标 patch 文件; 16. 当前最新本地 commit 与远端 source branch SHA 一致; 17. 已在当前 PR 提交对应的 Ascend 910B4 NPU 环境中完成 Runtime 验证; 18. 与目标 API 相关的 11 个 PyTorch 官方测试全部通过; 19. Runtime 结果为 11 个测试、0 failure、0 error、0 skip; 20. 实际测试 Tensor 位于 npu:0; 21. NPU_SYNCHRONIZE=PASS; 22. API24_RUNTIME_RESULT=PASS; 23. 该 API 为 PyTorch 私有调试接口,无需补充公开 API 资料。 # 〖CheckList〗 - [x] PR 标题已使用 test 类型标签 - [x] 已关联 Issue #2850 - [x] 已确认 PyTorch 官方社区存在相关测试用例 - [x] 已分析社区用例及 NPU 适配需求 - [x] 已确认无需新增 Torch-NPU 原生测试文件 - [x] 已检查测试用例中的 Tensor 使用场景 - [x] 两个外部输入 Tensor 已通过 .npu() 迁移至 NPU - [x] JIT 内部新建 Tensor 已使用已有 Tensor 的 device - [x] torch_npu 已位于全部 torch.testing 导入之后 - [x] 未新增不必要的 device_type - [x] 未增加额外 NPU 检测逻辑 - [x] 已在真实 NPU 环境中完成当前提交对应的 Runtime 验证 - [x] 已确认实际测试 Tensor 位于 npu:0 - [x] 已执行 11 个目标 API 相关 PyTorch 官方测试 - [x] 11 个相关测试全部通过 - [x] Runtime 中 failure、error、skip 均为 0 - [x] 已完成 NPU synchronize 检查 - [x] 已执行 git apply --check - [x] 已完成 patch 应用后的 Python 语法检查 - [x] 已完成 patch 应用后的源码 git diff --check - [x] 已完成 patch git diff round-trip 检查 - [x] 已检查 patch 不包含整文件删除 - [x] 已检查 patch 仅修改目标社区测试文件 - [x] 已确认当前 PR 仅包含一个任务 commit - [x] 已确认当前 PR 仅包含一个目标 patch 文件 - [x] 已完成本地与远端 commit SHA 一致性检查 - [x] 已确认未引入 transfer_to_npu - [x] 已确认未修改 JIT 方法 - [x] 已确认不涉及 API 实现代码 - [x] 已确认不涉及公开资料变更 - [x] 已确认不涉及公开接口变更 # 〖验证截图〗 ## NPU Runtime 验证 以下截图为当前 PR 提交对应的 Ascend 910B4 NPU Runtime 验证结果。 截图关键信息: text PR:#41607 目标版本:v2.12.0 HEAD:812351c8934f2d5387ee9fed8d91f57cb2fe5e8c PyTorch:2.12.0+cpu torch_npu:2.12.0rc1 Device:npu:0 Related tests:11 Ran tests:11 Failures:0 Errors:0 Skipped:0 NPU synchronize:PASS Runtime result:PASS Final result:PASS  以下截图为此前在匹配 Ascend 910B4 NPU 环境中的实际运行验证记录。  See merge request: Ascend/pytorch!41607 | 18 天前 | |
Update torchair commit id Co-authored-by: pta-robot<pta_robot@163.com> # message auto-generated for no-merge-commit merge: !45635 merge v2.12.0 into v2.12.0 Update torchair commit id Created-by: pta-robot Commit-by: pta-robot Merged-by: ascend-robot Description: Commited by @pta-robot at 2026-09-01 18:02:43. See merge request: Ascend/pytorch!45635 | 21 小时前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36367 merge v2.12.0_lintrunner into v2.12.0 [Fix] Fix static check errors detected by SPACES Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 检测和删除代码中的行尾空白字符 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!36367 | 3 个月前 | |
support clang compile Co-authored-by: SCh-zx<1325467101@qq.com> # message auto-generated for no-merge-commit merge: !45627 merge v2.12.0 into v2.12.0 support clang compile 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] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 支持在 export CC=clang export CXX=clang++ 且已安装clang编译torch的场景下 直接使用bash ci/build.sh进行clang编译,且构建产物可以正常使用。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45627 | 22 小时前 | |
[fix] add new unsupport aten Co-authored-by: chenshuai<chenshuai81@huawei.com> # message auto-generated for no-merge-commit merge: !44584 merge cherry-pick-mr-44583-1786698394119-auto into v2.12.0 [fix] add new unsupport aten Created-by: culechan Commit-by: chenshuai Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 op仓新增了一个inductor_fallback_ops列表里的aten,这导致n_shim.h可能发生变化,因此这里显式的指定该aten是不支持的。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不影响功能变更 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44584 | 18 天前 | |
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 | 4 个月前 | |
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 | 4 个月前 | |
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 | 4 个月前 | |
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 | 4 个月前 | |
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 | 4 个月前 | |
[sync] PR-35289: [feat] 去掉codegen随机性,保证生成的文件内容固定,使ccache能命中缓存 Co-authored-by: LiNuohang<linuohang@huawei.com> # message auto-generated for no-merge-commit merge: !35435 merge sync-pr35289-codegen-m-to-v2.12.0 into v2.12.0 [sync] PR-35289: [feat] 去掉codegen随机性,保证生成的文件内容固定,使ccache能命中缓存 Created-by: ascend-ds-bot Commit-by: LiNuohang Merged-by: ascend-robot Description: ### 1. Origin pull request: https://gitcode.com/Ascend/pytorch/merge_requests/35289 ### 2. Original pull request related issue(s): https://gitcode.com/Ascend/pytorch/issues/1761 ### 3. Original pull request related commit(s): | Sha | Datetime | Message | |---|---|---| |[5bab1071](https://gitcode.com/Ascend/pytorch/commit/5bab107180dee4e57b33b72603344c366ef2451c)|2026-05-12 02:11:26 +0800 CST|[fix] lint<br>| |[27b54585](https://gitcode.com/Ascend/pytorch/commit/27b54585a29960dd0f000b48cedd50b74c42f211)|2026-05-12 01:17:05 +0800 CST|[feat] 去掉codegen随机性,保证生成的文件内容固定,使ccache能命中缓存<br>| See merge request: Ascend/pytorch!35435 | 3 个月前 | |
feat(_inductor): Support DVM for the r2.12 branch Co-authored-by: huangchengnuo<huangchengnuo1@huawei.com> # message auto-generated for no-merge-commit merge: !39779 merge support-dvm-r212-20260701 into v2.12.0 feat(_inductor): Support DVM for the r2.12 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 相关能力迁移到 v2.12.0,为 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/v2.12.0 2. 对相对 origin/v2.12.0 变更的 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!39779 | 2 个月前 | |
[Fix] Fix static check errors detected by SPACES Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !36367 merge v2.12.0_lintrunner into v2.12.0 [Fix] Fix static check errors detected by SPACES Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 检测和删除代码中的行尾空白字符 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!36367 | 3 个月前 | |
support clang compile Co-authored-by: SCh-zx<1325467101@qq.com> # message auto-generated for no-merge-commit merge: !45627 merge v2.12.0 into v2.12.0 support clang compile 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] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 支持在 export CC=clang export CXX=clang++ 且已安装clang编译torch的场景下 直接使用bash ci/build.sh进行clang编译,且构建产物可以正常使用。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!45627 | 22 小时前 | |
docs: update CONTRIBUTING.md with formatting fixes, AI dev guide, and docs guide Co-authored-by: Xinrui Chen<chenxinrui11@huawei.com> # message auto-generated for no-merge-commit merge: !36350 merge v2.12.0-contrib into v2.12.0 docs: update CONTRIBUTING.md with formatting fixes, AI dev guide, and docs guide 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/工单 [#2034](https://gitcode.com/Ascend/pytorch/issues/2034) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) - 修复项目结构图中 Markdown 代码块的语言标识符 - 重新排版核心模块表,并添加 test/npu 模块条目 - 添加 AI 辅助开发章节,并附上 Ascend 代理技能链接 - 添加文档开发指南,涵盖托管、提交和持续集成检查 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 涉及,修改内容如上 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!36350 | 3 个月前 | |
| 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 | 11 个月前 | |
[docs]v2.12.0文档产品名称更新 Co-authored-by: zxchen152<1135990991@qq.com> # message auto-generated for no-merge-commit merge: !40044 merge v2.12.0 into v2.12.0 [docs]v2.12.0文档产品名称更新 Created-by: zxchen152 Commit-by: zxchen152 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 更新代码仓文档中产品名称,使用 (?<![A-Za-z/])PTA(?![A-Za-z_])|(Ascend extension for pytorch)|((?<!import )(?<![A-Za-z_/.])(?<!(ninja ))torch_npu(?![A-Za-z_/.:])(?![-\\])(?!(进程|初始化)))|((?<!import )(?<![A-Za-z_/.])torch-npu(?![A-Za-z_/.:])(?![-\\]))匹配除doc目录外所有.md文档下的名称,并按需替换为TorchNPU # 【资料变更】 更新代码仓文档中产品名称,同时对文档的格式问题进行修复,不变更文档原有的代码。 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40044 | 1 个月前 | |
modify document Co-authored-by: m0_68000167<wangzhiyuan86@h-partners.com> # message auto-generated for no-merge-commit merge: !43845 merge v2.12.0 into v2.12.0 modify document Created-by: m0_68000167 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] 资料更新 # 【修改方案】 AIDD问题扫描修改 # 【资料变更】 涉及 # 【接口变更】 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!43845 | 27 天前 | |
[docs]v2.12.0文档产品名称更新 Co-authored-by: zxchen152<1135990991@qq.com> # message auto-generated for no-merge-commit merge: !40044 merge v2.12.0 into v2.12.0 [docs]v2.12.0文档产品名称更新 Created-by: zxchen152 Commit-by: zxchen152 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 [#2602](https://gitcode.com/Ascend/pytorch/issues/2602) - [ ] 重构优化 - [x] 资料更新 # 【修改方案】 更新代码仓文档中产品名称,使用 (?<![A-Za-z/])PTA(?![A-Za-z_])|(Ascend extension for pytorch)|((?<!import )(?<![A-Za-z_/.])(?<!(ninja ))torch_npu(?![A-Za-z_/.:])(?![-\\])(?!(进程|初始化)))|((?<!import )(?<![A-Za-z_/.])torch-npu(?![A-Za-z_/.:])(?![-\\]))匹配除doc目录外所有.md文档下的名称,并按需替换为TorchNPU # 【资料变更】 更新代码仓文档中产品名称,同时对文档的格式问题进行修复,不变更文档原有的代码。 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!40044 | 1 个月前 | |
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35875 merge v2.12.0_lintrunner into v2.12.0 fix: lintrunner --all-files --take NEWLINE -a Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 执行: lintrunner --all-files --take NEWLINE -a 修复换行符,不影响代码逻辑。 2. 屏蔽两个分布式用例,已提issue,给对应接口人跟踪。 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35875 | 3 个月前 | |
[v2.12.0][bugfix]cann and pta header mixing bulid bugfix Co-authored-by: Dring<17737727613@163.com> # message auto-generated for no-merge-commit merge: !44995 merge v2.12.0 into v2.12.0 [v2.12.0][bugfix]cann and pta header mixing bulid bugfix Created-by: Dring Commit-by: Dring Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/3991 - [✕ ] 需求 - [ ✓] 问题单 - [ ✓] issue/工单 - [ ✓] 重构优化 - [✕ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 问题现象: PTA 26.1.0 仓库中的 third_party/acl 头文件来自 CANN 9.1.0,而编译环境安装的是 CANN 9.0.0。当同一个编译单元同时包含两套版本的 ACL 头文件时,会出现类似以下错误:aclmdlRITask 未声明、未定义或类型不匹配 aclmdlRITask 是 CANN 9.1.0 头文件所依赖的定义,但 CANN 9.0.0 对应头文件中不存在该定义或定义不兼容。 根因分析: 1 当前头文件查找路径不统一:PTA 源码中大量使用以下写法 #include "third_party/acl/inc/acl/acl_mdl.h" 因为编译命令中包含 PTA 项目根目录,这种写法会直接命中 PTA 26.1.0 仓库内由 CANN 9.1.0 导入的头文件:torch_npu/third_party/acl/inc/acl/acl_mdl.h 但该头文件内部使用的是标准 SDK 相对路径:#include "acl/acl_base.h" 编译器无法相对 acl_mdl.h 所在目录找到 acl/acl_base.h,因此转而按照全部 -I 目录依次搜索。如果 CANN 9.0.0 的 include 路径排在 PTA 内置 ACL 路径前面,就会命中:CANN-9.0.0/include/acl/acl_base.h 同一个翻译单元最终形成: acl_mdl.h -> PTA third_party 中的 CANN 9.1.0 版本 acl_base.h -> 环境 CANN 9.0.0 版本 这是一种“首层头文件由源码路径固定版本、传递头文件由 -I 顺序选择版本”的混合查找模式。 2 问题不局限于 acl_mdl.h 同样风险存在于所有能够继续 include 其他 CANN 头文件的入口,包括: acl/... aml/... profiling/... graph/... ge/... op_proto/... 因此不能只修复出现错误的某一个头文件,也不能只替换 acl_mdl.h。必须统一整个 CANN 头文件族的查找规则。 修改目标: 修改后需要满足 源码不再包含 third_party/acl/inc/... 这种仓库物理路径。 ACL、AML、profiling 等头文件全部通过统一 include root 查找。 一个编译 target 对 CANN 头文件只选择一套版本。 CANN 9.0.0 环境构建时,首层和传递头文件必须全部命中 CANN 9.0.0。 使用 PTA 内置头文件构建时,首层和传递头文件必须全部命中 PTA 内置的同一套版本。 wheel、libtorch_npu、C++ Extension 和 Inductor/AOT 使用同一目录契约 修改方案: 1、代码中使用 PTA 内置 ACL 头文件的地方,删除 third_party/acl/inc/ 物理路径前缀,统一改成从 include root 查找 2、打包或安装时,把 third_party/acl/inc 下需要公开的目录按原相对结构复制到安装产物的公共 include 根目录 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 cann 9.0.0 + pta 26.1.0的vllm-ascend安装验证成功  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [✓ ] 代码注释完备,正确记录错误日志 - [✕ ] 代码实现进行了返回值、空指针等校验 - [✓ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [✓ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44995 | 5 天前 | |
| 1 年前 | ||
[2.12.0][refactor]CANN ACL headers decouple Co-authored-by: Dring<17737727613@163.com> # message auto-generated for no-merge-commit merge: !36008 merge v2.12.0 into v2.12.0 [2.12.0][refactor]CANN ACL headers decouple Created-by: Dring Commit-by: Dring Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ https://gitcode.com/Ascend/pytorch/issues/2042 > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [✓ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [✓ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) cann已开源,PTA在编译过程中动态获取CANN头文件,避免本地保存的头文件与CANN开源版本存在差异导致上层应用编译异常。  核心逻辑: 2.10以下分支保留开源头文件中没有的头文件,2.10以上分支原头文件全部删除,拉取的开源头文件进行复制覆盖 2.10以上分支检查 third_party/acl/inc/acl/ 是否已有内容,有则跳过(幂等) 按优先级复制头文件到 third_party/acl/inc/acl/(先 runtime,后 ge 覆盖,再super_kernel.h) 删除临时目录 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 编包成功,没有本地文件找不到的头文件符号  安装成功 初始化无报错:  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [✓ ] 代码注释完备,正确记录错误日志 - [✕ ] 代码实现进行了返回值、空指针等校验 - [✓ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [✓ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!36008 | 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 | 4 个月前 | |
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 | 4 个月前 | |
Optimize the patch for FSDP Co-authored-by: zhenyu10<shizhenyu5@huawei.com> # message auto-generated for no-merge-commit merge: !35275 merge v2.12.0 into v2.12.0 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!35275 | 3 个月前 | |
[sync] PR-35516: Fix pyrefly\set_linter\stabel_shim_version_linter error Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35536 merge sync-pr35516-code_check_fix-to-v2.12.0 into v2.12.0 [sync] PR-35516: Fix pyrefly\set_linter\stabel_shim_version_linter error Created-by: ascend-ds-bot Commit-by: huangjingwei Merged-by: ascend-robot Description: ### 1. Origin pull request: https://gitcode.com/Ascend/pytorch/merge_requests/35516 ### 2. Original pull request related issue(s): https://gitcode.com/Ascend/pytorch/issues/1865 https://gitcode.com/Ascend/pytorch/issues/1862 ### 3. Original pull request related commit(s): | Sha | Datetime | Message | |---|---|---| |[91005219](https://gitcode.com/Ascend/pytorch/commit/91005219647bb7a5214edd96f12260a52e324684)|2026-05-13 15:19:57 +0800 CST|Fix pyrefly\set_linter\stabel_shim_version_linter error<br>| See merge request: Ascend/pytorch!35536 | 3 个月前 | |
Release 2.11.0rc1 Co-authored-by: Chansinging<1183520536@qq.com> # message auto-generated for no-merge-commit merge: !35503 merge v2.12.0rc1 into v2.12.0 Release 2.11.0rc1 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/工单 [版本升级](https://gitcode.com/Ascend/pytorch/issues/1941) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 社区演进和版本升级 # 【资料变更】 修改内容参考[2.11rc合入](https://gitcode.com/Ascend/pytorch/pull/32267),做2.12版本升级 # 【接口变更】 不涉及 # 【功能验证】   # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!35503 | 3 个月前 | |
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 | 11 个月前 | |
[v2.12.0][bugfix]cann and pta header mixing bulid bugfix Co-authored-by: Dring<17737727613@163.com> # message auto-generated for no-merge-commit merge: !44995 merge v2.12.0 into v2.12.0 [v2.12.0][bugfix]cann and pta header mixing bulid bugfix Created-by: Dring Commit-by: Dring Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/3991 - [✕ ] 需求 - [ ✓] 问题单 - [ ✓] issue/工单 - [ ✓] 重构优化 - [✕ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 问题现象: PTA 26.1.0 仓库中的 third_party/acl 头文件来自 CANN 9.1.0,而编译环境安装的是 CANN 9.0.0。当同一个编译单元同时包含两套版本的 ACL 头文件时,会出现类似以下错误:aclmdlRITask 未声明、未定义或类型不匹配 aclmdlRITask 是 CANN 9.1.0 头文件所依赖的定义,但 CANN 9.0.0 对应头文件中不存在该定义或定义不兼容。 根因分析: 1 当前头文件查找路径不统一:PTA 源码中大量使用以下写法 #include "third_party/acl/inc/acl/acl_mdl.h" 因为编译命令中包含 PTA 项目根目录,这种写法会直接命中 PTA 26.1.0 仓库内由 CANN 9.1.0 导入的头文件:torch_npu/third_party/acl/inc/acl/acl_mdl.h 但该头文件内部使用的是标准 SDK 相对路径:#include "acl/acl_base.h" 编译器无法相对 acl_mdl.h 所在目录找到 acl/acl_base.h,因此转而按照全部 -I 目录依次搜索。如果 CANN 9.0.0 的 include 路径排在 PTA 内置 ACL 路径前面,就会命中:CANN-9.0.0/include/acl/acl_base.h 同一个翻译单元最终形成: acl_mdl.h -> PTA third_party 中的 CANN 9.1.0 版本 acl_base.h -> 环境 CANN 9.0.0 版本 这是一种“首层头文件由源码路径固定版本、传递头文件由 -I 顺序选择版本”的混合查找模式。 2 问题不局限于 acl_mdl.h 同样风险存在于所有能够继续 include 其他 CANN 头文件的入口,包括: acl/... aml/... profiling/... graph/... ge/... op_proto/... 因此不能只修复出现错误的某一个头文件,也不能只替换 acl_mdl.h。必须统一整个 CANN 头文件族的查找规则。 修改目标: 修改后需要满足 源码不再包含 third_party/acl/inc/... 这种仓库物理路径。 ACL、AML、profiling 等头文件全部通过统一 include root 查找。 一个编译 target 对 CANN 头文件只选择一套版本。 CANN 9.0.0 环境构建时,首层和传递头文件必须全部命中 CANN 9.0.0。 使用 PTA 内置头文件构建时,首层和传递头文件必须全部命中 PTA 内置的同一套版本。 wheel、libtorch_npu、C++ Extension 和 Inductor/AOT 使用同一目录契约 修改方案: 1、代码中使用 PTA 内置 ACL 头文件的地方,删除 third_party/acl/inc/ 物理路径前缀,统一改成从 include root 查找 2、打包或安装时,把 third_party/acl/inc 下需要公开的目录按原相对结构复制到安装产物的公共 include 根目录 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 cann 9.0.0 + pta 26.1.0的vllm-ascend安装验证成功  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [✓ ] 代码注释完备,正确记录错误日志 - [✕ ] 代码实现进行了返回值、空指针等校验 - [✓ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [✓ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!44995 | 5 天前 | |
update post version in version.txt Co-authored-by: fft1374<liwen120@huawei.com> # message auto-generated for no-merge-commit merge: !44581 merge v2.12.0-update_version into v2.12.0 update post version in version.txt Created-by: fft1374 Commit-by: fft1374 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能力等内容) update post version in version.txt # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 不涉及 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] 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!44581 | 19 天前 |
TorchNPU
简介
TorchNPU是为PyTorch框架开发的适配插件,旨在将昇腾NPU接入PyTorch生态,为使用PyTorch框架的开发者提供昇腾AI处理器的超强算力。
昇腾为基于华为昇腾处理器和软件的行业应用及服务提供全栈AI计算基础设施。您可以通过访问昇腾社区,了解关于昇腾的更多信息。
版本说明
PyTorch与Python版本配套表
| PyTorch版本 | Python版本 |
|---|---|
| PyTorch 1.11.0 | Python3.7.x(>=3.7.5), Python3.8.x, Python3.9.x, Python3.10.x |
| PyTorch 2.1.0 | Python3.8.x, Python3.9.x, Python3.10.x, Python 3.11.x |
| PyTorch 2.2.0 | Python3.8.x, Python3.9.x, Python3.10.x |
| PyTorch 2.3.1 | Python3.8.x, Python3.9.x, Python3.10.x, Python 3.11.x |
| PyTorch 2.4.0 | Python3.8.x, Python3.9.x, Python3.10.x, Python 3.11.x |
| PyTorch 2.5.1 | Python3.9.x, Python3.10.x, Python 3.11.x |
| PyTorch 2.6.0 | Python3.9.x, Python3.10.x, Python 3.11.x |
| PyTorch 2.7.1 | Python3.9.x, Python3.10.x, Python 3.11.x, Python 3.12.x, Python 3.13.x |
| PyTorch 2.8.0 | Python3.9.x, Python3.10.x, Python 3.11.x, Python 3.12.x, Python 3.13.x |
| PyTorch 2.9.0 | Python3.10.x, Python3.11.x, Python 3.12.x, Python 3.13.x |
| PyTorch 2.10.0 | Python3.10.x, Python3.11.x, Python 3.12.x, Python 3.13.x |
昇腾辅助软件
TorchNPU的分支名称采用{PyTorch版本}-{昇腾版本}命名规则,前者为TorchNPU匹配的PyTorch版本,后者为TorchNPU版本号,详细匹配如下:
| CANN版本 | 支持的PyTorch版本 | 支持的Extension版本 | GitCode分支 |
|---|---|---|---|
| CANN 9.0.0 | 2.10.0 | 2.10.0 | v2.10.0-26.0.0 |
| 2.9.0 | 2.9.0.post2 | v2.9.0-26.0.0 | |
| 2.8.0 | 2.8.0.post4 | v2.8.0-26.0.0 | |
| 2.7.1 | 2.7.1.post4 | v2.7.1-26.0.0 | |
| CANN 8.5.0 | 2.9.0 | 2.9.0 | v2.9.0-7.3.0 |
| 2.8.0 | 2.8.0.post2 | v2.8.0-7.3.0 | |
| 2.7.1 | 2.7.1.post2 | v2.7.1-7.3.0 | |
| 2.6.0 | 2.6.0.post5 | v2.6.0-7.3.0 | |
| CANN 8.3.RC1 | 2.8.0 | 2.8.0 | v2.8.0-7.2.0 |
| 2.7.1 | 2.7.1 | v2.7.1-7.2.0 | |
| 2.6.0 | 2.6.0.post3 | v2.6.0-7.2.0 | |
| 2.1.0 | 2.1.0.post17 | v2.1.0-7.2.0 | |
| CANN 8.2.RC1 | 2.6.0 | 2.6.0 | v2.6.0-7.1.0 |
| 2.5.1 | 2.5.1.post1 | v2.5.1-7.1.0 | |
| 2.1.0 | 2.1.0.post13 | v2.1.0-7.1.0 | |
| CANN 8.1.RC1 | 2.5.1 | 2.5.1 | v2.5.1-7.0.0 |
| 2.4.0 | 2.4.0.post4 | v2.4.0-7.0.0 | |
| 2.3.1 | 2.3.1.post6 | v2.3.1-7.0.0 | |
| 2.1.0 | 2.1.0.post12 | v2.1.0-7.0.0 | |
| CANN 8.0.0 | 2.4.0 | 2.4.0.post2 | v2.4.0-6.0.0 |
| 2.3.1 | 2.3.1.post4 | v2.3.1-6.0.0 | |
| 2.1.0 | 2.1.0.post10 | v2.1.0-6.0.0 | |
| CANN 8.0.RC3 | 2.4.0 | 2.4.0 | v2.4.0-6.0.rc3 |
| 2.3.1 | 2.3.1.post2 | v2.3.1-6.0.rc3 | |
| 2.1.0 | 2.1.0.post8 | v2.1.0-6.0.rc3 | |
| CANN 8.0.RC2 | 2.3.1 | 2.3.1 | v2.3.1-6.0.rc2 |
| 2.2.0 | 2.2.0.post2 | v2.2.0-6.0.rc2 | |
| 2.1.0 | 2.1.0.post6 | v2.1.0-6.0.rc2 | |
| 1.11.0 | 1.11.0.post14 | v1.11.0-6.0.rc2 | |
| CANN 8.0.RC1 | 2.2.0 | 2.2.0 | v2.2.0-6.0.rc1 |
| 2.1.0 | 2.1.0.post4 | v2.1.0-6.0.rc1 | |
| 1.11.0 | 1.11.0.post11 | v1.11.0-6.0.rc1 | |
| CANN 7.0.0 | 2.1.0 | 2.1.0 | v2.1.0-5.0.0 |
| 2.0.1 | 2.0.1.post1 | v2.0.1-5.0.0 | |
| 1.11.0 | 1.11.0.post8 | v1.11.0-5.0.0 | |
| CANN 7.0.RC1 | 2.1.0 | 2.1.0.rc1 | v2.1.0-5.0.rc3 |
| 2.0.1 | 2.0.1 | v2.0.1-5.0.rc3 | |
| 1.11.0 | 1.11.0.post4 | v1.11.0-5.0.rc3 | |
| CANN 6.3.RC3.1 | 1.11.0 | 1.11.0.post3 | v1.11.0-5.0.rc2.2 |
| CANN 6.3.RC3 | 1.11.0 | 1.11.0.post2 | v1.11.0-5.0.rc2.1 |
| CANN 6.3.RC2 | 2.0.1 | 2.0.1.rc1 | v2.0.1-5.0.rc2 |
| 1.11.0 | 1.11.0.post1 | v1.11.0-5.0.rc2 | |
| 1.8.1 | 1.8.1.post2 | v1.8.1-5.0.rc2 | |
| CANN 6.3.RC1 | 1.11.0 | 1.11.0 | v1.11.0-5.0.rc1 |
| 1.8.1 | 1.8.1.post1 | v1.8.1-5.0.rc1 | |
| CANN 6.0.1 | 1.5.0 | 1.5.0.post8 | v1.5.0-3.0.0 |
| 1.8.1 | 1.8.1 | v1.8.1-3.0.0 | |
| 1.11.0 | 1.11.0.rc2(beta) | v1.11.0-3.0.0 | |
| CANN 6.0.RC1 | 1.5.0 | 1.5.0.post7 | v1.5.0-3.0.rc3 |
| 1.8.1 | 1.8.1.rc3 | v1.8.1-3.0.rc3 | |
| 1.11.0 | 1.11.0.rc1(beta) | v1.11.0-3.0.rc3 | |
| CANN 5.1.RC2 | 1.5.0 | 1.5.0.post6 | v1.5.0-3.0.rc2 |
| 1.8.1 | 1.8.1.rc2 | v1.8.1-3.0.rc2 | |
| CANN 5.1.RC1 | 1.5.0 | 1.5.0.post5 | v1.5.0-3.0.rc1 |
| 1.8.1 | 1.8.1.rc1 | v1.8.1-3.0.rc1 | |
| CANN 5.0.4 | 1.5.0 | 1.5.0.post4 | 2.0.4.tr5 |
| CANN 5.0.3 | 1.8.1 | 1.5.0.post3 | 2.0.3.tr5 |
| CANN 5.0.2 | 1.5.0 | 1.5.0.post2 | 2.0.2.tr5 |
环境部署
TorchNPU插件的安装操作,具体请参见《软件安装》。
快速入门
以CNN模型为例,介绍将其迁移至昇腾NPU上进行训练的方法,具体操作请参见《快速入门》。
特性介绍
TorchNPU插件从内存管理、分布式、算子下发、故障诊断等方面精心打造了一系列独特的特性。为用户提供了一个高效、便捷的开发工具。
- 内存管理:具体请参考内存管理。
- 分布式:具体请参考分布式。
- 算子下发:具体请参考算子下发。
- 故障诊断:具体请参考故障诊断。
- NPUGraph:具体请参考NPUGraph。
- 自定义算子适配开发:具体请参考自定义算子适配开发。
API参考
建议与交流
欢迎大家为社区做贡献。如果有任何疑问或建议,请提交GitCode Issues,我们会尽快回复。感谢您的支持。
分支维护策略
TorchNPU版本分支的维护阶段如下:
| 状态 | 时间 | 说明 |
|---|---|---|
| 计划 | 1—3 个月 | 计划特性 |
| 开发 | 6—12 个月 | 开发新特性并修复问题,定期发布新版本。针对不同的PyTorch版本采取不同的策略,常规分支的开发周期分别为6个月,长期支持分支的开发周期为12个月 |
| 维护 | 1年/3.5年 | 常规分支维护1年,长期支持分支维护3.5年。对重大BUG进行修复,不合入新特性,并视BUG的影响发布补丁版本 |
| 生命周期终止(EOL) | N/A | 分支不再接受任何修改 |
PyTorch版本维护策略
| PyTorch版本 | 维护策略 | 当前状态 | 发布时间 | 后续状态 | EOL日期 |
|---|---|---|---|---|---|
| 2.12.0 | 常规分支 | 开发 | 2026/05/10 | 预计2026/11/23起进入维护状态 | - |
| 2.11.0 | 常规分支 | 开发 | 2026/03/23 | 预计2026/09/23起进入维护状态 | - |
| 2.10.0 | 常规分支 | 开发 | 2026/01/22 | 预计2026/07/22起进入维护状态 | - |
| 2.9.0 | 常规分支 | 开发 | 2025/10/15 | 预计2026/03/15起进入维护状态 | - |
| 2.8.0 | 常规分支 | 开发 | 2025/10/15 | 预计2026/03/15起进入维护状态 | - |
| 2.7.1 | 长期分支 | 开发 | 2025/10/15 | 预计2026/10/15起进入维护状态 | - |
| 2.6.0 | 常规分支 | 开发 | 2025/07/25 | 预计2026/01/25起进入维护状态 | - |
| 2.5.1 | 常规分支 | 维护 | 2024/11/08 | 预计2026/08/08起进入无维护状态 | - |
| 2.4.0 | 常规分支 | 维护 | 2024/10/15 | 预计2026/06/15起进入无维护状态 | - |
| 2.3.1 | 常规分支 | 维护 | 2024/06/06 | 预计2026/06/07起进入无维护状态 | |
| 2.2.0 | 常规分支 | EOL | 2024/04/01 | 2025/10/14 | |
| 2.1.0 | 长期支持 | 维护 | 2023/10/15 | 预计2026/12/30起进入无维护状态 | |
| 2.0.1 | 常规分支 | EOL | 2023/7/19 | 2024/3/14 | |
| 1.11.0 | 长期支持 | EOL | 2023/4/19 | 2025/10/25 | |
| 1.8.1 | 长期支持 | EOL | 2022/4/10 | 2023/4/10 | |
| 1.5.0 | 长期支持 | EOL | 2021/7/29 | 2022/7/29 |
贡献指导
介绍如何向TorchNPU插件库贡献代码,具体请参见TorchNPU插件 贡献指南。
联系我们
欢迎大家为社区做贡献。如果有任何疑问或建议,请提交GitCode Issues,我们会尽快回复。感谢您的支持。
安全声明
TorchNPU的系统安全加固、运行用户建议和文件权限控制等内容,请参见TorchNPU插件 安全声明。
免责声明
致TorchNPU插件使用者
- 本插件仅供调试和开发使用,使用者需自行承担使用风险,并理解以下内容:
- 数据处理及删除:用户在使用本插件过程中产生的数据属于用户责任范畴。建议用户在使用完毕后及时删除相关数据,以防信息泄露。
- 数据保密与传播:使用者了解并同意不得将通过本插件产生的数据随意外发或传播。对于由此产生的信息泄露、数据泄露或其他不良后果,本插件及其开发者概不负责。
- 用户输入安全性:用户需自行保证输入的命令行的安全性,并承担因输入不当而导致的任何安全风险或损失。对于输入命令行不当所导致的问题,本插件及其开发者概不负责。
- 免责声明范围:本免责声明适用于所有使用本插件的个人或实体。使用本插件即表示您同意并接受本声明的内容,并愿意承担因使用该功能而产生的风险和责任,如有异议请停止使用本插件。
- 在使用本工具之前,请谨慎阅读并理解以上免责声明的内容。对于使用本插件所产生的任何问题或疑问,请及时联系开发者。
License
TorchNPU插件的使用许可证,具体请参见LICENSE文件。
致谢
感谢来自社区的每一个PR,欢迎贡献TorchNPU插件!