第一章 OrangePi AIpro介绍和开发环境搭建
1.1 OrangePi AIpro介绍
OrangePi AIpro(8T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。
这块板子的特色在于香橙派 X 华为昇腾,可以接入华为昇腾的生态,基于Ascend的CANN架构、AI框架、开发工具链等进行相关应用开发。(总结:作为业界首款基于昇腾深度研发的AI开发板,OrangePi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀)。
1、在VMware Workstation 16安装Ubuntu 22.04系统
① 在Ubuntu官网下载下载Ubuntu 22.04.4 LTS。
② 打开安装VMware Workstation 16 Player安装的VMware软件,选择“创建新虚拟机”。
③ 选择①中下载的镜像文件,单击“下一步”。选择虚拟机安装位置。
指定Ubuntu可以使用的内存和处理器核数,修改为16G内存与8核处理器。
指定磁盘容量,至少分配50GB,选择“将虚拟磁盘拆分成多个文件”,单击“下一步”。
④ 其他默认即可,配置完成后单击“下一步”即可进入虚拟机开始系统安装。
⑤ 完成Ubuntu 22.04系统安装
2、在正式安装CANN前先进行相关依赖
① 更换下载源(使用阿里云)
执行如下命令检查源是否可用。如果命令执行报错或者后续安装依赖时等待时间过长甚至报错,则检查网络是否连接或者把“/etc/apt/sources.list”文件中的源更换为可用的源或使用镜像源。
sudo apt-get update
# pip永久换源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com
tips:也可以用华为镜像,具体参考官网。
② 检查用户的umask
lhh@virtual:~$ umask
0022
如果umask不等于0022,在.bashrc文件的最后一行添加umask 0022后保存
sudo nano ~/.bashrc
// ctrl+o保存,ctrl+x退出编辑器
source ~/.bashrc
② 安装依赖
sudo apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl \\
libsqlite3-dev libssl-dev libffi-dev libbz2-dev libxslt1-dev unzip \\
pciutils net-tools libblas-dev gfortran libblas3
安装pip3
sudo apt-get install python3-pip
③ 安装python开发相关依赖包
pip3 install attrs
pip3 install numpy
pip3 install decorator
pip3 install sympy
pip3 install cffi
pip3 install pyyaml
pip3 install pathlib2
pip3 install psutil
pip3 install protobuf
pip3 install scipy
pip3 install requests
pip3 install absl-py
至此,完成依赖包的安装,接下来就是CANN的正式编译安装了。
官方tips:依赖安装完成后,请用户恢复为原umask值(删除.bashrc文件中umask 0022一行)。基于安全考虑,建议用户将umask值改为0027。
3、编译安装CANN ① 下载CANN包 在官网查看并下载CANN软件“Ascend-cann-toolkit_{version}_linux-x86_64.run” (快速链接)
② 在终端中进入安装包所在目录,增加软件包的可执行权限后进行安装
chmod +x Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run
./Ascend-cann-toolkit_6.2.RC2_linux-x86_64.run --install
安装完成后,若显示如下信息,则说明软件安装成功:
[INFO] xxx install success
③ 在~/.bashrc中配置开发套件包的环境变量,方便随地可调用CANN相关指令(如atc)。
sudo nano ~/.bashrc
在~/.bashrc最后添加以下。注意与安装路径匹配。
. /home/lhh/Ascend/ascend-toolkit/set_env.sh
export LD_LIBRARY_PATH=/home/lhh/Ascend/ascend-toolkit/latest/x86_64-linux/devlib/:$LD_LIBRARY_PATH
export DDK_PATH=/home/lhh/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
使环境配置生效,这样就不需要反复去配置环境了。
source nano ~/.bashrc
3、测试模型转换工具ATC 昇腾张量编译器(Ascend Tensor Compiler,简称ATC)是异构计算架构CANN体系下的模型转换工具, 它可以将开源框架的网络模型(如Caffe、TensorFlow、ONNX、MindSpore)以及Ascend IR定义的单算子描述文件(json格式)转换为昇腾AI处理器支持的.om格式离线模型。
ATC的工作流程大致如下: stage1:网络模型经过Parser解析后,转换为中间态IR Graph。 stage2:中间态IR经过图准备、图拆分、图优化、图编译等一系列操作后,转成适配昇腾AI处理器的离线模型.om模型。 stage3:转换后的离线模型上传到板端环境,通过AscendCL接口加载模型文件实现推理过程。
至于为什么要大费周章在虚拟机上安装CANN环境,反正板子有环境直接在板子上做模型转换不就行了吗,[狗头]因为板子性能终归不及PC端,实测板端模型转换十分耗时,在Linux虚拟机上进行模型转换视模型大小也需要一到几分钟不等的时间。
以下以ONNX模型转为om模型为例测试ATC工具是否正常工作。 ① 以我以mobilenet_v2图像分类的预训练模型.onnx文件为例,进入模型文件所在位置。通过onnx可视化可以看到模型的输入为1x1x224x224,且输入input_name即为input。
② 执行如下命令生成离线模型,atc有众多参数