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

相关推荐
Wallace Zhang3 小时前
STM32F103_Bootloader程序开发11 - 实现 App 安全跳转至 Bootloader
stm32·嵌入式硬件·安全
GodKK老神灭3 小时前
STM32 CCR寄存器
stm32·单片机·嵌入式硬件
杰克逊的日记9 天前
MCU编程
单片机·嵌入式硬件
Python小老六9 天前
单片机测ntc热敏电阻的几种方法(软件)
数据库·单片机·嵌入式硬件
懒惰的bit9 天前
STM32F103C8T6 学习笔记摘要(四)
笔记·stm32·学习
HX科技10 天前
STM32给FPGA的外挂FLASH进行升级
stm32·嵌入式硬件·fpga开发·flash·fpga升级
Suagrhaha10 天前
驱动入门的进一步深入
linux·嵌入式硬件·驱动
国科安芯10 天前
基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
嵌入式硬件·硬件架构·硬件工程
Li Zi10 天前
STM32 ADC(DMA)双缓冲采集+串口USART(DMA)直接传输12位原始数据到上位机显示并保存WAV格式音频文件 收藏住绝对实用!!!
经验分享·stm32·单片机·嵌入式硬件
进击的程序汪10 天前
触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
linux·网络·嵌入式硬件