X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

背景:現在市面上有很多64位多核A53的卡片電腦,比如樹莓派3、香橙派win、友善之臂K1+等。這些神奇的小電腦在功耗方面的表現非常好,CPU的性能也尚可,所以有不少玩家用它們DIY了筆記本,代替那些X86的高耗電機器,當日常的個人電腦用。

但是,大家都在抱怨ARM桌面的用戶體驗不好。CPU還是不夠快;另外,顯卡實在是太垃圾了。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

X86的Linux機器一般使用Intel、ATI或NVIDIA的顯卡,桌面操作、視頻播放或遊戲娛樂的體驗都比較好。ARM的機器的圖形處理器就稍微寒酸一些,使用Mali 400、Mali450等低性能GPU,更糟的是在一些主線內核裡還經常不帶驅動。

我也覺得不能玩H264硬解和OpenGL的電腦不是一臺好遊戲機。。。

其實呢,友善之臂的代碼小哥也嫌棄自己過去做的桌面系統固件太不好用,所以他最近給自己新做了一整套真正好用的ARM桌面Linux系統。

代碼小哥找出了他們團隊裡最牛逼的硬件——Nano PC T4(基於RK3399)。

然後開發了整整七七四十九天,終於煉成了新固件——FriendlyDesktop18.04

這是首個支持GPU/VPU加速和4K硬解播放的Friendly系統,也是目前驅動和應用支持最完善的RK3399固件。鏡像文件分享在百度網盤上RK3399-sd-開頭的用於TF啟動運行;RK3399-eflasher-開頭的用於卡刷;RK3399-TypeC-開頭的用於線刷。

代碼小哥對自己的作品非常自豪,所以強烈建議我趕緊試用一下。

他說,這次的系統固件,有以下幾點特性:

1) 帶X桌面 LXDE,基於64位Ubuntu 18.04系統構建,支持OpenGL ES加速,支持硬解播放

2) 支持SD卡啟動運行,支持TF卡刷機或Type-C刷機

3) 完全保留FriendlyCore 18.04 for RK3399的特性,集成帶GPU和VPU加速的Qt 5.10.0

4) 內置開源硬解的4K視頻播放器 QtVideoPlayer(Menu->Sound & Video->Qt5-VideoPlayer)

5) 內置 QtCreator IDE,Arduino 和 Scratch等流行開發和學習工具,開箱即用

6) 支持雙屏異顯 (可選擇eDP/DP/HDMI 任意兩路同時輸出)

7) 支持eDP電容觸摸屏 (HD702E)

8) 支持AP6356S無線模塊 (802.11 a/b/g/n/AC,BLE4.0)

9) 支持升兆以太網即插即用

10) 支持OpenCV 3.4 一鍵安裝

11) 內置gcc版本:7.3.0

12) 內核版本:4.4.138

評測:我知道大家都對OpenGL感興趣,那麼我們先測試一下OpenGL吧。如果GPU沒有正常驅動的話,玩遊戲會非常卡。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

在glmark裡,主要是做各種多邊形、紋理和著色器的測試。比如下圖是個貓模型曲面漫反射渲染的測試。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

下圖是個玻璃材質著色器渲染兔子模型的測試。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

不同的渲染項目下,計算量是不同的,各個測試的幀數記錄在終端輸出上。

這塊板子的處理器RK3399是大小核架構的。其中,CPU ID號0到3的四個是低速的A53核心,CPU ID號4和5的兩個是高性能的A72核心。

在上一篇文章裡,我們已經知道大小核這種奇葩架構的多線程能力並不好

所以,測試時候,如果不指定核心,讓操作系統瞎調度,並不能發揮系統的真正實力(雖然幀數也挺不錯的,毫無卡頓)。比如第一項是45FPS。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

當指定使用CPU ID號4和5的兩個高性能A72核心時候,測試得到的幀數比剛才要高一些。比如第一項是57FPS。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

