已合并
solve the problem of garbled characters in the doc #853
yangyang016创建于 1月21日
solve the problem of garbled characters in the doc #853
已合并
yangyang016创建于 1月21日
8 个文件变更+20-20
@@ -45,7 +45,7 @@
45 如在 Issue 交流中未能达成共识,建议申报 SIG 组双周例会,在会议中进行进一步讨论。45 如在 Issue 交流中未能达成共识,建议申报 SIG 组双周例会,在会议中进行进一步讨论。
46 46 
47 #### 3. 提交 PR 47 #### 3. 提交 PR
48- 在方案确定后,即可开始开发工作。新增算子的交付内容可基于最小交付件结构调整,请参考以下最小交付件进行检查。其中 `${op_name}` 为新增算子名称。48+ 在方案确定后,即可开始开发工作。新增算子的交付内容可基于最小交付件结构调整,请参考以下最小交付件进行检查。其中 ```${op_name}``` 为新增算子名称。
49 ```49 ```
50 ${op_class} # 算子分类50 ${op_class} # 算子分类
51 ├── ${op_name} # 算子名51 ├── ${op_name} # 算子名
@@ -145,7 +145,7 @@ Self-extractable archive "cann-ops-nn-custom-linux.${arch}.run" successfully cre
145```bash145```bash
146./build_out/cann-ops-nn-*linux*.run146./build_out/cann-ops-nn-*linux*.run
147```147```
148-`AddExample`安装在`${ASCEND_HOME_PATH}/opp/vendors`路径中,`${ASCEND_HOME_PATH}`表示CANN软件安装目录。148+`AddExample`安装在```${ASCEND_HOME_PATH}/opp/vendors```路径中,```${ASCEND_HOME_PATH}```表示CANN软件安装目录。
149 149 
150### 4. 配置环境变量150### 4. 配置环境变量
151 151 
@@ -4,15 +4,15 @@
4 4 
5本章提供了离线编译安装指导,在此之前请确保已按[环境部署](./quick_install.md)完成基础环境搭建。5本章提供了离线编译安装指导,在此之前请确保已按[环境部署](./quick_install.md)完成基础环境搭建。
6## 获取依赖6## 获取依赖
7-离线编译时,需手动安装如下依赖,否则无法正常编译和执行算子,其中`${cann_3rd_lib_path}`表示第三方软件存放的目录。7+离线编译时,需手动安装如下依赖,否则无法正常编译和执行算子,其中```${cann_3rd_lib_path}```表示第三方软件存放的目录。
8 8 
9- 依赖json9- 依赖json
10 10 
11-下载[json](https://gitcode.com/cann-src-third-party/json/releases/download/v3.11.3/include.zip),并解压到`${cann_3rd_lib_path}/json/include`,若无该目录请自行创建。11+下载[json](https://gitcode.com/cann-src-third-party/json/releases/download/v3.11.3/include.zip),并解压到```${cann_3rd_lib_path}/json/include```,若无该目录请自行创建。
12 12 
13- 依赖makeself13- 依赖makeself
14 14 
15-下载[makeself](https://gitcode.com/cann-src-third-party/makeself/releases/download/release-2.5.0-patch1.0/makeself-release-2.5.0-patch1.tar.gz),并解压到`${cann_3rd_lib_path}/makeself`,若无该目录请自行创建。15+下载[makeself](https://gitcode.com/cann-src-third-party/makeself/releases/download/release-2.5.0-patch1.0/makeself-release-2.5.0-patch1.tar.gz),并解压到```${cann_3rd_lib_path}/makeself```,若无该目录请自行创建。
16 16 
17## 离线编译(自定义算子包)17## 离线编译(自定义算子包)
18自定义算子包编译时,需增加--cann_3rd_lib_path配置选项并指定路径,命令如下:18自定义算子包编译时,需增加--cann_3rd_lib_path配置选项并指定路径,命令如下:
@@ -65,10 +65,10 @@ ${op_name} # 替换为实际算子名的小写下
65└── CMakeLists.txt # 算子cmakelist入口65└── CMakeLists.txt # 算子cmakelist入口
66```66```
67 67 
68-若`${op_class}`为全新算子分类,需额外在`cmake/variables.cmake`的`OP_CATEGORY_LIST`中添加`${op_class}`,否则无法正常编译。68+若```${op_class}```为全新算子分类,需额外在`cmake/variables.cmake`的`OP_CATEGORY_LIST`中添加```${op_class}```,否则无法正常编译。
69 69 
70## 算子定义70## 算子定义
71-算子定义需要完成两个交付件:`README.md` `${op_name}_def.cpp`71+算子定义需要完成两个交付件:`README.md` ```${op_name}_def.cpp```
72 72 
73**交付件1:README.md**73**交付件1:README.md**
74 74 
@@ -91,7 +91,7 @@ ${op_name} # 替换为实际算子名的小写下
91 91 
92### 代码实现92### 代码实现
93 93 
94-Tiling一共需要三个交付件:`${op_name}_tiling.cpp` `${op_name}_tiling_key.h` `${op_name}_tiling_data.h`94+Tiling一共需要三个交付件:```${op_name}_tiling.cpp``` ```${op_name}_tiling_key.h``` ```${op_name}_tiling_data.h```
95 95 
96**交付件1:${op_name}_tiling.cpp**96**交付件1:${op_name}_tiling.cpp**
97 97 
@@ -218,7 +218,7 @@ graph LR
218 218 
219### 代码实现219### 代码实现
220 220 
221-Kernel一共需要两个交付件:`${op_name}.cpp` `${op_name}.h`221+Kernel一共需要两个交付件:```${op_name}.cpp``` ```${op_name}.h```
222 222 
223**交付件1:${op_name}.cpp**223**交付件1:${op_name}.cpp**
224 224 
@@ -377,11 +377,11 @@ __aicore__ inline void AddExample<T>::Process()
377 # 安装run包377 # 安装run包
378 ./build_out/cann-ops-nn-${vendor_name}-linux.${arch}.run378 ./build_out/cann-ops-nn-${vendor_name}-linux.${arch}.run
379 ```379 ```
380- 自定义算子包安装在`${ASCEND_HOME_PATH}/opp/vendors`路径中,`${ASCEND_HOME_PATH}`表示CANN软件安装目录,可提前在环境变量中配置。380+ 自定义算子包安装在```${ASCEND_HOME_PATH}/opp/vendors```路径中,```${ASCEND_HOME_PATH}```表示CANN软件安装目录,可提前在环境变量中配置。
381 381 
3824. **(可选)卸载自定义算子包。**3824. **(可选)卸载自定义算子包。**
383 383 
384- 自定义算子包安装后在`${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts`目录会生成`uninstall.sh`,通过该脚本可卸载自定义算子包,命令如下:384+ 自定义算子包安装后在```${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts```目录会生成`uninstall.sh`,通过该脚本可卸载自定义算子包,命令如下:
385 ```bash385 ```bash
386 bash ${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts/uninstall.sh386 bash ${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts/uninstall.sh
387 ```387 ```
@@ -59,10 +59,10 @@ ${op_name} # 替换为实际算子名的小写下
59└── CMakeLists.txt # 算子Cmakelist入口59└── CMakeLists.txt # 算子Cmakelist入口
60```60```
61 61 
62-若`${op_class}`为全新算子分类,需额外在`cmake/variables.cmake`的`OP_CATEGORY_LIST`中添加`${op_class}`,否则无法正常编译。62+若```${op_class}```为全新算子分类,需额外在`cmake/variables.cmake`的`OP_CATEGORY_LIST`中添加```${op_class}```,否则无法正常编译。
63 63 
64## 算子定义64## 算子定义
65-算子定义需要完成两个交付件:`README.md` `${op_name}.json`65+算子定义需要完成两个交付件:`README.md` ```${op_name}.json```
66 66 
67**交付件1:README.md**67**交付件1:README.md**
68 68 
@@ -89,13 +89,13 @@ graph LR
89```89```
90### 代码实现90### 代码实现
91 91 
92-Kernel一共需要两个交付件:`${op_name}_aicpu.cpp` `${op_name}_aicpu.h`92+Kernel一共需要两个交付件:```${op_name}_aicpu.cpp``` ```${op_name}_aicpu.h```
93 93 
94**交付件1:${op_name}_aicpu.h**94**交付件1:${op_name}_aicpu.h**
95 95 
96算子类声明96算子类声明
97 97 
98-Kernel实现的第一步,需在头文件`op_kernel_aicpu/${op_name}_aicpu.h`进行算子类的声明,算子类需继承CpuKernel基类。98+Kernel实现的第一步,需在头文件```op_kernel_aicpu/${op_name}_aicpu.h```进行算子类的声明,算子类需继承CpuKernel基类。
99如需查看详细实现,请参考[add_example_aicpu.h](../../../examples/add_example_aicpu/op_kernel_aicpu/add_example_aicpu.h)。99如需查看详细实现,请参考[add_example_aicpu.h](../../../examples/add_example_aicpu/op_kernel_aicpu/add_example_aicpu.h)。
100 100 
101 101 
@@ -211,11 +211,11 @@ REGISTER_CPU_KERNEL(kAddExample, AddExampleCpuKernel);
211 # 安装run包211 # 安装run包
212 ./build_out/cann-ops-nn-${vendor_name}-linux.${arch}.run212 ./build_out/cann-ops-nn-${vendor_name}-linux.${arch}.run
213 ```213 ```
214- 自定义算子包安装在`${ASCEND_HOME_PATH}/opp/vendors`路径中,`${ASCEND_HOME_PATH}`表示CANN软件安装目录,可提前在环境变量中配置。214+ 自定义算子包安装在```${ASCEND_HOME_PATH}/opp/vendors```路径中,```${ASCEND_HOME_PATH}```表示CANN软件安装目录,可提前在环境变量中配置。
215 215
2164. **(可选)卸载自定义算子包。**2164. **(可选)卸载自定义算子包。**
217 217 
218- 自定义算子包安装后在`${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts`目录会生成`uninstall.sh`,通过该脚本可卸载自定义算子包,命令如下:218+ 自定义算子包安装后在```${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts```目录会生成`uninstall.sh`,通过该脚本可卸载自定义算子包,命令如下:
219 219
220 ```bash220 ```bash
221 bash ${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts/uninstall.sh221 bash ${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts/uninstall.sh
@@ -16,7 +16,7 @@ ${op_name} # 替换为实际算子名的小写下
16 16 
17## Shape与DataType推导17## Shape与DataType推导
18 18 
19-图模式需要完成两个交付件 `${op_name}_graph_infer.cpp` `${op_name}_infershape.cpp`19+图模式需要完成两个交付件 ```${op_name}_graph_infer.cpp``` ```${op_name}_infershape.cpp```
20 20 
21**交付件1:${op_name}_infershape.cpp**21**交付件1:${op_name}_infershape.cpp**
22 22 
@@ -48,7 +48,7 @@
48 48 
493. **(可选)卸载自定义算子包**493. **(可选)卸载自定义算子包**
50 50 
51- 自定义算子包安装后在`${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts`目录会生成`uninstall.sh`脚本,通过执行该脚本可卸载自定义算子包,具体命令如下:51+ 自定义算子包安装后在```${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts```目录会生成`uninstall.sh`脚本,通过执行该脚本可卸载自定义算子包,具体命令如下:
52 ```bash52 ```bash
53 bash ${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts/uninstall.sh53 bash ${ASCEND_HOME_PATH}/opp/vendors/${vendor_name}_nn/scripts/uninstall.sh
54 ```54 ```
@@ -4,7 +4,7 @@
4 4 
5为方便调用算子,提供一套基于C的API(以aclnn为前缀API),无需提供IR(Intermediate Representation)定义,方便高效构建模型与应用开发,该方式被称为“单算子API调用”,简称aclnn调用。5为方便调用算子,提供一套基于C的API(以aclnn为前缀API),无需提供IR(Intermediate Representation)定义,方便高效构建模型与应用开发,该方式被称为“单算子API调用”,简称aclnn调用。
6 6 
7-调用算子API时,需引用依赖的头文件和库文件,一般头文件默认在`${INSTALL_DIR}/include/aclnnop`,库文件默认在`${INSTALL_DIR}/lib64`,具体文件如下:7+调用算子API时,需引用依赖的头文件和库文件,一般头文件默认在```${INSTALL_DIR}/include/aclnnop```,库文件默认在```${INSTALL_DIR}/lib64```,具体文件如下:
8 8 
9- 依赖的头文件:①方式1 (推荐):引用算子总头文件aclnn\_ops\_\$\{ops\_project\}.h。②方式2:按需引用单算子API头文件aclnn\_\*.h。9- 依赖的头文件:①方式1 (推荐):引用算子总头文件aclnn\_ops\_\$\{ops\_project\}.h。②方式2:按需引用单算子API头文件aclnn\_\*.h。
10- 依赖的库文件:按需引用算子总库文件libopapi\_\$\{ops\_project\}.so。10- 依赖的库文件:按需引用算子总库文件libopapi\_\$\{ops\_project\}.so。