Banana Pi BPI-M7 RK3588开源硬件开发板评测试

电子说

1.2w人已加入

描述

过去几周,我对高性能 ARM 开发板的追求进展有些不顺,但经过近三个月的测试,以下是我对Banana Pi BPI-M7的笔记。

这是一个早就该发布的帖子,由于多种原因而被推迟了,但简而言之,我认为这是RK3588迄今为止我测试过的最好、最紧凑的主板。

免责声明: Banana Pi 向我发送了一个评测单元(对此我表示感谢),本文遵循我的评测政策。此后,我购买了官方外壳(尚未到达,但到货后我会更新帖子),并提供了自己的 NVMe 驱动器进行测试。

第一印象

如果您曾经使用过任何近期的RK3588主板,那么M7会让您觉得它很密集 - 这是因为它仅比Raspberry Pi稍大一点,并且 PCB 的两侧都相当拥挤:

开发板

请注意底部强大的 LAN 驱动器,以及 BPI-M7 设法在边缘处封装的连接器数量。

使用低调的连接器(并且,面对现实,连接器更少,因为它只有一个 HDMI 输出)使其比Orange Pi 5+更紧凑,同时仍然能够在下面安装全尺寸 NVMe,这增加了密度感。

我的丝网印刷掩模版上写着“Bpi v1.1”,但主板装在标有“ArmSoM Sige7”的盒子里,因为ArmSoM是 Banana Pi 的合作公司。

硬件规格

与我最近看过的大多数 Rockchip SBC 一样,M7遵循非常熟悉的模式:

它是全功能的RK3588(4xA76/2.4GHz 内核和 4xA55/1.8GHz 内核,外加 Mali-G610 GPU 和 NPU)

底部 M.2 2280 PCIe 3.0x4 NVMe 插槽(利用 3588 提供的 PCIe 3.0 通道)

双 2.5GbE 端口,以及集成 WiFi 6/BT 5

通过 USB-C 连接 HDMI 2.1 和 DisplayPort 1.4 (8K30)(遗憾的是无法供电,但它有一个单独的 USB-C PD 端口,非常好)

通常的一组GPIO引脚,加上多个摄像头DSI和CSI显示器连接器)

我的样品配备 16GB RAM 和 128GB ,并且在大部分测试中eMMC我使用了1TB Corsair NVMe 。

冷却和电源

与往常一样,主板没有配备冷却解决方案(附加的金属外壳似乎有一个内部凸起用于散热,但我的还没有到货),所以我使用了我的商标铜块:

开发板

M7 刚从我的测试台上取下,带有串行控制台适配器和 Wi-Fi 尾纤(不包括在内)。

与之前的主板一样,M7使用100W 桌面 USB-C PD 充电器供电时空闲温度约为 40摄氏度,常规使用(浏览或中等至轻度桌面负载)时平均功耗为 2-3W,空闲时功耗为 1W 或更低 - 也与其他主板一致。

事实上,我花了一点功夫才让它的功耗超过 6W,只有在运行ollama或进行 WebGL 基准测试时它的功耗才会超过 10W。

操作系统支持

我对M7非常感兴趣的原因之一是,它是极少数支持 Armbian Platinum 的主板之一,因此我测试了它的两个版本:

Armbian Jammy(带有 GNOME 桌面和驱动程序的UbuntuGPU 22.04 )

Armbian Bookworm(带有 CLI 界面的Debian 12,我使用它作为运行Proxmox的基础)。

为了新颖性(和更主流的体验),我也尝试了Ubuntu Rockchip 24.02(一个试图为 Rockchip 设备提供更新的 Ubuntu 映像的新发行版),但我所有的基准测试都是在Armbian Bookworm 中完成的(稍后会详细介绍)。

更新:在我进行测试后的几周内,Armbian发布了新版本的Ubuntu Noble,据说它有更好的MESA支持VPU。我还没有时间测试它,但我会在测试后更新这篇文章。

这两款产品都搭载了内核 6.1.43,与所有仍搭载 5.x 内核的 SBC 相比,差距不大。

开发板

总体而言,Armbian体验非常好,但RK3588GPU 驱动程序存在一些常见问题(仍然有点不稳定,但在使用中很明显)。我毫不费力地启动并运行了一个可用的 GNOME 桌面,M7反应非常灵敏。

