总体开发环境如下图:

注意:本系列实验推荐配置为: CANN 8.0.0 beta1 + mindspore 2.2.14 + ACLLite
如果发现 mindspore 版本要求不一样,可以使用 jupyter 魔法指令来升级 mindspore,而不需要升级 CANN 。
芯片与操作系统
硬件规模参数
采用昇腾 320b1 NPU 芯片(4 核 64 位 Arm 处理器 + AI 处理器)
CPU 架构为 AArch64
本实验下载的操作系统镜像为 Ubuntu 22.04.3 LTS
固件与驱动
社区版-固件与驱动-昇腾社区

最新驱动版本为 1.0.0 alpha,他最高支持到 CANN 版本为 7.0.0.beta1 (实验中可以尝试升级 CANN 版本)
可以使用 npu-smi info 来查看当前驱动版本,例如下面显示驱动版本为 23.0.0

使用 sudo cat /usr/local/Ascend/firmware/version.info 来显示固件信息,例如下面显示固件版本为 7.1.0

本实验无须升级固件
CANN
昇腾异构计算架构CANN-昇腾社区
CANN (Compute Architecture for Neural Networks) 是华为公司针对 AI 场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。 下面是几个重要概念:
- AscendCL:昇腾硬件的统一编程接口,包含了编程模型、硬件资源抽象、AI 任务及内核管理、内存管理、模型和算子调用、媒体预处理接口、加速库调用等一系列功能,充分释放昇腾系统多样化算力,使能开发者快速开发 AI 应用 (类似 CUDA、OpenCL,是昇腾平台的 API 库,只能调用已有算子,不能自定义内核运算,面向 " 调用 " 层,而非 " 计算 " 层。开发你自己的 AI 推理应用程序,控制 " 如何加载模型、准备数据、执行推理、取回结果 “,让模型在昇腾硬件上真正 " 跑起来 “)。
- Ascend C:面向算子开发场景的编程语言,原生支持 C 和 C++ 标准规范,最大化匹配用户开发习惯;通过多层接口抽象、自动并行计算、孪生调试等关键技术,极大提高算子开发效率,助力 AI 开发者低成本完成算子开发和模型调优部署(可以自己用 Ascend C 写算子,并编译为昇腾芯片能识别的格式**)。
- 算子库:基于昇腾处理器,深度协同优化的高性能算子库(华为官方已经为常见网络算子(如 Conv、MatMul、BN 等)做了优化,用户可以直接调用。)。
- ATC 工具:模型转换工具(将其他模型格式(例如 ONNX 网络模型)转成昇腾专用的 model.om 格式(离线模型)),用于 AsencdCL 进行推理应用的开发。
本实验可以将 CANN 升级到 8.0.0 beta1 或者更高(固件支持最高为 7.0.0,高版本 CANN 工具包可能引起兼容性问题) 社区版资源下载-资源下载中心-昇腾社区
CANN 升级指南
注意:使用 root 用户来完成 CANN 的升级
su - root
查看当前 CANN 版本
使用如下命令查看,当前 CANN 版本,例如我已经升级到 8.0.0 版本
cd /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux
cat ascend_toolkit_install.info

删除原来的 CANN(非必要不要删除)
打开 ascend-toolkit 所在目录
cd /usr/local/Ascend/ascend-toolkit
如果香橙派磁盘不足,可以把旧的 Toolkit 删除:
rm -rf *
下载 CANN 工具包并上传到香橙派
打开昇腾 CANN 官网访问社区版资源 下载地址,下载所需版本的 toolkit 包,例如这里选择 8.0.0 beta1 的 CANN 开发工具包。

将上面这个 CANN 软件上传到 香橙派对应的 /usr/local/Ascend/ascend-toolkit/
方法一:使用 scp 命令:
在下载的 Ascend-cann-toolkit_8.0.0_linux-aarch64.run 相应文件夹下,执行命令:
scp Ascend-cann-toolkit_8.0.0_linux-aarch64.run root@192.168.137.100:/usr/local/Ascend/ascend-toolkit/
方法二:使用 MobaXterm ftp 上传:


