前言
这段时间收到了CSDN和香橙派的邀请,对OrangePi AIpro进行体验测评,在此感谢CSDN对我的信任,也感谢香橙派能做出如此优秀的开发板。
可喜可贺,周三晚上我收到了官方寄出的OrangePi AIpro。出于对国产芯片的好奇,拆开包装后我并没有马上开始上电使用,而是对板子的做工以及走线进行了简单的观察。不禁感叹,现在的国产开发板做工、芯片集成度完全不输于树莓派等以前常用的国外开发板。
废话不多说,下面从产品了解、性能测试、产品使用三个方面进行测评OrangePi AIpro开发板。
了解
OrangePi AIpro(8T)是香橙派和华为昇腾联合开发的一款AI开发板,采用昇腾的4核64位处理器+AI处理器,集成图形处理器,该处理器支持8TOPS AI算力。
OrangePi AIpro不仅有优秀的AI性能,而且采用了丰富的外部接口:
-
在存储方面,香橙派AIpro提供了TF插槽、SATA/NVMe SSD 2280 M.2插槽以及最大支持256G的eMMC模块三种存储接口。可以通过拨码开关选择从三种存储接口中启动系统。
-
在基础接口方面,香橙派AIpro提供了两个HDMI接口、一个Type-C电源接口、一个千兆网口、两个USB3.0、一个USB Type-C 3.0和一个Micro USB(串口打印调试)接口。
-
在开发接口方面,香橙派AIpro提供了40Pin的GPIO接口、两个MIPI摄像头、一个MIPI显示屏、电池接口。
其丰富的外部接口并不会限制开发者的想象力。不但可以适用于AI边缘计算、深度学习、人工智能等领域,而且凭借其存储能力、算力,搭建一个ALL in One的NAS绰绰有余。
初体验
3.1 开机
香橙派AIpro在接上电源后会自动开机,开机后风扇非常给力,声音很大,此时他是在初始化系统,当进入系统后,风扇会非常安静的运行。
但是我的香橙派AIpro在启动时必须要接入串口,并且在windows中打开串口才能正常启动,否则一直都无法进入桌面。当串口提示LiteOS start succeed
,表示系统已经启动了。
此时我们接上显示器,即可看到Ubuntu22.04的桌面,默认帐号是HwHiAiUser
,密码是Mind@123
:
进入桌面后,是非常简洁的xfce桌面,但其实在镜像中集成了5种桌面样式,只有xfce桌面使用起来相对流畅,其余桌面占用过高,体验不是很好。
3.2 尝试使用飞书文档编辑文章
尝试打开飞书文档继续编辑使用体验,在启动飞书文档时,CPU三个核心占用高,其中一个核心占用低(翻阅官方文档后发现,三颗为control cpu,一颗为AI cpu,下面会具体介绍)。
但让我意想不到的是,除了打开时慢了一些,编辑过程中非常流畅。
3.3 远程连接
我个人在使用Linux时常用终端办公,桌面端我们体验完了,我们感受一下ssh,首先ifconfig
获取香橙派AIpro IP:
在另一台Windows PC上通过MobaXterm
ssh连接香橙派AIpro:
输入账号密码(见前面的默认帐号是HwHiAiUser
,密码是Mind@123
)后登录成功:
除了SSH,还能通过Vnc、Todesk等远程工具进行桌面远程访问,非常便捷。
3.4 串口调试
使用一条可以数据传输的Micro USB线连接香橙派AIpro,在MobaXterm
中使用serial功能。笔者这边是COM3,波特率为115200。
打开串口界面后是没有串口信息的,按下板载的reset
按钮重启系统后,可以在MobaXterm
中看到疯狂刷新的Log了,直到看到LiteOS start succeed!
表示系统启动成功,此时风扇也会安静下来。
3.5 更新1.6Ghz固件 并获取CPU频率
3.5.1 更新1.6Ghz固件
在官网下载官方工具资料库,里面有个Ascend310B-firmware固件包
文件夹。
将该文件夹移动至香橙派AIpro中
$ chmod +x Ascend310B-firmware-7.3.t3.0.b309-rc-signed-8t-1.6ghz-20240428.run $ ./Ascend310B-firmware-7.3.t3.0.b309-rc-signed-8t-1.6ghz-20240428.run --full
更新完成后重启系统即可使用1.6Ghz的CPU。
3.5.2 获取CPU频率
在官方提供的npu-smi中无法获取当前CPU频率,通过华为官方提供的api可以获取。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "dcmi_interface_api.h"
#define MAX_CARD_NUM (16)
#define NPU_OK (0)
int main(int argc, char ** argv)
{
int ret;
int frequency = 0;
ret = dcmi_init();
if (ret != NPU_OK) {
printf("Failed to init dcmi.\n");
return ret;
}
ret = dcmi_get_device_frequency(0, 0, 1, &frequency);
if (ret != NPU_OK) {
printf("Failed to get info.\n");
return ret;
}
printf("内存 frequency is %d Mhz\n", frequency);
ret = dcmi_get_device_frequency(0, 0, 2, &frequency);
if (ret != NPU_OK) {
printf("Failed to get info.\n");
return ret;
}
printf("Control cpu frequency is %d Mhz\n", frequency);
ret = dcmi_get_device_frequency(0, 0, 7, &frequency);
if (ret != NPU_OK) {
printf("Failed to get info.\n");
return ret;
}
printf("AI CORE now frequency is %d Mhz\n", frequency);
ret = dcmi_get_device_frequency(0, 0, 9, &frequency);
if (ret != NPU_OK) {
printf("Failed to get info.\n");
return ret;
}
printf("AI CORE default frequency is %d Mhz\n", frequency);
return ret;
}
编译后运行
$ gcc get_cpu_info.c -L/usr/lib64 -ldcmi -lascend_hal -ldevmmap -ldrvdsmi -o cpu_info
$./cpu_info
内存 frequency is 1596 Mhz
Control cpu frequency is 1600 Mhz
AI CORE now frequency is 500 Mhz
AI CORE default frequency is 500 Mhz
样例体验
香橙派AIpro主打的就是AI相关的功能,在其使用手册中提供了多种场景下的案例供开发者体验和学习,下面我们通过其中几个案例来体验一下功能。
4.1 打开juypter lab,并在windows pc上使用
首先要在香橙派AIpro上打开juypter lab:
$ cd samples/notebooks/ $ bash start_notebook.sh
脚本运行成功后会提示运行网址为http://localhost:8888/ ,想要在windows上运行香橙派AIpro的juypter
,必须先映射端口才能正常访问,直接修改ip地址是无法正常登录的。
打开的隧道功能,并输入本地端口以及远程端口等信息搭建隧道。
输入完成后点击start
按钮开启隧道。
启动成功后即可在windows上访问香橙派AIpro的juypter
了。
4.1 目标检测
官方提供了目标检测的实现,我们可以通过修改infer_mode
推理模式字段来改变是对图片、视频还是相机数据进行检测。笔者在网络上随机下载了一段车流量的视频,大小为60M左右,观察一下它的占用以及识别效果。
点击开始运行后,占用升高到了60%。
大概等待了20秒左右,识别结果已经出来了,可见速度还是比较快的。
暂时无法在飞书文档外展示此内容
我们再找一段车流量大的视频检测一下看看效果。
暂时无法在飞书文档外展示此内容
性能测试
作为架构开发工程师,必须要做一下性能测试,一个好用、优秀的架构可以帮助团队少走几年弯路。
5.1 功耗测试
我统计了以下几种场景下的功耗:
-
CPU频率 1Ghz
-
开机功耗:12W
-
运行功耗:8W
-
负荷功耗:10w
-
-
CPU频率 1.6Ghz
-
开机功耗:12W
-
运行功耗:9W
-
负荷功耗:13W
-
5.2 CPU unixbench测试
5.2.1 下载以及编译
在官网下载unixbench:https://soft.lnmp.com/test/unixbench/
下载unixbench-5.1.2.tar.gz,然后到下载的目录下执行:
$ tar -xzvf unixbench-5.1.2.tar.gz $ cd unixbench-5.1.2
将3D检测GRAPHICS_TESTS=defined
注释掉
$ vim Cmakefile
使用make -j4
编译代码,会出现警告,但不影响我们使用
5.2.2 unixbench测试1Ghz(3 control cpu + 1 AI cpu)
开发板使用的昇腾SOC默认采用3个control CPU + 1个AI CPU,这种情况下多核CPU测试分数肯定比较低。好在昇腾SOC可以通过命令修改CPU使用方式,可以针对不同的使用场景自由分配CPU。
-
设置3个CPU为control CPU,提示successfully后重启系统即可生效。
$ sudo npu-smi set-t cpu-num-cfg-i 0-c 0-v 1:3:0
Status : OK Message : The cpu-num-cfg of the chip is set successfully. Reset system for the configuration to take effect.
-
单核分数
$ ./Run
-
多核分数
$ ./Run -c 4
5.2.3 unixbench测试1Ghz(4 control cpu)
-
设置4个CPU为control CPU,提示successfully后重启系统即可生效。
$ sudo npu-smi set-t cpu-num-cfg-i 0-c 0-v 0:4:0
Status : OK Message : The cpu-num-cfg of the chip is set successfully. Reset system for the configuration to take effect.
-
单核分数
$ ./Run
-
多核分数
./Run -c 4
5.2.4 unixbench测试1.6Ghz (4 control cpu)
- 固件版本
-
单核分数
$ ./Run
-
多核分数
./Run -c 4
5.3 GPU glmark2测试
5.3.1 下载
$ sudo apt install glmark2
在终端输入glmark2
开始GPU测试
$ glmark2
5.3.2 glmark2测试1Ghz(3 control cpu + 1 AI cpu)
在测试过程中AI cpu并没有帮助GPU工作,也打消了我的疑虑。
- 测试结果
5.3.3 glmark2测试1Ghz (4 control cpu)
- 测试结果
体验总结
使用感受:玩了大概4天的香橙派AIpro,其出色的功耗让我整夜开着都不心疼电费。长时间的高负荷测试,运行稳定,没有异常重启,在室温25度的情况下,芯片温度最高47度。而且官方的风扇也非常给力,将风扇调制最高速度运行时CPU温度能稳定在43度左右,但是无法忍受他的噪音。
个人建议:在体验过程中遇到了一些问题,比如串口乱码、poweroff后异常启动。希望香橙派可以针对Ascend 310B
芯片进行优化,让用户的使用体验更好。也希望香橙派能和昇腾的合作越来越好,国产芯片能越做越好。