過去幾周,我對高性能 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 通道)
通過 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=//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至少比大多數主板得到更好的支持。
我真的很好奇它在更好的冷卻條件下會表現如何,一旦我拿到正式的機殼,我會重新進行一些測試,看看它的表現如何。不過,可能需要一段時間。
審核編輯 黃宇
-
主板
+關注
關注
52文章
1776瀏覽量
69790 -
開源硬件
+關注
關注
8文章
196瀏覽量
29626 -
開發板
+關注
關注
25文章
4771瀏覽量
96165 -
banana pi
+關注
關注
1文章
103瀏覽量
2920
發布評論請先 登錄
相關推薦
評論