OrangePi AIpro (8T)使用体验,性能测试报告

前言

这段时间收到了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芯片进行优化,让用户的使用体验更好。也希望香橙派能和昇腾的合作越来越好,国产芯片能越做越好。

Reference

  1. (用户手册)http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html

  2. https://zhuanlan.zhihu.com/p/698378491

相关推荐
blessing。。15 分钟前
I2C学习
linux·单片机·嵌入式硬件·嵌入式
嵌新程2 小时前
day03(单片机高级)RTOS
stm32·单片机·嵌入式硬件·freertos·rtos·u575
Lin2012302 小时前
STM32 Keil5 attribute 关键字的用法
stm32·单片机·嵌入式硬件
电工小王(全国可飞)2 小时前
STM32 RAM在Memory Map中被分为3个区域
stm32·单片机·嵌入式硬件
maxiumII2 小时前
Diving into the STM32 HAL-----DAC笔记
笔记·stm32·嵌入式硬件
美式小田5 小时前
单片机学习笔记 9. 8×8LED点阵屏
笔记·单片机·嵌入式硬件·学习
兰_博5 小时前
51单片机-独立按键与数码管联动
单片机·嵌入式硬件·51单片机
时光の尘6 小时前
C语言菜鸟入门·关键字·float以及double的用法
运维·服务器·c语言·开发语言·stm32·单片机·c
嵌入式大圣7 小时前
单片机结合OpenCV
单片机·嵌入式硬件·opencv
日晨难再9 小时前
嵌入式:STM32的启动(Startup)文件解析
stm32·单片机·嵌入式硬件