安装 CANN
在 /usr/local/Ascend/ascend-toolkit 路径下执行:
chmod +x Ascend-cann-toolkit_8.0.0_linux-aarch64.run
./Ascend-cann-toolkit_8.0.0_linux-aarch64.run --install
安装时弹出此提示后输入 Y,然后按回车键继续安装,该过程约需要 10-15 分钟,请耐心等待。
安装成功如下:

重启加载环境变量:
sudo reboot
安装 CANN kernels 包
打开昇腾 CANN 官网访问社区版资源 下载地址,下载所需版本的 kernels 包,例如这里选择 8.0.0 beta1 的 CANN 开发工具包。

同理上传文件到指定香橙派目录:
scp Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run root@192.168.137.100:/usr/local/Ascend/ascend-toolkit/
在 /usr/local/Ascend/ascend-toolkit 路径下执行:
chmod +x Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run
./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run --install
安装时弹出此提示后输入 Y,然后按回车键继续安装,该过程约需要 10-15 分钟,请耐心等待。
安装成功如下:
深度学习框架:mindspore
介绍

mindspore 的硬件平台支持:Ascend、CPU 和 GPU。
可以在不同操作系统中安装:
- Linux:Ascend、CPU、cuda
- Windows:cpu
- macOS:cpu
安装或升级 Mindspore
MindSpore安装 | 昇思MindSpore社区
开发板的 Ubuntu 系统中已经预装了 MindSpore 2.2.12,实验中可以安装新版本的 mindspore,具体依照实验,注意 mindspore 版本和 cann toolkit 的兼容关系,可以在 历史版本 | 昇思MindSpore社区 中查看,mindspore 版本和 cann 的兼容关系。例如 CANN 7.0.0.beta1 最高支持到 cann2.2.14。
查看当前 Mindspore 版本
使用如下命令,可以查看当前安装的 mindspore 版本:
python -c \
"import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"

安装或升级 Mindspore
使用如下命令安装 mindspore,例如这里安装
pip install mindspore==2.4.10
注意:从 MindSpore 1.x 升级到 MindSpore 2.x 版本时,需要先手动卸载旧版本,再安装新版本:
pip uninstall mindspore-ascend
ACLLite
ACLLite 库是对 CANN 提供的 ACL 接口进行的高阶封装,简化用户调用流程,为用户提供一组简易的公共接口。当前主要针对边缘场景设计。
软件架构
| 命名空间 | 模块 | 说明 |
| acllite | common | 资源管理及公共函数模块 |
| DVPPLite | DVPP高阶封装模块 | |
| OMExecute | 离线模型执行高阶封装模块 | |
| Media | 媒体功能高阶封装模块 |
安装教程
| 配套 | 版本 | 环境准备指导 |
|---|---|---|
| CANN | 8.0RC2 | CANN软件包安装准备 |
| Python | 3.7.5 | Python安装准备 |
| 硬件设备型号 | 310B 系列;310P 系列;910B 系列 | - |
安装依赖 Ffmpeg
通过如下命令查询 OS 版本
lsb_release -a
根据查询结果选择安装方式 Ubuntu 22.04 及以上版本的用户建议使用 apt 安装
sudo apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev
更新 ACLLite 仓库
拉取 ACLLite 仓库,并进入目录
git clone https://gitee.com/ascend/ACLLite.git
cd ACLLite

设置环境变量,其中 DDK_PATH 中/usr/local 请替换为实际 CANN 包的安装路径
export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
安装,编译过程中会将库文件安装到/lib 目录下,所以会有 sudo 命令,需要输入密码
bash build_so.sh

最终会在 /usr/local/Ascend/thirdpart/aarch64/acllite 中看到使用 python 封装过的 api,如下:
