已合并
docs: 更新安装文档示例版本及修正算子调用CMake变量名 #2998
陈思创建于 5月28日
docs: 更新安装文档示例版本及修正算子调用CMake变量名 #2998
已合并
陈思创建于 5月28日
5 个文件变更+40-36
@@ -27,14 +27,15 @@ ops-math是[CANN](https://hiascend.com/software/cann) (Compute Architecture fo
27 27 
28## ⬇️源码下载28## ⬇️源码下载
29 29 
30-环境准备好后,下载与CANN版本配套的分支源码,命令如下,\$\{tag\_version\}替换为分支标签名。30+环境准备好后,下载与CANN版本配套的分支源码,通用命令如下,\$\{tag\_version\}替换为分支标签名。以9.0.0分支源码下载为例:
31- 
32-> 说明:若环境中已存在配套分支源码,**可跳过本步骤**,例如CANNLab默认已提供最新商发版CANN对应的源码 。
33 31 
34```bash32```bash
35-git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git33+# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git
34+git clone -b 9.0.0 https://gitcode.com/cann/ops-math.git
36```35```
37 36 
37+> 说明:若环境中已存在配套分支源码,**可跳过本步骤**,例如CANNLab默认已提供最新商发版CANN对应的源码。
38+ 
38## 📖学习教程39## 📖学习教程
39 40 
40- [快速入门](docs/QUICKSTART.md):从零开始快速体验项目核心基础能力,涵盖源码编译、算子调用、开发与调试等操作。41- [快速入门](docs/QUICKSTART.md):从零开始快速体验项目核心基础能力,涵盖源码编译、算子调用、开发与调试等操作。
@@ -55,16 +55,20 @@
55bash build.sh --pkg --soc=${soc_version} --ops=add_example -j1655bash build.sh --pkg --soc=${soc_version} --ops=add_example -j16
56```56```
57 57 
58-\$\{soc\_version\}设置方法如下:58+\$\{soc\_version\}取值请访问[CANN载中心](https://www.hiascend.com/cann/download)
59 59 
60-访问[CANN下载中心](https://www.hiascend.com/cann/download),根据页面提示复制硬件查询命令,在当前环境中执行,返回芯片ID信息,再回填到官网按Enter键获取产品名,产品名对应的${soc_version}取值如下,请按实际场景传参。60+<img src="./zh/figures/socInfo.png" alt="芯片版本" width="800px" height="160px">
61+ 
62+①根据页面提示复制硬件查询命令,在当前环境中执行,返回芯片ID信息。
63+ 
64+②再将ID信息回填到官网,按Enter键获取产品名。
65+ 
66+③产品名对应的${soc_version}取值如下,请按实际场景传参。
61 67 
62- Atlas A2 训练系列产品/Atlas A2 推理系列产品:取值为ascend910b68- Atlas A2 训练系列产品/Atlas A2 推理系列产品:取值为ascend910b
63- Atlas A3 训练系列产品/Atlas A3 推理系列产品:取值为ascend910_9369- Atlas A3 训练系列产品/Atlas A3 推理系列产品:取值为ascend910_93
64- 950系列产品:取值为ascend95070- 950系列产品:取值为ascend950
65 71 
66-<img src="./zh/figures/socInfo.png" alt="芯片版本" width="800px" height="160px">
67- 
68若提示如下信息,说明编译成功。72若提示如下信息,说明编译成功。
69 73 
70```bash74```bash
@@ -99,6 +99,7 @@
99 ```bash99 ```bash
100 # 编译除experimental目录外的所有算子100 # 编译除experimental目录外的所有算子
101 bash build.sh --pkg --soc=${soc_version} [-j${n}]101 bash build.sh --pkg --soc=${soc_version} [-j${n}]
102+ # 如:bash build.sh --pkg --soc=ascend910b -j16
102 # 编译experimental目录下的所有算子103 # 编译experimental目录下的所有算子
103 # bash build.sh --pkg --experimental --soc=${soc_version} [-j${n}]104 # bash build.sh --pkg --experimental --soc=${soc_version} [-j${n}]
104 ```105 ```
@@ -45,18 +45,18 @@
45 45 
461.**安装驱动与固件(运行态依赖)**461.**安装驱动与固件(运行态依赖)**
47 47 
48-宿主机上昇腾驱动与固件的下载和安装操作请参考《[CANN软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstWizard)》中“准备软件包”和“安装NPU驱动和固件”章节。驱动与固件是运行态依赖,若仅编译算子,可以不安装。48+驱动与固件是运行态依赖,若仅编译算子,可以不安装。使用`npu-smi info`检查是否有NPU相关信息,若没有,请参考《[CANN快速安装](https://www.hiascend.com/cann/download)》完成驱动与固件安装。
49 49 
502.**下载镜像**502.**下载镜像**
51 51 
52-- 步骤1:以root用户登录宿主机。确保宿主机已安装Docker引擎(版本1.11.2及以上)。52+- 步骤1:以root用户登录宿主机。确保宿主机已安装Docker引擎(版本1.11.2及以上),使用`docker --version`检查Docker版本,若没有,请参考[Docker官方安装指南](https://docs.docker.com/engine/install/)
53-- 步骤2:从[昇腾镜像仓库](https://www.hiascend.com/developer/ascendhub/detail/17da20d1c2b6493cb38765adeba85884)拉取已预集成CANN软件包及`ops-math`所需依赖的镜像。命令如下,根据实际架构选择:53+- 步骤2:从[昇腾镜像仓库](https://www.hiascend.com/developer/ascendhub/detail/17da20d1c2b6493cb38765adeba85884)拉取已预集成CANN软件包及`ops-math`所需依赖的镜像。
54+ 
55+ 示例如下,请自行替换CANN版本号、芯片系列、操作系统、python版本信息。
54 56 
55 ```bash57 ```bash
56- # :拉取ARM架构的CANN开发镜像58+ # 以cann:9.1.0-beta.1版本为
57- docker pull --platform=arm64 swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops59+ docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-openeuler24.03-py3.12-devel
58- # 示例:拉取X86架构的CANN开发镜像
59- docker pull --platform=amd64 swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops
60 ```60 ```
61 61 
623.**运行Docker**623.**运行Docker**
@@ -64,7 +64,7 @@
64拉取镜像后,需要以特定参数启动容器,以便容器内能访问宿主的昇腾设备。64拉取镜像后,需要以特定参数启动容器,以便容器内能访问宿主的昇腾设备。
65 65 
66```bash66```bash
67-docker run --name cann_container --device /dev/davinci0 --device /dev/davinci_manager --device /dev/devmm_svm --device /dev/hisi_hdc -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info -v /etc/ascend_install.info:/etc/ascend_install.info -it swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops bash67+docker run --name cann_container --device /dev/davinci0 --device /dev/davinci_manager --device /dev/devmm_svm --device /dev/hisi_hdc -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info -v /etc/ascend_install.info:/etc/ascend_install.info -it swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-openeuler24.03-py3.12-devel bash
68```68```
69 69 
70| 参数 | 说明 | 注意事项 |70| 参数 | 说明 | 注意事项 |
@@ -80,7 +80,7 @@ docker run --name cann_container --device /dev/davinci0 --device /dev/davinci_ma
80| `-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info` | 挂载驱动版本信息文件。 | - |80| `-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info` | 挂载驱动版本信息文件。 | - |
81| `-v /etc/ascend_install.info:/etc/ascend_install.info` | 挂载CANN软件安装信息文件。 | - |81| `-v /etc/ascend_install.info:/etc/ascend_install.info` | 挂载CANN软件安装信息文件。 | - |
82| `-it` | `-i`(交互式)和 `-t`(分配伪终端)的组合参数。 | - |82| `-it` | `-i`(交互式)和 `-t`(分配伪终端)的组合参数。 | - |
83-| `swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops` | 指定要运行的Docker镜像。 |请确保此镜像名和标签(tag)与你通过`docker pull`拉取的镜像完全一致。 |83+| `swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-openeuler24.03-py3.12-devel` | 指定要运行的Docker镜像。 |请确保此镜像名和标签(tag)与你通过`docker pull`拉取的镜像完全一致。 |
84| `bash` | 容器启动后立即执行的命令。 | - |84| `bash` | 容器启动后立即执行的命令。 | - |
85 85 
86### 方式3:手动安装86### 方式3:手动安装
@@ -93,36 +93,32 @@ docker run --name cann_container --device /dev/davinci0 --device /dev/davinci_ma
93 93 
94 1. **安装驱动与固件(运行态依赖)**94 1. **安装驱动与固件(运行态依赖)**
95 95 
96- 下载和安装操作请参考《[CANN软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstWizard)》中“准备软件包”和“安装NPU驱动和固件”章节。驱动与固件是运行态依赖,若仅编译算子,可以不安装。96+ 驱动与固件是运行态依赖,若仅编译算子,可以不安装。使用`npu-smi info`检查是否有NPU相关信息,若没有,请参考《[CANN快速安装](https://www.hiascend.com/cann/download)》完成驱动与固件安装。
97 97 
98 2. **安装CANN包**98 2. **安装CANN包**
99 99 
100- 请单击[下载链接](https://ascend.devcloud.huaweicloud.com/artifactory/cann-run-mirror/software/master/),选择最新时间版本,并根据产品型号和环境架构下载对应包。安装命令如下,更多指导参考《[CANN软件安装指南](https://www.hiascend.com/document/redirect/CannCommunityInstWizard)》。100+ 请单击[下载链接](https://ascend.devcloud.huaweicloud.com/artifactory/cann-run-mirror/software/master/),选择最新时间版本,并根据产品型号和环境架构下载对应包。安装命令如下,更多指导参考《[CANN快速安装](https://www.hiascend.com/cann/download)》。
101 101 
102 - 安装CANN toolkit包102 - 安装CANN toolkit包
103 103 
104- ```bash104+ ```bash
105- # 确保安装包具有可执行权限105+ bash ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --install-path=${install_path}
106- chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run
107- # 安装命令
108- ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --install-path=${install_path}
109 ```106 ```
110 107 
111 - 安装CANN ops包(运行态依赖)108 - 安装CANN ops包(运行态依赖)
112 109 
113 ops包是运行态依赖,若仅编译算子,可不安装此包。110 ops包是运行态依赖,若仅编译算子,可不安装此包。
114 111 
115- ```bash112+ ```bash
116- # 确保安装包具有可执行权限113+ bash ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --install-path=${install_path}
117- chmod +x Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run
118- # 安装命令
119- ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --install-path=${install_path}
120 ```114 ```
121 115 
122- - \$\{cann\_version\}表示CANN包版本号。116+ 变量含义说明
123- - \$\{arch\}:表示CPU架构,如aarch64、x86_64。117+ 
124- - \$\{soc\_name\}:表示NPU型名称118+ - \$\{cann\_version\}:表示CANN包版本号。
125- - \$\{install\_path\}:表示指定安装路径ops包需与toolkit包安装在相同路径,root用户默认安装在`/usr/local/Ascend`目录119+ - \$\{arch\}:表示CPU架构可通过`uname -m`查询,例如aarch64、x86_64
120+ - \$\{soc\_name\}:表示NPU型号名称。
121+ - \$\{install\_path\}:表示指定安装路径,ops包需与toolkit包安装在相同路径,root用户默认安装在`/usr/local/Ascend`目录。
126 122 
127- **场景2:体验已发布版本能力或基于已发布版本进行开发**123- **场景2:体验已发布版本能力或基于已发布版本进行开发**
128 124 
@@ -220,6 +216,8 @@ prepare_cann_env.sh会自动安装Spack、搭建构建环境、拉取相关依
220 spack location -i cann-ops # Spack安装场景216 spack location -i cann-ops # Spack安装场景
221 ```217 ```
222 218 
219+ 其中\$\{arch\}可通过`uname -m`查询当前架构,如aarch64、x86_64。
220+ 
223## 环境变量配置221## 环境变量配置
224 222 
225按需选择合适的命令使环境变量生效,Spack场景下已自动设置环境变量,跳过此步骤223按需选择合适的命令使环境变量生效,Spack场景下已自动设置环境变量,跳过此步骤
@@ -309,7 +309,7 @@
309 ${ASCEND_PATH}/lib64/libnnopbase.so309 ${ASCEND_PATH}/lib64/libnnopbase.so
310 ${TARGET_SUBDIR}/op_api/lib/libcust_opapi.so # 链接自定义算子库文件310 ${TARGET_SUBDIR}/op_api/lib/libcust_opapi.so # 链接自定义算子库文件
311 )311 )
312- target_link_options(${op_name}_invocation PRIVATE312+ target_link_options(${test_aclnn_op_name} PRIVATE
313 "-Wl,-rpath,${TARGET_SUBDIR}/op_api/lib"313 "-Wl,-rpath,${TARGET_SUBDIR}/op_api/lib"
314 )314 )
315 315 
@@ -353,14 +353,14 @@
353 )353 )
354 354
355 # 链接所需的动态库(自定义:替换为实际算子可执行文件)355 # 链接所需的动态库(自定义:替换为实际算子可执行文件)
356- target_link_libraries(${op_name}_invocation PRIVATE356+ target_link_libraries(${test_aclnn_op_name} PRIVATE
357 ${ASCEND_PATH}/lib64/libascendcl.so357 ${ASCEND_PATH}/lib64/libascendcl.so
358 ${ASCEND_PATH}/lib64/libnnopbase.so358 ${ASCEND_PATH}/lib64/libnnopbase.so
359 ${ASCEND_PATH}/lib64/libopapi_math.so # 链接内置算子库文件359 ${ASCEND_PATH}/lib64/libopapi_math.so # 链接内置算子库文件
360 )360 )
361 361
362 # 安装目标文件到bin目录(自定义:替换为实际算子可执行文件) 362 # 安装目标文件到bin目录(自定义:替换为实际算子可执行文件)
363- install(TARGETS ${op_name}_invocation DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})363+ install(TARGETS ${test_aclnn_op_name} DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
364 ```364 ```
365 365
3664. 创建run.sh文件。3664. 创建run.sh文件。