已合并
[docs]产品名称修改 #5621
chenzhenxi创建于 7月30日
[docs]产品名称修改 #5621
已合并
chenzhenxi创建于 7月30日
13 个文件变更+27-27
@@ -4,7 +4,7 @@
4 4 
5## 项目介绍5## 项目介绍
6 6 
7-OpPlugin 是 Ascend Extension for PyTorch(torch_npu)的算子插件,为使用 PyTorch 框架的开发者提供便捷的 NPU 算子库调用能力。本项目旨在为 torch_npu 提供运行所需要的算子适配文件。7+OpPlugin 是 TorchNPU 的算子插件,为使用 PyTorch 框架的开发者提供便捷的 NPU 算子库调用能力。本项目旨在为 TorchNPU 提供运行所需要的算子适配文件。
8 8 
9### 项目架构9### 项目架构
10 10 
@@ -76,7 +76,7 @@ op-plugin
76 76 
77**Bug Report 格式**77**Bug Report 格式**
78 78 
79-- **环境信息**:OpPlugin 版本、torch_npu 版本、Python 版本、CANN 版本等79+- **环境信息**:OpPlugin 版本、TorchNPU 版本、Python 版本、CANN 版本等
80- **问题描述**:添加标签以便在问题仪表板上突出显示80- **问题描述**:添加标签以便在问题仪表板上突出显示
81- **复现步骤**:尽可能详细地描述如何重现问题81- **复现步骤**:尽可能详细地描述如何重现问题
82- **预期行为**:描述您预期发生的行为82- **预期行为**:描述您预期发生的行为
@@ -1,6 +1,6 @@
1# OpPlugin 开发镜像1# OpPlugin 开发镜像
2 2 
3-本目录提供 Dockerfile 及构建脚本,用于生成 OpPlugin 的构建与开发镜像:`builder` 镜像提供包含 OpPlugin 源码的 torch_npu wheel 编译环境(不含 CANN),`dev` 镜像在此基础上叠加 CANN 运行环境。3+本目录提供 Dockerfile 及构建脚本,用于生成 OpPlugin 的构建与开发镜像:`builder` 镜像提供包含 OpPlugin 源码的 TorchNPU wheel 编译环境(不含 CANN),`dev` 镜像在此基础上叠加 CANN 运行环境。
4 4 
5## 1 镜像介绍5## 1 镜像介绍
6 6 
@@ -12,7 +12,7 @@ base manylinux + Python 软链接 + pip 源 + 基础系统包(curl/wget
12 └── dev builder + CANN(Toolkit + Ops + NNAL 可选) ← 运行环境12 └── dev builder + CANN(Toolkit + Ops + NNAL 可选) ← 运行环境
13```13```
14 14 
15-- **builder**(默认):用于编译包含当前 OpPlugin 源码的 torch_npu wheel,不含 CANN15+- **builder**(默认):用于编译包含当前 OpPlugin 源码的 TorchNPU wheel,不含 CANN
16- **dev**:基于 builder,叠加 CANN 运行环境;继承全部编译工具链,可在容器内直接编译和调试 OpPlugin16- **dev**:基于 builder,叠加 CANN 运行环境;继承全部编译工具链,可在容器内直接编译和调试 OpPlugin
17 17 
18> Dockerfile会自动根据当前架构(ARM/X86)拉取对应镜像。18> Dockerfile会自动根据当前架构(ARM/X86)拉取对应镜像。
@@ -111,7 +111,7 @@ bash builder.sh --cann --no-cache # 含 CANN 且不使用
111 111 
112## 3 启动容器112## 3 启动容器
113 113 
114-> torch_npu **编译**无需 CANN/驱动;CANN 与 NPU 驱动仅在**运行时**(`import torch_npu`、调用 NPU 算子)需要。因此根据镜像类型选择不同的启动方式。114+> TorchNPU **编译**无需 CANN/驱动;CANN 与 NPU 驱动仅在**运行时**(`import torch_npu`、调用 NPU 算子)需要。因此根据镜像类型选择不同的启动方式。
115>115>
116> 若已通过 `builder.sh` 构建,脚本会自动构建镜像并启动容器,可直接执行下方的 `docker exec` 命令进入容器;本节其余命令仅适用于手动执行 `docker build` 后需自行启动容器的场景。116> 若已通过 `builder.sh` 构建,脚本会自动构建镜像并启动容器,可直接执行下方的 `docker exec` 命令进入容器;本节其余命令仅适用于手动执行 `docker build` 后需自行启动容器的场景。
117 117 
@@ -1,6 +1,6 @@
1# aclnn_extension 样例说明1# aclnn_extension 样例说明
2 2 
3-本样例是 **「自定义算子接入 - 结构化代码生成」** 的示例工程,演示如何通过 YAML 描述 + 代码生成工具,将自定义 aclnn 算子接入 PyTorch NPU 生态,并生成可参与 torch_npu 编译的适配代码。3+本样例是 **「自定义算子接入 - 结构化代码生成」** 的示例工程,演示如何通过 YAML 描述 + 代码生成工具,将自定义 aclnn 算子接入 Ascned for Pytorch 生态,并生成可参与 TorchNPU 编译的适配代码。
4 4 
5## 适用场景5## 适用场景
6 6 
@@ -15,8 +15,8 @@
15 15 
16## 环境与依赖16## 环境与依赖
17 17 
18-- **运行/编译依赖**:PyTorch、torch_npu、CANN。 18+- **运行/编译依赖**:PyTorch、TorchNPU、CANN。
19- 安装与版本要求见 [torch_npu 安装说明](https://gitcode.com/ascend/pytorch#%E5%AE%89%E8%A3%85)。19+ 安装与版本要求见 [TorchNPU 安装说明](https://gitcode.com/ascend/pytorch#%E5%AE%89%E8%A3%85)。
20 20 
21## 目录与文件结构21## 目录与文件结构
22 22 
@@ -178,11 +178,11 @@ python test_npu_fast_gelu_custom.py
178| 2 | `torchnpugen.gen_derivatives` | 仅当传入 `$2` 时执行;根据 derivatives YAML 生成前反向绑定文件 `derivatives.yaml` | `--version``--output_dir``--source_yaml`(传入的 derivatives YAML) |178| 2 | `torchnpugen.gen_derivatives` | 仅当传入 `$2` 时执行;根据 derivatives YAML 生成前反向绑定文件 `derivatives.yaml` | `--version``--output_dir``--source_yaml`(传入的 derivatives YAML) |
179| 3 | `torchnpugen.gen_op_backend` | 根据 `op_plugin_functions.yaml` 生成 op_plugin 对外接口与路由(如 OpInterface、OpApiInterface 等) | `--version`、`--output_dir`(`op_plugin/`)、`--source_yaml`(上一步生成的 `op_plugin_functions.yaml`)、`--deprecate_yaml` |179| 3 | `torchnpugen.gen_op_backend` | 根据 `op_plugin_functions.yaml` 生成 op_plugin 对外接口与路由(如 OpInterface、OpApiInterface 等) | `--version`、`--output_dir`(`op_plugin/`)、`--source_yaml`(上一步生成的 `op_plugin_functions.yaml`)、`--deprecate_yaml` |
180| 4 | `torchnpugen.struct.gen_struct_opapi` | 根据算子 YAML 与 `op_plugin_functions.yaml` 生成 aclnn 结构化适配实现(如 `StructKernelNpuOpApi.cpp`) | `--output_dir``op_plugin/ops/opapi/`)、`--native_yaml``op_plugin_functions.yaml`)、`--struct_yaml`(传入的算子 YAML) |180| 4 | `torchnpugen.struct.gen_struct_opapi` | 根据算子 YAML 与 `op_plugin_functions.yaml` 生成 aclnn 结构化适配实现(如 `StructKernelNpuOpApi.cpp`) | `--output_dir``op_plugin/ops/opapi/`)、`--native_yaml``op_plugin_functions.yaml`)、`--struct_yaml`(传入的算子 YAML) |
181-| 5 | `torchnpugen.gen_backend_stubs` | 根据 `test_native_functions.yaml` 等生成 torch_npu 侧 backend stub 代码到 `csrc/aten` | `--output_dir`、`--source_yaml`(当前为 `./test_native_functions.yaml`)、`--impl_path`、`--op_plugin_impl_path`、`--op_plugin_yaml_path` |181+| 5 | `torchnpugen.gen_backend_stubs` | 根据 `test_native_functions.yaml` 等生成 TorchNPU 侧 backend stub 代码到 `csrc/aten` | `--output_dir`、`--source_yaml`(当前为 `./test_native_functions.yaml`)、`--impl_path`、`--op_plugin_impl_path`、`--op_plugin_yaml_path` |
182| 6 | `torchnpugen.autograd.gen_autograd` | 根据 `test_native_functions.yaml` 生成 autograd 相关代码到 `csrc/aten``autograd` | `--out_dir``--autograd_dir``--npu_native_function_dir`(当前为 `./test_native_functions.yaml`) |182| 6 | `torchnpugen.autograd.gen_autograd` | 根据 `test_native_functions.yaml` 生成 autograd 相关代码到 `csrc/aten``autograd` | `--out_dir``--autograd_dir``--npu_native_function_dir`(当前为 `./test_native_functions.yaml`) |
183 183 
184- **步骤 1~4** 使用算子 YAML 和生成的 `op_plugin_functions.yaml`,产出在 `op_plugin/` 下,是 aclnn 扩展适配的核心。184- **步骤 1~4** 使用算子 YAML 和生成的 `op_plugin_functions.yaml`,产出在 `op_plugin/` 下,是 aclnn 扩展适配的核心。
185-- **步骤 5~6** 使用 `test_native_functions.yaml`,产出在 `csrc/aten`、`autograd`,用于与 torch_npu 侧的注册与求导衔接。185+- **步骤 5~6** 使用 `test_native_functions.yaml`,产出在 `csrc/aten`、`autograd`,用于与 TorchNPU 侧的注册与求导衔接。
186 186 
187### 自定义时可调整的内容187### 自定义时可调整的内容
188 188 
@@ -50,8 +50,8 @@
50#### Aten IR实现50#### Aten IR实现
51 51 
52根据Aten IR定义适配算子。52根据Aten IR定义适配算子。
53-TORCH_NPU的算子下发和执行是异步的,通过TASKQUEUE实现,53+TorchNPU的算子下发和执行是异步的,通过TASKQUEUE实现,
54-样例中,我们通过`at_npu::native::OpCommand::RunOpApiV2`方法,将算子执行入队到TORCH_NPU的TASKQUEUE。样例如下:54+样例中,我们通过`at_npu::native::OpCommand::RunOpApiV2`方法,将算子执行入队到TorchNPU的TASKQUEUE。样例如下:
55 55 
56 ```c++56 ```c++
57#include "torch_npu/csrc/core/npu/NPUStream.h"57#include "torch_npu/csrc/core/npu/NPUStream.h"
@@ -96,7 +96,7 @@ output = op_extension.ops.custom_add(x_npu, y_npu)
96 96 
97## 运行自定义的算子97## 运行自定义的算子
98 98 
99- 运行依赖torchtorch_npu和CANN。具体安装步骤参考[torch_npu文档](https://gitcode.com/ascend/pytorch#%E5%AE%89%E8%A3%85)99+ 运行依赖PyTorchTorchNPU和CANN。具体安装步骤参考[TorchNPU文档](https://gitcode.com/ascend/pytorch#%E5%AE%89%E8%A3%85)
100 运行流程:100 运行流程:
101 101 
102 1. 运行setup脚本,编译生成whl包。102 1. 运行setup脚本,编译生成whl包。
@@ -157,6 +157,6 @@ output = op_extension.ops.custom_add(x_npu, y_npu)
157 157
158### 3. 版本兼容性158### 3. 版本兼容性
159 159 
160-- 确保 PyTorch、torch_npu 和 CANN 版本兼容160+- 确保 PyTorch、TorchNPU 和 CANN 版本兼容
161- 版本不匹配可能导致编译或运行时错误161- 版本不匹配可能导致编译或运行时错误
162-- 参考 [torch_npu 文档](https://gitcode.com/ascend/pytorch#%E5%AE%89%E8%A3%85) 获取兼容版本信息162+- 参考 [TorchNPU 文档](https://gitcode.com/ascend/pytorch#%E5%AE%89%E8%A3%85) 获取兼容版本信息
@@ -1,6 +1,6 @@
1# 适配开发及调用(AscendC)1# 适配开发及调用(AscendC)
2 2 
3-基于C++ extensions方式,通过torch_npu框架调用AscendC自定义算子的完整适配开发流程。本样例展示了如何将AscendC算子集成到PyTorch生态中,实现高效的NPU加速计算。3+基于C++ extensions方式,通过TorchNPU框架调用AscendC自定义算子的完整适配开发流程。本样例展示了如何将AscendC算子集成到Ascend for PyTorch生态中,实现高效的NPU加速计算。
4 4 
5## 算子适配开发5## 算子适配开发
6 6 
@@ -1,6 +1,6 @@
1# 适配开发及调用(基础样例)1# 适配开发及调用(基础样例)
2 2 
3-本文档基于C++ extensions方式,使用torch_npu单算子API进行适配开发的完整流程。流程涵盖了算子定义、算子适配、ATen IR注册绑定,最终实现调用自定义算子。3+本文档基于C++ extensions方式,使用TorchNPU单算子API进行适配开发的完整流程。流程涵盖了算子定义、算子适配、ATen IR注册绑定,最终实现调用自定义算子。
4 4 
5## 算子适配开发5## 算子适配开发
6 6 
@@ -1,6 +1,6 @@
1# 适配开发及调用(完整样例-module)1# 适配开发及调用(完整样例-module)
2 2 
3-基于C++ extensions方式,通过torch_npu来调用单算子API的适配开发过程,其中前反向绑定通过Python类的`forward`和`backward`注册实现。3+基于C++ extensions方式,通过TorchNPU来调用单算子API的适配开发过程,其中前反向绑定通过Python类的`forward`和`backward`注册实现。
4 4 
5## 算子适配开发5## 算子适配开发
6 6 
@@ -1,6 +1,6 @@
1# 适配开发及调用(完整样例-TORCH_LIBRARY_IMPL)1# 适配开发及调用(完整样例-TORCH_LIBRARY_IMPL)
2 2 
3-基于C++ extensions方式,通过torch_npu来调用单算子API的适配开发过程,其中前反向绑定通过PyTorch中`TORCH_LIBRARY_IMPL`注册实现。3+基于C++ extensions方式,通过TorchNPU来调用单算子API的适配开发过程,其中前反向绑定通过PyTorch中`TORCH_LIBRARY_IMPL`注册实现。
4 4 
5## 算子适配开发5## 算子适配开发
6 6 
@@ -1,6 +1,6 @@
1# 适配开发及调用(pybind)1# 适配开发及调用(pybind)
2 2 
3-本文档基于C++ extensions方式,使用torch_npu单算子API进行适配开发的完整流程。流程涵盖了算子定义、算子适配、ATen IR注册绑定,最终实现调用自定义算子。区别于常见的TORCH_LIBRARY方式,本用例采用PYBIND进行绑定注册,以获得更灵活的输入类型支持。3+本文档基于C++ extensions方式,使用TorchNPU单算子API进行适配开发的完整流程。流程涵盖了算子定义、算子适配、ATen IR注册绑定,最终实现调用自定义算子。区别于常见的TORCH_LIBRARY方式,本用例采用PYBIND进行绑定注册,以获得更灵活的输入类型支持。
4 4 
5## 算子适配开发5## 算子适配开发
6 6 
@@ -1,6 +1,6 @@
1# 算子适配开发及调用(结构化)1# 算子适配开发及调用(结构化)
2 2 
3-本文档介绍基于C++ extensions方式与torch_npu单算子API进行自定义NPU算子适配开发的完整流程,流程涵盖了算子定义、算子适配、ATen IR注册绑定。本样例重点阐述结构化内核适配方法,该方法适用于aclnn接口与ATen IR语义一致,且适配层逻辑仅需负责output tensor申请的场景。3+本文档介绍基于C++ extensions方式与TorchNPU单算子API进行自定义NPU算子适配开发的完整流程,流程涵盖了算子定义、算子适配、ATen IR注册绑定。本样例重点阐述结构化内核适配方法,该方法适用于aclnn接口与ATen IR语义一致,且适配层逻辑仅需负责output tensor申请的场景。
4 4 
5## 算子适配开发5## 算子适配开发
6 6 
@@ -121,10 +121,10 @@
121 121 
122- 环境安装122- 环境安装
123 123
124-1. 请参考与您当前使用的版本配套的[《Ascend Extension for PyTorch124+1. 请参考与您当前使用的版本配套的[《TorchNPU
125- 软件安装指南》](https://www.hiascend.com/document/detail/zh/Pytorch/720/configandinstg/instg/insg_0001.html),获取PyTorch和torch_npu详细的安装步骤。125+ 软件安装指南》](https://www.hiascend.com/document/detail/zh/Pytorch/720/configandinstg/instg/insg_0001.html),获取PyTorch和TorchNPU详细的安装步骤。
126 126
127- 本样例需torch2.6.0及以上版本,支持`backend="npugraph_ex"`需torch_npu 7.3.0及以上版本。127+ 本样例需torch2.6.0及以上版本,支持`backend="npugraph_ex"`需TorchNPU 7.3.0及以上版本。
1282. 根据实际环境安装CANN toolkit包,本样例需8.5.0及以上版本,安装指导详见《[CANN 软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstSoftware)》。1282. 根据实际环境安装CANN toolkit包,本样例需8.5.0及以上版本,安装指导详见《[CANN 软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstSoftware)》。
1293. 根据实际环境安装CANN ops包。根据产品型号和环境架构,下载对应安装包,可参考[下载链接](https://ascend.devcloud.huaweicloud.com/cann/run/software/8.5.0-beta.1)并执行如下命令安装:1293. 根据实际环境安装CANN ops包。根据产品型号和环境架构,下载对应安装包,可参考[下载链接](https://ascend.devcloud.huaweicloud.com/cann/run/software/8.5.0-beta.1)并执行如下命令安装:
130 130
@@ -121,10 +121,10 @@
121 121 
122- 环境安装122- 环境安装
123 123
124-1. 请参考与您当前使用的版本配套的[《Ascend Extension for PyTorch124+1. 请参考与您当前使用的版本配套的[《TorchNPU
125 软件安装指南》](https://www.hiascend.com/document/detail/zh/Pytorch/720/configandinstg/instg/insg_0001.html),获取PyTorch和torch_npu详细的安装步骤。125 软件安装指南》](https://www.hiascend.com/document/detail/zh/Pytorch/720/configandinstg/instg/insg_0001.html),获取PyTorch和torch_npu详细的安装步骤。
126 126
127- 本样例需torch2.6.0及以上版本,支持`backend="npugraph_ex"`需7.3.0及以上版本。127+ 本样例需torch2.6.0及以上版本,支持`backend="npugraph_ex"`需TorchNPU 7.3.0及以上版本。
1282. 根据实际环境安装CANN toolkit包,本样例需8.5.0及以上版本,安装指导详见《[CANN 软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstSoftware)》。1282. 根据实际环境安装CANN toolkit包,本样例需8.5.0及以上版本,安装指导详见《[CANN 软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstSoftware)》。
1293. 根据实际环境安装CANN ops包。根据产品型号和环境架构,下载对应安装包,可参考[下载链接](https://ascend.devcloud.huaweicloud.com/cann/run/software/8.5.0-beta.1)并执行如下命令安装:1293. 根据实际环境安装CANN ops包。根据产品型号和环境架构,下载对应安装包,可参考[下载链接](https://ascend.devcloud.huaweicloud.com/cann/run/software/8.5.0-beta.1)并执行如下命令安装:
130 130
@@ -278,7 +278,7 @@ Pytorch的算子自动反向微分依赖于算子的前反向绑定,即前向
278 278 
279- 适配前向和反向算子: 与上节算子适配开发中一致,分别适配前向算子和反向算子,并在op_plugin_functions.yaml中配置前向和反向算子。279- 适配前向和反向算子: 与上节算子适配开发中一致,分别适配前向算子和反向算子,并在op_plugin_functions.yaml中配置前向和反向算子。
280- 配置前反向绑定,将前向和反向算子进行绑定:280- 配置前反向绑定,将前向和反向算子进行绑定:
281- Op-plugin与原生PyTorch一致,通过derivatives.yaml,配置算子的前反向绑定关系,如下所示:281+ OpPlugin与原生PyTorch一致,通过derivatives.yaml,配置算子的前反向绑定关系,如下所示:
282 282 
283```yaml283```yaml
284# derivatives.yaml284# derivatives.yaml