
CANN ops-nn 环境部署指南CANNLab、Docker 与手动安装三种 NPU 开发环境搭建方式【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn本文是 ops-nnCANN 神经网络类计算算子库的官方环境部署指南完整覆盖 CANNLab 云开发、Docker 镜像部署、手动安装三种昇腾环境搭建路径以及环境验证与环境变量配置方法。读完后你将能够根据自身是否有昇腾设备选择合适方式完成 NPU 驱动、CANN toolkit/ops 包及项目基础依赖的安装并通过npu-smi与版本信息文件验证环境就绪为后续的算子编译与运行打好地基。一、部署前的概念编译态与运行态在开始安装之前需要区分两种环境形态它们决定了你需要安装哪些软件包编译态仅编译本项目、不运行的场景只需安装 CANN toolkit 包Ascend-cann-toolkit。运行态需要运行本项目编译运行或纯运行的场景必须安装 NPU 驱动、CANN toolkit 包Ascend-cann-toolkit和 CANN ops 包Ascend-cann-ops。二、三种安装方式选型ops-nn 提供多种搭建昇腾环境的方式请根据自身设备条件按需选择安装方式使用说明使用场景CANNLab一站式开发平台提供在线直接运行的昇腾环境无需手动安装。当前可提供单机算力默认安装最新版本 CANN 包适用于没有昇腾设备的开发者Docker镜像是一种高效部署方式已预集成 CANN 包和必备依赖。当前适用于 Atlas A2、A3 系列产品OS 支持 ubuntu 22.04、openeuler 24.03默认安装最新版本 CANN 包适用于有昇腾设备、需要快速搭建环境的开发者手动安装手动安装 CANN 包和基础依赖灵活性高适用于有昇腾设备、想体验手动安装 CANN 包或体验最新 master 分支能力的开发者下面按三种方式逐一展开。三、方式 1CANNLab 云开发环境对于没有昇腾设备的开发者可直接使用 CANNLab 云开发环境一站式开发平台。该平台提供在线可直接运行的昇腾环境环境中已安装必备的驱动、软件包和依赖无需手动安装。说明环境默认安装最新版本 CANN 包下载源码时注意与软件版本配套。操作步骤进入 ops-nn 开源项目页面单击 CANNLab 按钮使用已认证的华为云账号登录若未注册或认证按页面提示完成注册和认证。根据页面提示创建 NPU 环境并配置规格启动云开发环境后单击 连接 WebIDE 进入一站式开发平台。当前开源项目资源默认在/mnt/workspace/gitCode目录。后续进入/mnt/workspace/gitCode下的源码目录即可直接执行 源码构建 中的编译命令。四、方式 2Docker 镜像部署对于有昇腾设备的开发者若希望快速搭建环境可使用预集成的 CANN Docker 镜像。镜像文件较大下载需要一定时间docker命令的选项可通过docker --help查询。4.1 安装 NPU 驱动运行态依赖驱动是运行态依赖若仅编译算子可以不安装。先用npu-smi info检查是否有 NPU 相关信息若没有请参考 CANN 官方下载页面完成驱动安装步骤 1在 CANN 快速安装页面中选择自己的产品系列、CPU 架构、操作系统安装方式选择在线安装Yum步骤 2按页面指引依次完成配置用户属组、安装依赖配源、安装 NPU 驱动三个环节步骤 3执行npu-smi info若能正常显示 NPU 设备信息则说明驱动安装成功。4.2 拉取镜像步骤 1以 root 用户登录宿主机。确保宿主机已安装 Docker 引擎版本 1.11.2 及以上使用docker --version检查 Docker 版本步骤 2从昇腾镜像仓库拉取已预集成 CANN 软件包及ops-nn所需依赖的镜像。示例如下以cann:9.1.0-beta.1版本为例请自行替换 CANN 版本号、芯片系列、操作系统、python 版本等信息各字段支持的取值可在昇腾镜像仓库页面查询# 以cann:9.1.0-beta.1版本为例 docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.1.0-beta.1-910b-ubuntu22.04-py3.12-devel说明镜像标签格式为CANN版本-芯片系列-操作系统-Python版本-devel。带-devel后缀的镜像为算子开发镜像内含算子开发编译依赖。4.3 启动容器并映射 NPU 设备拉取镜像后需要以特定参数启动容器以便容器内能访问宿主的昇腾设备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-ubuntu22.04-py3.12-devel 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:9.1.0-beta.1-910b-ubuntu22.04-py3.12-devel指定要运行的 Docker 镜像请确保镜像名和标签tag与docker pull拉取的完全一致bash容器启动后立即执行的命令-进入容器后环境默认已配置好 CANN 包可直接按 源码构建 章节执行build.sh编译算子。五、方式 3手动安装手动安装适合希望体验最新 master 分支能力或深入理解每个依赖作用的开发者分为安装 CANN 软件和安装项目基础依赖两部分。5.1 安装 CANN 软件按目标 CANN 版本选择下载场景场景 1基于 CANN Weekly 版本体验最新 master 能力或开发在 CANN 快速安装页面选择Weekly 版本根据产品系列、CPU 架构、操作系统等下载对应包最后参考页面提供的命令完成安装。场景 2基于 CANN 稳定版本体验分支能力或开发在 CANN 快速安装页面选择稳定版本仅支持 CANN 8.5.0 及后续版本根据产品系列、CPU 架构、操作系统等下载对应包参考页面命令完成安装。5.2 项目基础依赖清单本项目的基础依赖及版本要求如下注意满足版本号依赖版本要求备注python 3.7.0建议版本 3.10gcc 7.3.0-cmake 3.16.0-pigz建议 2.4可选安装后可提升打包速度dos2unix--make--patch--googletest建议 release-1.11.0仅执行 UT 时依赖5.3 使用 install_deps.sh 一键安装上述依赖可通过项目根目录的 install_deps.sh 脚本一键安装。从源码结构看该脚本的工作机制为操作系统探测detect_os函数自动识别 debianapt、rhel优先 dnf、回退 yum、openEulerdnf与 macOSbrew四类发行版不支持的 Linux 发行版会提示Unsupported Linux distribution, please install manually并退出逐项安装与版本校验对 Python、GCC、CMake、pigz、dos2unix、patch、pkg-config、googletest 依次执行检测现有版本 → 不满足要求则安装 → 复核版本的流程内部通过version_ge函数按xx.xx.xx格式做版本号比较交互式确认pigz与googletest为可选依赖脚本会提示Install pigz? [Y/n]/Install googletest? [Y/n]由用户决定是否安装跳过不影响其他依赖特殊系统适配例如 CentOS 7 会安装centos-release-scl后引入rh-python38/devtoolset-9Ubuntu 18.04 的 CMake 安装会额外配置 kitware apt 源Debian 系 GCC 安装会依次尝试gcc-14到gcc-7的版本化软件包并通过update-alternatives将满足要求的版本注册为默认gcc静默检查模式脚本还支持check_dependencies_silent配合--pkg/--opkernel参数仅检查依赖是否齐备而不安装缺失时打印缺失清单并提示执行bash install_deps.sh编译流程中即通过该机制做前置校验。若遇到脚本不支持的系统请参考 install_deps.sh 中各install_*函数自行适配。安装命令# 下载与CANN版本配套的分支源码${tag_version}替换为分支标签名 git clone -b ${tag_version} https://gitcode.com/cann/ops-nn.git cd ops-nn # 一键安装基础依赖 bash install_deps.sh # 继续安装python三方库依赖 pip3 install -r requirements.txt从 requirements.txt 的实际内容看Python 三方库依赖包括pyyaml、numpy2.0注意 numpy 版本需小于 2.0、decorator、sympy、scipy、attrs、psutil、protobuf、setuptools59.0.0、wheel主要用于算子测试、文档与打包脚本运行。六、环境验证安装完 CANN 包后需验证环境和驱动是否正常。6.1 检查 NPU 设备# 运行npu-smi若能正常显示设备信息则驱动正常 npu-smi info6.2 检查 CANN 版本# 查看CANN toolkit包版本信息默认路径安装 # docker和手动安装场景 cat /usr/local/Ascend/cann/${arch}-linux/ascend_toolkit_install.info # CANNLab场景 cat /home/developer/Ascend/cann/${arch}-linux/ascend_toolkit_install.info # 查看CANN ops包版本信息默认路径安装 # docker和手动安装场景 cat /usr/local/Ascend/cann/${arch}-linux/ascend_ops_install.info # CANNLab场景 cat /home/developer/Ascend/cann/${arch}-linux/ascend_ops_install.info其中${arch}可通过uname -m查询当前架构如aarch64、x86_64。说明CANNLab 场景下 CANN 默认安装在/home/developer/Ascend而非/usr/local/Ascend查看版本信息时请注意路径差异。七、环境变量配置按需选择合适的命令使 CANN 环境变量ASCEND_HOME_PATH等在当前 shell 中生效# 默认路径安装以root用户为例非root用户将/usr/local替换为${HOME} source /usr/local/Ascend/cann/set_env.sh # 指定路径安装 # source ${install_path}/cann/set_env.sh提示环境变量仅在source的当前 shell 会话内生效重新打开终端后需要重新执行。编译算子前若未配置环境变量可能因找不到ASCEND_HOME_PATH等变量导致编译失败。八、下一步环境验证通过、环境变量生效后即可完成部署闭环需要编译算子包的请参考 源码构建指南使用bash build.sh --pkg --soc芯片版本 --ops算子名编译自定义算子包想从零体验编译—安装—调用—开发—调试完整流程的请参考 快速入门以AddExample算子为实践对象想了解编译产物的目录组织可参考 项目目录说明源码与 CANN 版本存在配套关系请确保下载的是与 CANN 版本配套的分支源码参见 README 中的版本配套说明。【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考