我們稍微等待一下,等所有GPU測試項目都跑完。整個過程都非常流暢,幀數都保持再30幀以上;這說明一般的OpenGL渲染程序或遊戲跑起來都不會有太大的問題(這個測試模擬了你在遊戲時候實時渲染不同的場景)。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

接下來我們來試一下OpenCV人臉識別的例子。我們關注一下識別的速度,大約是100毫秒,也就是說可以達到10Hz的識別速度。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

對於RK3399,我們也要關注一下大小核在做OpenCV人臉識別時候的並行效果。

大小核能不能在OpenCV里正常並行加速呢?

我做了下面這幾組測試。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

一個A72核心單獨跑這個算法,大約需要250毫秒。

兩個A72並行,大約需要140毫秒。速度比單個A72快。

換做是一個比較慢的A53核心單獨跑,大約需要450毫秒。

四個A53並行,大約需要140毫秒。並行提速效果不錯。

如果2個A72+4個A53一起上,時間只要大約100毫秒。在OpenCV測試裡,大小核一起上的速度是最快的。

在上面這個測試裡,我們可以發現RK3399的大小核在OpenCV並行計算過程中的效率還是可以的,能大幅提高計算速度;並不會因為大小核之間的速率不一致而在調度過程中浪費太多資源。(但是我們不要高興的太早,最後面的測試裡會發現,有時會發生“逆加速”)

一個額外的小測試:前段時間,有網友在雲漢試用群裡反映Nano PC T4的DDR3內存寫入速度只有300MB每秒,慢得跟樹莓派3的DDR2差不多。正好我這次拿到Nano PC T4實物了,我們就測試一下。

內存寫入速度的測試代碼如下。這是個6線程寫入的例子,稍作修改就可以改成4線程寫入。程序的算法很簡單,分配1GB的內存空間並填滿1,測多少時間完成。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

代碼編譯運行結果如下(絕無作弊)

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

我們可以發現,不管是1個A53還是4個A53並行寫入,都不能把內存的寫入帶寬耗盡。當2個A72和4個A53一起並行寫入時,速度大約是1.125GB每秒。大家可能對這個速度沒有概念,1.125GB每秒有多快呢?

3328板子的DDR4內存寫入速度是1.089GB每秒。Nano Pi T4的DDR3內存寫入速度是1.125GB每秒。

大家可以發現T4雖然內存規格低了一些,但是實際使用時候也是一點都不吃虧的。因為內存寫入瓶頸是在處理器,RK3399的處理器比較好,往內存寫入數據的速度快。

​另一個額外的小測試:上一篇文章《大小核的OpenMP多線程並行計算測試》裡,我們已經知道大小核在並行時候是會浪費很多資源在不同速度進程的調度上的。我們今天再做個測試,如果指定用哪幾個CPU做並行,效果是不是能好一些?

測試代碼如下。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

測試過程的截圖如下,分別對不指定CPU(系統自動調度),指定只用A53,和只用A72做了對比。

X86桌面太耗電?ARM桌面性能太爛?試試友善之臂的新系統吧

如果不指定CPU,單線程耗時1.10秒;這個速度介於指定A53單線程(3.94秒)和指定A72單線程(1.01秒)之間,但是更接近A72單線程時候的耗時。這說明系統的自動調度效率還是比較高的,能主動讓A72去執行大計算量的工作。

所以,對於單線程的工作,我們只要讓系統自己去調度就好了

​A53的單核計算速度很慢,但是4核並行時候的提速效果較好,計算耗時從3.94秒降至2.08秒,耗時減少一半。

所以,對於那種又需要省電又需要一定計算能力的工作,可以採用指定4個A53並行的方式來做

​A72的單核能力不錯,但是越並越慢。單核A72時候速度最快,只要1.01秒。指定兩個A72並行時候,速度反而變慢了。

可能是ARM得罪了OpenMP吧,所以OpenMP對ARM的最新A72內核做了坑爹的“逆優化”

但是不管怎麼說,速度依然是很快的,日常遊戲和看視頻娛樂都沒有問題。

相關推薦

推薦中...