2018年10月,二代龍芯派正式發布。經歷了長達接近半年的跳票以後,在2019年4月終於開始對龍芯俱樂部的愛好者發貨了。拿到派以後,我就準備對它做一個詳細的測評。
龍芯派是龍芯公司用龍芯2K1000處理器做的一個開發板。第一代龍芯派在很多地方模仿了樹莓派,但有很多不足,諸如讀卡器速度太慢等;二代龍芯派在一代派的基礎上做了很多改進,體積變大,接口更加豐富。
外觀參數對比
你見過二代龍芯派嗎?如果沒有,現在你見過了。
▲二代龍芯真機圖
▲二代龍芯派接口,圖自龍芯開發者商城
中間散熱片下面安裝的,就是龍芯2K1000處理器。拆下散熱片,擦掉導熱矽膠,終於露出了龍芯2K1000處理器。
▲龍芯2K1000處理器
龍芯派的尺寸是nano-ITX 12cm×12cm,但設計的時候沒有考慮到接口的擺放,導致所有的四個面都有接口,而且接口的設計也不合理。
組裝好的龍芯派,四面都有接口。
▲第一面:DB9串口
▲第2面:Ejtag接口,reset按鍵和start按鍵,顯示屏接口,電源接口
▲第3面:GPIO插針以及PCIE接口
▲第四面:從左往右,分別是兩個USB口,一個OTG口,一個HDMI口以及兩個自適應千兆網口
▲局部細節1
SSD下面的四個晶片,兩個VP232是CAN收發器,ISSI的是存MAC的EEPROM。最右邊的GD是bios;如果需要用編程器手動刷新pmon,需要刷的就是這顆晶片。
▲局部細節2
兩顆紫光內存
▲局部細節3
16GB的金士頓固態硬碟
▲局部細節4
兩個RTL8211E的千兆乙太網晶片
▲局部細節5
ALC269音效卡晶片,保證龍芯派能出聲
▲局部細節6
Sii9022 RGB轉HDMI晶片
如果僅僅滿足於開箱曬圖,然後問一句「你怎麼看」,那和某些自媒體有什麼區別?作為硬核愛好者,當然要拿出基準程序,好好的測測二代龍芯派的性能了。
二代龍芯派使用的處理器是龍芯2K1000,採用40納米工藝生產,雙核,主頻1.0GHz。很明顯,這樣的處理器不是拿來和主流的x86處理器去競爭市場的。官方的宣傳海報宣稱,龍芯2K1000的性能相當於A53。恰好,樹莓派3的處理器是採用了4個A53核心的ARM處理器,因此我們決定將樹莓派和2K1000的性能做一個詳盡的對比。
我們採用的測試的方案用phoronix test suite作為基準程序,對比樹莓派3B+和二代龍芯派的性能。之前,我們用同樣的方法測試了龍芯3A3000的性能。詳情請看IT之家的投稿:
《IT之家網友投稿:全面深扒國產龍芯3A3000處理器性能細節》
https://www.ithome.com/0/395/791.htm
新發布的樹莓派4採用的BCM2711處理器擁有4個A72核心,1.5GHz的主頻,用28納米的工藝製造,性能太強,龍芯派肯定比不過。
▲二代龍芯派和樹莓派3B+參數對比
和樹莓派相比,龍芯派自帶16GB的SSD硬碟、散熱片、亞克力支架,並且帶有高速的PCIE接口,有更豐富的接口,從設計上更接近開發板。從價格上,二代龍芯派仍然是樹莓派的6倍多。龍芯派這麼貴,值得嗎?除了高額的情懷稅,它在性能上和樹莓派相比有優勢嗎?
我們用phoronix test suite對龍芯派的性能進行了測試,並且和openbenchmarking網站中查詢到的樹莓派3B+的數據進行了對比。順便也重複利用了一下龍芯3A3000處理器的數據,和樹莓派、龍芯派進行了對比。我們將數據大致分為單核性能、多核性能兩部分,然後每一部分再大致分為整數性能和浮點性能。有一些不好歸類的,單獨進行介紹。下面,我們將分別介紹我們的測試結果。
1. 單核整數性能
1.1 TSCP
TSCP是一個象棋性能測試的程序。可以認為這是一個以單核整數性能為主的測試。從測試結果來看,在使用了優化的數學庫(openlibm)的前提下,龍芯派的性能達到了樹莓派的85%;如果使用默認的libm,龍芯派的性能只有樹莓派的55%。使用openlibm,性能提高了53%。這是非常大的性能提升。使用libm的龍芯3A3000的性能是樹莓派的1.3倍,假如採用openlibm的話,性能大概是樹莓派的兩倍。
在都使用libm的情況下,龍芯派中的2K1000處理器性能是龍芯3A3000的43%。考慮到龍芯2K1000主頻只有3A3000的2/3,而且只有雙發射(3A3000是四發射),這個性能還算正常。
1.2 壓縮算法
採用三種壓縮算法,分別統計了壓縮文件的耗時。從數據可以看出,龍芯派的性能比樹莓派差。在Pbzip、LZMA和GZIP三種算法上,龍芯3A3000和龍芯派與樹莓派相比,性能分別是3.89、1.86、1.50倍和83%,71%和79%。在壓縮算法上,龍芯派表現欠佳。
運行Pbzip、LZMA和GZIP這三個程序,龍芯派的性能分別為龍芯3A3000的21%、38%、和52%。需要注意的是,pbzip2考察的是程序的多核性能。
2. 單核浮點性能
2.1 Scimark2
Scimark2是一個單核性能測試程序。測試的內容包括一系列算法,包括雅克比逐次超鬆弛法、稠密LU矩陣分解、稀疏矩陣乘、快速傅利葉變換、蒙特卡羅。
從Scimark2數據來看,即使龍芯2K1000處理器的主頻只有1.0GHz,其性能也遠遠超過主頻1.4GHz的BCM2837B0處理器,浮點運算模塊功能很強大。不過,在龍芯3A3000面前就露餡了,綜合性能只有3A3000的1/4。最讓人意外的是蒙特卡羅性能,龍芯3A3000居然比龍芯派還要糟糕,猜測是在libm部分性能沒有優化。
從Scimark2的綜合性能看,龍芯派的性能是樹莓派的2.13倍,然而只有龍芯3A3000的26%。
2.2 Aobench
在龍芯派上,分別用libm和openlibm進行了編譯,我們發現用openlibm的時候性能比libm快50%以上。龍芯派的速度只有樹莓派的70%。值得注意的是,我們發現使用libm的龍芯3A3000速度居然比樹莓派還要慢。可見龍芯用的libm數學庫性能有多麼的糟糕。
在使用libm的情況下,龍芯派的性能是龍芯3A3000的62%。
2.3 Himeno
Himeno基準是一個使用點Jacobi方法的壓力泊松線性解算器,數值越大性能越好。測試表明,龍芯3A3000和龍芯派性能都超過樹莓派,性能分別是後者的2.65倍和2.05倍。我們還發現,和使用libm相比,使用openlibm龍芯派的性能提高了42%。
使用libm時,龍芯派單核性能是龍芯3A3000的54%。
3. 多核整數性能
3.1 7zip
7zip是一個常用的benchmark程序,反映的是處理器的多核、整數性能。同樣是4核處理器,同樣是1.4GHz的主頻,龍芯3A3000的性能是樹莓派的2.6倍。龍芯派核數只有樹莓派的一半,7z性能是樹莓派的56%,看起來表現還可以。和單核龍芯2F相比,龍芯派的7z性能是前者的2.4倍。龍芯派多核性能只有3A3000的22%。
3.2 多重序列對比
MAFFT(多重序列對比)是一個多線程程序,統計程序運行的時間,數值越短越好。根據測試,龍芯3A3000和龍芯派的性能分別是樹莓派的1.83倍和0.61倍。龍芯派性能是3A3000的33%。
3.3 Primesieve
Primesieve是多線程的質數生成程序,根據計算用的時間考察處理器的整數性能。從測試結果來看,龍芯3A3000的性能是樹莓派的2.8倍。龍芯派的多核性能只有樹莓派的66%,3A3000的24%。
4. 多核浮點性能
4.1 TTSIOD 3D Renderer
TTSIOD渲染測試是多核性能測試,測試結果為渲染的速度。從測試結果來看,龍芯3A3000的多核性能是樹莓派的1.75倍;龍芯派的多核性能是樹莓派的47,3A3000的27%。
4.2 Smallpt
Smallpt是多線程光線渲染測試程序,數值越低,性能越好。從以上的數值可以看到,3A3000的性能是達到了樹莓派的4.9倍;龍芯派的性能是樹莓派的1.25倍,3A3000的23%。
雙核的龍芯派,多核性能超過了4核的樹莓派!
4.3 高性能共軛梯度
從高性能共軛梯度看,龍芯派的性能只有龍芯3A3000的1/3。我沒有找到樹莓派3B+的測試數據。
5. 其他
5.1 音頻編碼
對於音頻編碼,我們做了兩組測試,分別將WAV音頻用MP3和FLAC進行編碼,耗時越短越好。從測試的結果來看,在MP3編碼表現上,龍芯3A3000和龍芯派均快於樹莓派,速度分別是樹莓派的4.6倍和2.1倍;在FLACi編碼上,差距沒有那麼大,速度分別是樹莓派的1.27倍和1.10倍。究其原因,MP3編碼是一種有損壓縮算法,而FLAC是一種無損壓縮算法。推測前者需要進行較多的浮點運算,而後者主要是整數運算。
5.2 緩存性能測試
從緩存性能看,龍芯3A3000性能超過同主頻的樹莓派,在讀取/修改/寫入的性能測試中,龍芯3A3000的性能是樹莓派的4.4以上,寫入速度速度是樹莓派的1.5倍。但在第三項讀取速度測試中,和樹莓派相比優勢不明顯。而龍芯派,前兩個測試性能明顯優於樹莓派,而讀取速度只有樹莓派的一半。
5.3 內存性能測試
內存性能測試,簡單一句話,龍芯派落後於樹莓派。龍芯派內存頻率默認為400MHz,樹莓派內存頻率默認為450MHz,估算一下龍芯派內存性能只有樹莓派的89%。根據龍芯2K1000處理器手冊,內存接口最高頻率為533MHz。很明顯,龍芯派的設計沒有發揮出內存的速度。
5.4 網絡服務性能測試
Apache測試反映了系統在運行網絡服務時的多核性能。根據我們的測試,龍芯3A3000表現良好,運行Apache性能是樹莓派的1.86倍。龍芯派的表現不佳,性能分別只有樹莓派的44%,龍芯3A3000的24%。
5.5 解釋性語言
我們對比了龍芯派和樹莓派運行兩種腳本語言的性能。龍芯派的性能悲劇了。運行PHP性能和python的性能分別只有樹莓派的36%和93%。如果要拿龍芯派跑PHP程序,還得三思而後行。
從Perl語言的性能來看,龍芯派的性能只有樹莓派的46%左右。從Python、Perl、PHP三種解釋性語言的運行效果來看,性能都不是很好。原因可能有兩個:一個是這些測試主要反映程序的整數性能而非浮點性能,一個是龍芯派上Python、Perl、PHP的解釋器都沒有進行優化。
5.6 SQLite
SQLite測試,耗時越短越好。從測試結果來看,龍芯派速度是樹莓派的2.13倍。
總結
上面的測評實在是太羅嗦了,能不能告訴我誰更強一些?一圖勝千言,先放一張圖。
▲✅代表優勢項,❌代表劣勢項
在21項測試中,龍芯派贏了7個,樹莓派贏了其中14個。作為一個只有1GHz主頻的雙核處理器,和1.4GHz主頻的4核處理器做比較,能夠贏7個,還是有些讓人意外的。我們來嘗試分析一下龍芯派和樹莓派相比的優勢和劣勢:
1. 價格太高。1399元的價格,和樹莓派220元的價格相比實在是太!高!了!不過,據小道消息龍芯正在做乞丐版教育版的龍芯派,價格會有大幅下降。
2. 主頻太低。同樣是40納米工藝的處理器,龍芯2K1000主頻只有1.0GHz,而樹莓派3B+的處理器主頻高了40%。IPC再好,主頻不夠高也白搭。好比一個技能全面的蠅量級拳王,碰到重量級拳手的話就會被一拳撂倒。
3. 軟體生態不夠好。在測試中可以明顯看到,作業系統自帶的libm性能非常糟糕,沒有進行充分的優化,導致龍芯派在很多測試項目上成績非常差。用libm的龍芯3A3000性能甚至會不如用openlibm的龍芯派。這個情況已經存在很久了,但我沒有看到一點改善的跡象。也許是我用龍芯的姿勢不太對吧!:(
1. 純國產的CPU,自主可控。沒有買國外的CPU核,也不用給ARM公司交昂貴的指令集授權費用,也不需要擔心美國制裁。對於普通用戶來說,這個優勢聊勝於無吧!對於特殊行業的用戶來說,可能是非常重要的。
2. 軟體全開源。從BIOS到作業系統,統統開源。
3. GS264處理器核很優秀。1GHz的龍芯2K1000能夠在某些項目上打敗1.4GHz的A53處理器,足以說明GS264處理器核的優秀。如果看同主頻的性能,龍芯還會在更多項目上領先(假如不考慮功耗問題的話……)
總之,二代龍芯派在部分性能上接近了樹莓派上的4核A53處理器,提供了豐富的接口,可以在工業控制、計算機教育等領域發揮重要的作用。和龍芯3A3000處理器相比,龍芯2K1000單核性能大約是前者的40%~50%,多核性能是前者的20%~25%。期待龍芯派能在性能、價格、軟體生態上有更多的進步,讓它能夠更加親民、易用。
致謝
感謝龍芯某個不能提他名字的銷售對此文章的支持!感謝龍芯派群老鼠老師和flygoat兩位對文中部分錯誤的修正。