从服务器的角度来看,将 Bookworm 安装升级到Proxmox很顺利,并且我能够毫无问题地将其加入到我的集群中。

基准测试

到目前为止,我已经测试了相当多的RK3588主板,我不得不说没有任何意外——在运行 Armbian Bookworm 时,M7 的得分与 Orange Pi 5 和 YeeYooToo 的得分相差 5% 以内,NVMe 吞吐量的得分几乎完全相同(因为,嗯,我实际上使用了相同的驱动器):

NVME 性能

我决定跳过对内部 EMMC 的基准测试,因为我正在从 NVMe 驱动器启动和运行操作系统,甚至没有文件系统。

像往常一样,我使用了fio:

 

# fio --filename=/< path >/file --size=5GB --direct=1 --rw=randrw --bs=64k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=random-read-write --eta-newline=1

 

...结果相当不错,M7在吞吐量方面略胜于Orange Pi 5+ ,但差距并不大:

 

机器 IOPS(64K随机读取) IOPS(64K随机写入)
香蕉派 M7 (NVME SSD) 13460 13326
英特尔 N5105 (SATA 固态硬盘) 2741 2743
英特尔 i7-12700 (NVMe SSD) 42926 42908
英特尔 i7-6700(SATA 固态硬盘 1) 2280 2280
英特尔 i7-6700(SATA 固态硬盘 2) 2328 2329
Orange Pi 5+ (NVMe SSD) 13372 13371
树莓派 4 (USB 3.0 SSD) 2001 2003
优易通 R1 (NVME SSD) 4670 4677

 

OLLAMA CPU 性能

然后我继续进行ollama,在 CPU 模式下测量tinyllama和的令牌生成dolphin-phi(这是我在之前的测试中使用的模型):

 

for run in {1..10}; do echo "Why is the sky blue?" | ollama run tinyllama --verbose 2 >&1 >/dev/null | grep "eval rate:"; done

 

得出了以下结果:

 

机器 模型 评估令牌/秒
香蕉派 M7 海豚 4.25
蒂尼拉马 10.3
英特尔 i7-6700 海豚 7.57
蒂尼拉马 16.61
香橙派 5+ 海豚 4.65
蒂尼拉马 11.3
树莓派 4 海豚 1.51
蒂尼拉马 3.77
优易图 R1 海豚 3.9
蒂尼拉马 10.5

 

令我最初感到惊讶的是,M7比Orange Pi 5+稍慢一些,我花了一段时间才弄明白原因——我怀疑这与热节流有关,因为 M7在这些测试中变得非常热(当温度超过 80摄氏度时,时钟速度就会降低),并且Orange Pi 5+不仅在二月份进行了测试(当时温度较低),而且还安装在一个有利于对流冷却的外壳中。

所以我实际上称之为平局 - 因为我现在有 16GB RAM 可以在M7上使用,并且官方案例正在进行中(这应该可以改善冷却效果)我将重新审视这一点phi3:instruct(初步结果还可以,但我想看看更好的冷却是否真的有所不同)。

RKNN 工具包

像往常一样,我调查了支持状态rknn。RKNN -LLM现在已经存在,但它有几个怪癖:

它要求你将模型转换为.rknn安装了 Python 3.8(令人惊讶的是,Python 3.8 非常古老)的 Linux x64 机器上的文件

然后它缺少关于如何在设备上运行模型的任何文档

...所以我无法真正让它工作——当我有更多时间时我会重新审视这个问题。

关于 UBUNTU ROCKCHIP 的说明

但我的大部分测试(以及我停滞了一段时间的地方)都是在Ubuntu Rockchip 24.02 上进行的,这是一个新的发行版,它试图为 Rockchip 设备提供更新的 Ubuntu 映像。

它看起来很有希望,但我遇到了一些问题:

M7在运行时会变得非常热,安装时以及正常使用(浏览器、终端等)时温度达到 76摄氏度。

启动速度非常慢(需要一分钟多的时间才能到达登录提示)。

尝试将其安装到 EMMC 后,我收到一个非常奇怪的uboot错误,导致我无法通过按下电源按钮来启动它。

相比之下,即使两者都设置为这样,Armbianperformance内核的平均运行温度也要低得多(并且我的所有基准测试都是使用调节器在Armbian Bookworm中完成的ondemand)。

我花了几个星期的时间,但最终我能够通过重新刷新官方 Wikiuboot中的映像来解决启动问题,但需要注意的是,这还要求我使用真正的 Windows 机器来刷新它——使用 VM 非常困难,因为端口会改变 USB ID,而且我无法在 Linux 上的 Windows VM 中工作。OTGRKDevTool

支线任务:设置 RKDEVTOOL 语言

能够使用的一个关键步骤RKDevTool(除了ADB在 Windows 中安装驱动程序)是能够以英语使用它,因为我可以获得的所有最新版本都默认为中文。

诀窍是将随附的Selected语言设置为:config.ini2

 

#选择工具语言:Selected=1(中文);Selected=2(英文) [Language] Kinds=2 Selected=2 LangPath=Language Lang1File=Chinese.ini Lang1FontName=宋体 Lang1FontSize=9 Lang2File=English.ini Lang2FontName=Arial Lang2FontSize=9

 

否则,界面导航会有点困难——但与实际弄清楚我必须重新刷新图像相比,这是一个小问题uboot……

开发板

我使用 RKDevTool 3.19 和 1.15.1 uboot 镜像来修复我的主板

支线任务:有效使用 VS CODE 串行监视器

在调试启动问题时,我使用了带有扩展的 USB-TTL 适配器ms-vscode.vscode-serial-monitor。

但是,该扩展不支持目前似乎所有的范围的 1.5Mbps 波特率,所以我不得不将其添加到 VS Code 配置中以使用自定义波特率:

 

"vscode-serial-monitor.customBaudRates":[1500000]

 

媒体转码

尽管我还没有找到用途rknn-toolkit2并且ollama仍然无法利用RK3588先进的硬件,但我终于能够在支持下测试Jellyfin——RK3588它有点崩溃(有时很难弄清楚是客户端还是服务器崩溃),但 CPU 负载的减少明显,并且使其作为媒体服务器更具吸引力——尽管它很难与英特尔的 QuickSync 竞争。

请记住,您必须选择正确的 Docker 映像才能实现这一点,并且它不是全面的 GPU 支持——似乎只是ffmpeg进行了修补以执行此操作,而且我还没有让HandBrake工作(这将是一个更有趣的测试)。

但我打算在Jellyfin发布一两次之后回到这个主题并进行更系统的测试,因为VPU同时RK3588支持硬件解码和/硬件编码。H.265AV1H.264H.265

我们只需要软件支持再改进一点,我想我们就会处于一个良好的状态。


更新:正如我上面提到的,在我充实这份草案后的几周内,Armbian推出了一个具有改进的 MESA/VPU 支持的 Ubuntu Noble 版本,但我还没有时间对其进行测试。我会在测试后更新这篇文章。

结论

不难看出M7的吸引力–主板上包含了很多可以立即使用的功能,而这些功能在其他主板上要么是附加的,要么根本不存在:

EMMC 存储(Orange Pi 5 没有配备)

Wi-Fi(Orange Pi 和 YouYeeToo R1 均不具备此功能,尽管它们都有 M.2 插槽)

双 2.5GbE 网络

M.2 2280 NVMe 插槽(80 毫米 NVMe 驱动器的选择比 42 毫米多)

令我失望的一件事(这在当前的 SBC 中很正常)是缺少单线操作来将其插入显示器并以此方式供电 —— 这感觉像是错失了机会。

但是,如果您想要一台可以实际开发的 ARM Linux 机器,那么硬件功能和官方的ArmbianRK3588支持使它比 Raspberry Pi 5 更具吸引力——Pi 5在原始 CPU 能力或吞吐量(无论是网络还是存储)方面无法与任何主板相匹敌,而 M7至少与我测试过的其他 Rockchip 主板相当。

是的,文档和软件支持仍然有点混乱,但这对于这些主板来说是正常的 - 并且 M7至少比大多数主板得到更好的支持。

我真的很好奇它在更好的冷却条件下会表现如何,一旦我拿到正式的机壳,我会重新进行一些测试,看看它的表现如何。不过,可能需要一段时间。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分