源 arm_arm和X86处理器性能简单测试
寫在最前面
說了這個測試主要是想說arm和X86的IPC(同頻性能),評論一群文章都沒好好看的人說這不能比那不能比的半吊子真的要把我搞氣了。還有說Gamss慢的人,至少全中國也找不出幾個能寫出來這種軟件的人,再說Gamess跟Gaussian比真的慢嗎?還有噴AVX的,不要跟著Linus大神屁股后面秀優越,如果open CL的調用能跟調用原生CPU浮點計算一樣簡單,再提升一下效率的話AVX才完成它的使命(順便說一下樹莓派4 GPU沒Open CL)。說A72老的,華為鯤鵬920全系都是A72難道跟樹莓派一樣也是省成本嗎?其實在我心目中A72是非常優秀的arm構架,同期的驍龍82X應該也是迄今為止安卓IPC最強的SOC。
嚶特爾的擠牙膏技術太強,haswell相對Comet Lake 的IPC在7年內提升不到20%(CPU-L里面有跑分,可以直接比i3-10300和i7-4790k)。再說最新的跑分甚至以后的構架都可以通過對應構架的跑分相換算,不懂有啥不能比的???
最近被蘋果新mac搭載arm處理器的消息刷屏了,各路媒體發表各種看法。有人說arm性能好,嚶特爾快要倒閉了,有人說arm性能差,是不能用的垃圾,但是雙方都沒有用數據說話。
我自己也在arm和X86平臺上都弄了很多東西,比如自己編譯運行了計算化學的開源軟件如Gamess和Gromacs(留有筆記),也跑了很多跨平臺語言比如Java(留有Minecraft服務器的筆記)和Python(我也做過OpenCV識別驗證碼和Pyscf),心里早就有底了。主要是筆者手頭也沒mips和RISC-V的linux開發板,要不然測試就一起做了,就可以搞一個大新聞,可惜搞不得。
那么arm相對x86的性能究竟怎么樣呢,我簡單的做一下測評,本人水平一般,很多東西也不懂,如果有錯誤或不足請指教。
機器1.樹莓派4B(BCM2711)
機器2.戴爾飛匣3000(i5-5200u+GT920M D3 2G)
機器3.E5-2698 v3(測試數據來自https://www.v2ex.com/t/526727)
其他參考數據:各公有云機器(測試數據來自常見公有云機器的unixbench跑分對比_weixin_44706392的博客-CSDN博客_unixbench跑分排行)
跑分的部分數據已上傳至github,至于為啥不是全部,是因為前期的數據發完這篇文章都刪了,數據是后期重新跑的。
panxiuwen/UnixBench-Score?github.com評論區說可以在安卓手機上運行測試,筆者在小米6上在Termux和Linux Deploy用gcc編譯了跑分軟件,跑出來的分數也貼出來
https://zhuanlan.zhihu.com/p/162121013?zhuanlan.zhihu.com主要測試工具是筆記本使用威剛8G DDR3L 1600,樹莓派使用4G 32bit LPDDR4 3200,剛好理論帶寬相同(經過某位大神的提醒,其實LPDDR4性能還是和DDR3L性能差距很大的),測試硬盤使用同一塊鎂光BX300,測試時壽命均剩余99%,其他網絡數據僅供參考。
樹莓派使用的是樹莓派基地的debian10 arch64 U3版,筆記本使用debian10來源官方鏡像,gcc和cmake均來源于清華源,測試軟件為UnixBench5.1.3,來源github
kdlucas/byte-unixbench?github.com測試項目,說明翻譯自github
Dhrystone: 測試文本處理能力
Whetstone:測試浮點運算效率和速度
Execl Throughput:execl 吞吐,這里的execl是類unix系統非常重要的函數,非辦公軟件的execl測試
File Copy:文件的讀、寫、復制測試
Pipe Throughput:進程之間的通訊
Pipe-based Context Switching:兩個進程通過管道交換
Process Creation:進程創建
System Call Overhead:測試衡量進入和離開系統內核的消耗
Shell Scripts:一個進程可以啟動并停止shell腳本的次數
下面的測試均只使用單核成績,跑一次需要30min左右
1.探究存儲介質和跑分的關系
SSD和sd卡對跑分的影響第一項樹莓派直接使用USB3.1的硬盤盒無SD卡引導啟動,第二項用閃迪32G的C10的SD卡,Rate值為BX300的跑分值/SD卡的跑分值。結果很明顯,sd卡跟SSD比誤差在3%范圍內,屬于正常測試誤差波動,也就是說這個測試反正跟存儲介質無關,所以所有測試數據的跑分包括網上的都不會被存儲設備拖后腿。
2.探究主頻與跑分的關系
我們將樹莓派分別鎖頻至0.6Ghz和1.5Ghz進行跑分,由于1.5/0.6=2.5,所以根據表中的數據可以發現,頻率和某些跑分并不是線性的,所以我們挑出跟2.5比較近似的Dhrystone、Execl Put、Copy 256、Pipe put和System Call做IPC(同頻性能)計算
注:我選擇用樹莓派做頻率測試的原因是因為X86平臺頻率鎖不住
3.探究處理器跑測試時的真實頻率
這里的IPC值我就直接粗暴的將跑分數除了單位Ghz的主頻,查閱資料得知i5-5200u的睿頻2.7,E5-2698 v3是3.4。所以5200的IPC值就是第一排全部/2.7,2698的IPC就是第二批全部/3.4。看得出來這個計算出來的IPC結果可信度非常高,因為5代i5和3代E5的構架都是haswell(Broadwell就是14nm的haswell,所以看到嚶特爾6代之后都是lake就知道是在理直氣壯的擠牙膏了),所以兩個處理器的IPC值越接近說明測試越好。
4.將X86的分數和arm進行比較
從最后的結果可以看出,arm的IPC與X86仍然有一定的差距,只有0.5-0.8,像Copy和Pipe put分數低我認為可以通過提高緩存來解決,像Dhrystone、Execl Put這樣的文本處理和計算型功能的成績已經不是特別低了。但是最后的成績,單核要就差個2-4倍,沒辦法樹莓派主頻太低了,而且arm貌似對主流桌面端不感興趣,手機端的主頻也就摸到3.0,如果能和amd一樣用7nm hp工藝上到桌面級能跑個4.0就很驚喜了。
最后的測試的結果跟我的感覺是一樣的,樹莓派的性能比X86落后很多,A72的同頻性能也跟X86差了不少,特別是在AVX512這樣的指令集面前,arm的NEON(32位相當于AVX64、64位相當于AVX128)指令更顯得力不從心。不過我還是相信蘋果同志能把東西搞好,相對于arm很保守的公版構架,和總是扣扣索索的安卓陣營,果子總是一副財大氣粗的霸氣,而且A72構架是第二代64位arm構架,估計A78的IPC經過更迭了那么多代也是會好很多(手機的安卓實際上并不是純linux,所以不能用GCC編譯跑分軟件進行測試),arm X1更是有了大干一番的架勢。我相信arm別像嚶特爾那樣擠牙膏,IPC趕上x86還是指日可待的。
最后談一下本人的一些看法
綜上所述,我們可以看到arm和x86性能上依然有一定的差距,但本人覺得只要價格香,性能不太爛就一定有人買單,比如AMD的消費級銳龍和服務器霄龍。順便吐槽一下華為的鯤鵬云賣的比自家X86云還貴不算乳華吧?退一萬步來講,可能在2020年結束之前,世界最強超算依然是富士通。或許對于某些領域,沒有什么是堆核不能解決的。但是對于某些閉源的領域,arm在生態上就無力無法與x86爭鋒。甚至amd都無法與嚶特爾爭鋒,比如很多軟件使用的MKL數學函數庫(應該是個可選項,但是不得不承認在嚶特爾處理器上表現最好的就是MKL)或Intel Fortran compiler(在此批評開源的multiwfn不兼容gFortran)。但是我相信在開源呈現出一種趨勢下,特別是又認了蘋果、華為、高通和微軟這幾個干爸爸的好環境下,arm將不負眾望的沖出x86的封鎖,至于會不會成為"屠龍勇士",或者屠龍勇士又會不會再變成惡龍,我不敢預言。即便如此,我還是更看好開源的RISC-V,這將是以種花家為首的新興國家打破科美帝技封鎖,進入烏邦托的又一重要武器。誅神的黃昏馬上開場,可能是天下分久必合,合久必分吧,我們又可以重回80年代末90年代初那個百花齊放的時代...........
總結
以上是生活随笔為你收集整理的源 arm_arm和X86处理器性能简单测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的tell和seek_pyt
- 下一篇: 截取小数点_五年级上册系列| 小数点位置