环境部署
基于本项目进行算子调用或算子开发之前,请您先参考下面步骤完成基础环境搭建。
注意本文提到的编译态和运行态含义如下,请按需安装:
- 编译态:针对仅编译不运行本项目的场景,只需安装前置依赖和CANN toolkit包。
- 运行态:针对运行本项目的场景(编译运行或纯运行),除了安装前置依赖和CANN toolkit包,还需安装驱动与固件、CANN ops包。
前提条件
使用本项目前,请确保如下基础依赖、NPU驱动和固件已安装。
-
安装依赖
本项目源码编译用到的依赖如下,请注意版本要求。
- python >= 3.7.0(建议版本 <= 3.10)
- gcc >= 7.3.0
- cmake >= 3.16.0
- pigz(可选,安装后可提升打包速度,建议版本 >= 2.4)
- dos2unix
- gawk
- make
- googletest(仅执行UT时依赖,建议版本 release-1.11.0)
上述依赖包可通过项目根目录install_deps.sh安装,命令如下,若遇到不支持系统,请参考该文件自行适配。
bash install_deps.sh -
安装驱动与固件(运行态依赖)
运行算子时必须安装驱动与固件,若仅编译算子,可跳过本操作。
单击下载链接,根据实际产品型号和环境架构,获取对应的
Ascend-hdk-<chip_type>-npu-driver_<version>_linux-<arch>.run、Ascend-hdk-<chip_type>-npu-firmware_<version>.run包。安装指导详见《CANN 软件安装指南》中“安装指南 > 安装NPU驱动和固件”。
环境准备(三选一)
本项目提供了多种部署CANN包的方式,请按需选择。
- WebIDE和Docker环境:提供极简环境搭建,默认安装最新商发版CANN软件包(目前是CANN 8.5.0)。
- 手动安装CANN包:如果您想体验手动安装CANN包或体验最新master分支能力,推荐手动安装。
使用WebIDE环境
对于无环境的用户,可直接使用WebIDE开发平台,即“算子一站式开发平台”,该平台为您提供在线可直接运行的昇腾环境,环境中已安装必备的软件包,无需手动安装。更多关于开发平台的介绍请参考website。
-
进入开源项目,单击“
云开发”按钮,使用已认证过的华为云账号登录。若未注册或认证,请根据页面提示进行注册和认证。
-
根据页面提示创建并启动云开发环境,单击“
连接 > WebIDE”进入算子一站式开发平台,开源项目的资源默认在/mnt/workspace目录下。
使用Docker部署
说明:
- Docker镜像是一种高效部署方式,目前仅适用于Atlas A2系列产品,且目前仅适配Ubuntu操作系统。
- 镜像文件比较大,下载需要一定时间,请您耐心等待。
1. 下载镜像
-
以root用户登录宿主机。确保宿主机已安装Docker引擎(版本1.11.2及以上)。
-
从昇腾镜像仓库拉取已预集成CANN软件包及
ops-math所需依赖的镜像。命令如下,根据实际架构选择:# 示例:拉取ARM架构的CANN开发镜像 docker pull --platform=arm64 swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops # 示例:拉取X86架构的CANN开发镜像 docker pull --platform=amd64 swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops
2. 运行Docker
拉取镜像后,需要以特定参数启动容器,以便容器内能访问宿主的昇腾设备。
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
| 参数 | 说明 | 注意事项 |
|---|---|---|
--name cann_container |
为容器指定名称,便于管理。 | 可自定义。 |
--device /dev/davinci0 |
核心:将宿主机的NPU设备卡映射到容器内,可指定映射多张NPU设备卡。 | 必须根据实际情况调整:davinci0对应系统中的第0张NPU卡。请先在宿主机执行 npu-smi info命令,根据输出显示的设备号(如NPU 0, NPU 1)来修改此编号。 |
--device /dev/davinci_manager |
映射NPU设备管理接口。 | - |
--device /dev/devmm_svm |
映射设备内存管理接口。 | - |
--device /dev/hisi_hdc |
映射主机与设备间的通信接口。 | - |
-v /usr/local/dcmi:/usr/local/dcmi |
挂载设备容器管理接口(DCMI)相关工具和库。 | - |
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi |
挂载npu-smi工具。 |
使容器内可以直接运行此命令来查询NPU状态和性能信息。 |
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ |
关键挂载:将宿主机的NPU驱动库映射到容器内。 | - |
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info |
挂载驱动版本信息文件。 | - |
-v /etc/ascend_install.info:/etc/ascend_install.info |
挂载CANN软件安装信息文件。 | - |
-it |
-i(交互式)和 -t(分配伪终端)的组合参数。 |
- |
swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10-ops |
指定要运行的Docker镜像。 | 请确保此镜像名和标签(tag)与你通过docker pull拉取的镜像完全一致。 |
bash |
容器启动后立即执行的命令。 | - |
手动安装CANN包
1. 下载软件包
请根据下述场景,按需获取Ascend-cann-toolkit_${cann_version} linux-${arch}.run、Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run。
-
场景1:如果您想体验官网正式发布的CANN包能力,访问CANN官网下载中心,选择对应版本CANN软件包(仅支持CANN 8.5.0及后续版本),安装指导详见《CANN 软件安装指南》。
-
场景2:如果您想体验master分支最新能力,单击下载链接获取。
注意产品型号和环境架构需与真实环境对应,此外ops包是运行态依赖,若仅编译算子,可以不安装此包。
2. 安装软件包
-
安装社区CANN toolkit包
# 确保安装包具有可执行权限 chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --force --install-path=${install_path}- ${cann_version}:表示CANN包版本号。
- ${arch}:表示CPU架构,如aarch64、x86_64。
- ${install_path}:表示指定安装路径,默认安装在
/usr/local/Ascend目录。
-
安装社区版CANN ops包(运行态依赖)
运行算子时必须安装本包,若仅编译算子,可跳过本操作。
# 确保安装包具有可执行权限 chmod +x Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --install-path=${install_path}- ${soc_name}:表示NPU型号名称,即${soc_version}删除“ascend”后剩余的内容。
- ${install_path}:表示指定安装路径,需要与toolkit包安装在相同路径,默认安装在
/usr/local/Ascend目录。
环境验证
安装完CANN包或进入Docker容器后,需验证环境和驱动是否正常。
-
检查NPU设备:
# 运行npu-smi,若能正常显示设备信息,则驱动正常 npu-smi info -
检查CANN安装:
# 查看CANN Toolkit版本信息 cat /usr/local/Ascend/ascend-toolkit/latest/opp/version.info
环境变量配置
按需选择合适的命令使环境变量生效。
# 默认路径安装,以root用户为例(非root用户,将/usr/local替换为${HOME})
source /usr/local/Ascend/cann/set_env.sh
# 指定路径安装
# source ${install_path}/cann/set_env.sh
源码下载
通过如下命令下载项目源码,同时安装其他依赖。${tag_version}请替换为分支标签名,本源码仓与CANN版本配套关系可参见release仓库。
# 下载项目对应分支源码
git clone -b ${tag_version} https://gitcode.com/cann/ops-math.git
# 安装根目录requirements.txt依赖
pip3 install -r requirements.txt
注意
gitcode平台在使用HTTPS协议的时候要配置并使用个人访问令牌代替登录密码进行克隆,推送等操作。
若您的编译环境无法访问网络,无法通过git指令下载代码,需要在联网环境中下载源码后,手动上传至目标环境。
- 在联网环境中,进入本项目主页, 通过
下载ZIP或clone按钮,根据指导,完成源码下载。 - 连接至离线环境中,上传源码至您指定的目录下。若下载的为源码压缩包,还需进行解压。