有幸受邀评测香橙派与华为鲲鹏在2024年5月12刚刚联合发布的新品香橙派Kunpeng Pro。
本文将从软硬件、AI算法测试等角度简单分享一下博主拿到板子以来感受与所做的评测。
一、硬件
香橙派Kunpeng Pro实物图
处理器方面,香橙派Kunpeng Pro采用了4核64位armv8架构处理器,主频提升到了1.6GHz,同时集成了昇腾(Ascend)AI处理器(应为310B),拥有8TOPS(int8)AI算力。
内存与存储方面,拥有8GB/16GB LPDDR4X内存,支持TF卡、eMMC、NVMe SSD、SATA SSD等多种存储扩展,使得香橙派Kunpeng Pro可以在内存与存储方面支持流行的AI应用。特别是最低8GB的内存,足以支持很多AI模型的推理了。
除此之外,香橙派Kunpeng Pro还提供了丰富的接口,包括两个HDMI输出接口(有一个HDMI接口输出貌似还有点问题,需要后续跟进)、GPIO接口、两个USB3.0接口、一个USB Type-C 3.0接口、两个MIPI摄像头接口等。大部分外设的扩展都没有问题。
另外,值得一提的是,香橙派Kunpeng Pro附带的Type-C电源为65W PD电源,属实良心了。
二、软件
香橙派Kunpeng Pro预安装了openEuler系统(默认openEuler与root用户密码都是openEuler),提供了类PC桌面环境,对新手来说,插上电源、显示器和键鼠外设就可以轻松上手。此外还预安装了openGauss(数据库)、DevKit(开发者工具集)等,有相关需求的朋友们可以自行探索它们的用途。
对开发者来说,更令人惊讶的是竟然预装了VSCode。
三、AI应用测试 - 以YOLO算法推理为例
1.Ascned驱动、固件与CANN Toolkit
在Ascend平台上运行AI算法,需要驱动、固件与CANN Toolkit的支持。
实际上,Ascend芯片的驱动在这块香橙派Kunpeng Pro上也是预安装了的,官方的Kunpeng-Develop-openEuler-22.03-LTS-SP3-20240506-0416镜像中包含了23.0.0的驱动的。在root用户下,执行npu-smi info,可得到如下信息:
可以看到,实际上目前芯片的健康状态为Alarm,并不是OK的状态,也就无法工作。
我们覆盖安装一次驱动看看。首先在下面地址下载驱动包23.0.0版本:
https://www.hiascend.com/hardware/firmware-drivers/community?product=5&model=25&cann=All&driver=1.0.0.alpha
安装如下:
chmod +x Ascend-hdk-310b-npu-driver-soc_23.0.0_linux-aarch64.run
./Ascend-hdk-310b-npu-driver-soc_23.0.0_linux-aarch64.run --full
安装成功,重启后再执行npu-smi info,发现也没有任何变化。因此只能等待后续驱动更新再看看了,目前Ascend的性能无法测试。
值得注意的是,在openEuler用户下,执行npu-smi info,会有如下错误提示:
说明openEuler用户没有权限调动驱动与Ascend NPU。仅能通过root用户调用,存在一定的安全隐患。Ascend官方安装指引为解决这一问题提供了一种可能性(安装时使用–install-for-all选项),为此,博主在安装310B驱动包时曾尝试为所有用户安装驱动,然而却发现这一选项–install-for-all并未被23.0.0驱动所支持:
因此只能暂时作罢,希望后续这个问题也可以得到解决。
注意,由于Ascend并不能被正确调用,接下安装固件和CANN Toolkit操作其实没有太大意义,只是期待后续驱动更新后,可以直接使用Ascend。
观察/usr/local/Ascend目录,发现并没有固件目录firmware:
上述下载驱动页面同样提供了固件下载。安装固件:
chmod +x Ascend-hdk-310b-npu-firmware-soc_7.1.0.3.220.run ./Ascend-hdk-310b-npu-firmware-soc_7.1.0.3.220.run --full
接下来,安装CANN Toolkit。注意,能找到的支持310B的CANN版本应为7.0.0.beta1。安装步骤步骤如下:
1)安装依赖
yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran
2)下载CANN安装包【注意需要登录,下载7.0.0.beta1】
https://www.hiascend.com/developer/download/community/result?from=firmware&product=5&model=25&cann=All
3)命令行安装CANN
# 给予执行权限
chmod +x Ascend-cann-toolkit_7.0.0_linux-aarch64.run
# 执行安装命令
./Ascend-cann-toolkit_7.0.0_linux-aarch64.run --install
2.安装MindSpore
需要根据CANN和MindSpore对硬件平台的支持选择安装的版本:
https://www.mindspore.cn/versions/en#ascend-supporting-software-package
CANN一般向下兼容,此前安装了7.0.0.beta1,硬件平台为Ascend 310B,因此可以选择安装MindSpore 2.1.1。
推荐使用官方自动安装脚本,会自动安装sympy、te、hccl。使用官方自动安装脚本安装MindSpore的步骤如下:
# 安装MindSpore 2.1.1和Python 3.7
wget https://gitee.com/mindspore/mindspore/raw/master/scripts/install/euleros-ascend-pip.sh
MINDSPORE_VERSION=2.1.1 bash -i ./euleros-ascend-pip.sh
注1:博主实测时发现miniconda始终下载不下来,如果有遇到同样问题的,可以试着修改下安装脚本里的源,或者直接再conda官网下载最新的linux_aarch64架构的安装包,自行安装。
上述自动安装脚本创建了mindspore_py37虚拟环境,后续可以在此环境安装AI算法库等。
下面测试安装结果。CPU平台:
import numpy as np
import mindspore as ms
import mindspore.ops as opsms.set_context(device_target="CPU")
x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))
测试通过。
Ascend平台测试:
import numpy as np
import mindspore as ms
import mindspore.ops as opsms.set_context(device_target="Ascend")
x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))
测试无法给出运行结果。
3.mindyolo克隆与测试
mindyolo是MindSpore Lab基于Mindspore实现的YOLO系列算法的集成工具箱。博主基于这个工具箱对香橙派Kunpeng Pro的AI推理性能进行测试。在执行下列命令前,注意切换到mindspore_py37虚拟环境。
git clone https://github.com/mindspore-lab/mindyolo.git
cd mindyolo/
pip install -r requirements.txt
pip install mindyolo
接下来,下载YOLO v5s预训练权重:
wget https://download.mindspore.cn/toolkits/mindyolo/yolov5/yolov5s_300e_mAP376-860bcf3b.ckpt
mindyolo支持的测试平台有:[‘CPU’, ‘GPU’, ‘Ascend’, ‘Davinci’]。目前,我们只能先测试一下CPU。随便下载一张图片,博主下载了一张airplane.jpg的照片:
测试如下:
python demo/predict.py --config ./configs/yolov5/yolov5s.yaml --weight=./yolov5s_300e_mAP376-860bcf3b.ckpt --image_path ./airplane.jpg --device_target=CPU
可以看到推理耗时为18s,还是挺长的。值得注意的是这里面包含了较长的模型加载时间,在进行视频在线推理时,这个时间可以被省掉。感兴趣的读者可以进一步测试。
我们参考https://zhuanlan.zhihu.com/p/648665620中对树莓派4B(4G)进行测试的结果做一个简单对比。下面这张图的推理耗时约72s:
在香橙派Kunpeng Pro上进行推理测试如下:
python demo/predict.py --config ./configs/yolov5/yolov5s.yaml --weight=./yolov5s_300e_mAP376-860bcf3b.ckpt --image_path ./image1.png --device_target=CPU
可见,推理耗时约为21s,相比于树莓派4B,这块香橙派Kunpeng Pro 的CPU性能是有很大的进步的。
四、总结
总体来看,香橙派Kunpeng Pro 在软硬件层面都是干货满满,值得入手。不足的是,目前Ascend芯片的调用还存在一些问题,官方也没有给出详细的配置指引,期待后续的更新。