已合并
docs: 更新安装文档示例版本及修正算子调用CMake变量名 #2998
陈思创建于 5月28日
docs: 更新安装文档示例版本及修正算子调用CMake变量名 #2998
已合并
共 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 | ```bash | 32 | ```bash |
| 35 | -git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git | 33 | +# 通用命令: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 @@ | |||
| 55 | bash build.sh --pkg --soc=${soc_version} --ops=add_example -j16 | 55 | bash 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 推理系列产品:取值为ascend910b | 68 | - Atlas A2 训练系列产品/Atlas A2 推理系列产品:取值为ascend910b |
| 63 | - Atlas A3 训练系列产品/Atlas A3 推理系列产品:取值为ascend910_93 | 69 | - Atlas A3 训练系列产品/Atlas A3 推理系列产品:取值为ascend910_93 |
| 64 | - 950系列产品:取值为ascend950 | 70 | - 950系列产品:取值为ascend950 |
| 65 | 71 | ||
| 66 | -<img src="./zh/figures/socInfo.png" alt="芯片版本" width="800px" height="160px"> | ||
| 67 | - | ||
| 68 | 若提示如下信息,说明编译成功。 | 72 | 若提示如下信息,说明编译成功。 |
| 69 | 73 | ||
| 70 | ```bash | 74 | ```bash |
| @@ -99,6 +99,7 @@ | |||
| 99 | ```bash | 99 | ```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 | ||
| 46 | 1.**安装驱动与固件(运行态依赖)** | 46 | 1.**安装驱动与固件(运行态依赖)** |
| 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 | ||
| 50 | 2.**下载镜像** | 50 | 2.**下载镜像** |
| 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 | ```bash | 57 | ```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-ops | 59 | + 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 | ||
| 62 | 3.**运行Docker** | 62 | 3.**运行Docker** |
| @@ -64,7 +64,7 @@ | |||
| 64 | 拉取镜像后,需要以特定参数启动容器,以便容器内能访问宿主的昇腾设备。 | 64 | 拉取镜像后,需要以特定参数启动容器,以便容器内能访问宿主的昇腾设备。 |
| 65 | 65 | ||
| 66 | ```bash | 66 | ```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 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: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 | - ```bash | 104 | + ```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 | - ```bash | 112 | + ```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.so | 309 | ${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 PRIVATE | 312 | + 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 PRIVATE | 356 | + target_link_libraries(${test_aclnn_op_name} PRIVATE |
| 357 | ${ASCEND_PATH}/lib64/libascendcl.so | 357 | ${ASCEND_PATH}/lib64/libascendcl.so |
| 358 | ${ASCEND_PATH}/lib64/libnnopbase.so | 358 | ${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 | ||
| 366 | 4. 创建run.sh文件。 | 366 | 4. 创建run.sh文件。 |