龍芯、飛騰大比拼

文章推薦指數: 80 %
投票人數:10人

據公開消息,龍芯和飛騰最新的產品都與去年年底開始流片,也就是說,新產品即將與國人見面。

那麼,在飛騰的ARM晶片和龍芯3A3000即將完成流片之時,筆者將從自主智慧財產權、裸CPU性能和軟體方面對飛騰和龍芯上一代產品——飛騰1500A和龍芯3A2000做一個對比,特別是之前有媒體對比龍芯3A2000和飛騰1500A總體上比較客觀,但在局部也有一些紕漏,筆者趁機在此做一下修正。

|先從自主智慧財產權談起

檢驗自主可控的標準——信息安全不受制於人,產業發展不受制於人。

因此,這就必須做到具有指令集的發展權、微結構是自主設計、利潤不受制於人等要素。

指令集的發展權

龍芯的指令集是loongISA,共有共1907條指令。

源自MIPS:

216條MIPS基礎指令,獲得永久授權。

311條DSP指令,獲得永久授權。

自主指令:

MIPS基礎指令擴展——148條loongEXT,

虛擬機擴展——5條loongVM指令,

二進位翻譯擴展——213條loongBT,

向量指令擴展——1014條loongSIMD

顯而易見,龍芯獲得的是永久授權,並擁有自行擴展指令集的權力。

另外龍芯還就此申請了100+專利。

而在MIPS公司破產後,被Imagination收購,雖然在嵌入式晶片方面有P5600這樣的產品,但至今卻未曾開發高性能CPU,有步惠普收購康柏進而獲得Alhpa的後塵之趨勢。

這直接導致龍芯是MIPS陣營里唯一的高性能CPU,加上龍芯不失時機的向開源組織捐獻了一批機器,致使一些開源軟體以龍芯作為MIPS的代表做適配。

因此,在Imagination發展力度小+龍芯獲得MIPS永久授權+自行擴展指令且申請專利+開源軟體針對龍芯做適配,共同導致龍芯在指令集上受MIPS的鉗制已然微乎其微,基本可以為認為走上了單飛的道路。

而國內ARM陣營IC設計公司僅僅能購買ARM64指令集,而無法買到ARM32位指令集授權,而且ARM64指令集授權期限為5年,沒有自主擴展的權力,也僅僅能用於設計伺服器晶片。

  • 微結構是否自主設計

龍芯3A2000的微結構是GS464E,晶片代碼均自主設計,除標準單元和Memory Compiler生產的RAM之外,不存在第三方IP。

而飛騰1500A的微結構是ARM Cortex A57。

由於晶片的安全性、性能、功耗很大程度上取決於微結構,因此很難說飛騰1500A符合安全可控和自主智慧財產權的要求。

當然,也有網絡消息稱飛騰1500A用的是飛騰自主設計的「小米」,與「火星」、「地球」是同一個微結構,但筆者認為此消息為謠傳,具體原因在下文分析。

  • 利潤不受制於人

購買ARM指令集授權的價格非常昂貴,據筆者了解僅僅ARM64指令集每5年的授權費就高達上千萬美元乃至近億美元。

而恰恰是如此高昂的授權費致使由U.C. Berkeley等幾個大學推出RISC-V指令集,Google、惠普、Oracle、西部數據等公司成立RISC-V基金會的原因——

RISC-V指令集是一個沒有專利問題和沒有歷史包袱的全新指令集,並且以BSD許可證發布。

任何公司都可以在自己的產品中免費使用,而修改也無需再開源。

購買ARM IP核授權,比如ARM的A53或A57,集成自己的SOC,這種做法雖然能依附於AA體系,有利於市場化運營,能賺快錢,但在利潤方面也被外商控制。

因為在購買IP要支付授權費,每生產一片晶片還要支付專利費。

而且每個環節做什麼,有多少利潤,在AA體系中已經形成潛規則,國內IC設計公司依附於AA體系基本上淪為外商的馬仔

這也是國內ARM陣營IC設計公司雖然營業收入不低,但利潤普遍不高的原因之一。

相比之下,龍芯不僅不需要向MIPS公司購買IP,反而可以對外出售IP,海信、海爾就向龍芯購買了200萬套IP用於智能家電和機頂盒。

下圖為懶人包,簡要概括了龍芯3A2000和飛騰1500A在智慧財產權方面的差別。

  • 飛騰1500A的微結構是A57

有網絡消息稱飛騰1500A用的是飛騰自主設計的「小米」,與「火星」、「地球」是同一個微結構,不過筆者認為此消息為謠傳,主要有以下幾點:

1、時間上來不及

眾所周知,如果一款CPU從頭開始設計,研發周期一般要3年,而如果像海思、展訊那樣購買ARM的IP授權做集成,研發周期也要1年至2年,而飛騰在購買ARM 64位指令集授權後,不到2年的時間裡就拿出了飛騰1500A,就開發周期來看,飛騰1500A這款晶片很有可能是直接採用ARM Cortex A57。

2、飛騰1500A與「火星」的SPEC2006測試成績差距過大

根據第三方測試,飛騰1500 spec06測試的整數為10(@1.8G),換算一下就是5.5/G,而根據飛騰在2015年的發布後上公布的消息,「小米」的測試結果是9.6/G,雖然不談測試環境的SPEC測試跑分都是耍流氓——因為不同的測試環境的原因,SPEC測試分數會有一定浮動,但74.5%的跑分差距實在過於駭人——即便是技術實力強如Intel,在擁有ICC的神優化,以及向量指令優化等因素的情況下,也只能是自己CPU的spec06測試整數跑分增加40%。

因此,筆者認為飛騰1500A的微結構並非「小米」。

3、時間對不上

據公開消息,飛騰1500A在2014年流片,2015年與體制內單位簽訂的合同標為1000萬元,而「小米」和「火星」目前還依舊在流片。

在發布會上,火星的SPEC06測試也只有模擬器成績,而非實物。

4、ARM在指令集授權中會配套一個內核

雖然飛騰和ARM的合同上沒有購買IP內核授權的內容,但由於ARM在做指令集授權的時候都會給出配套的一個內核參考。

因此,有人以合同沒寫明購買IP核,所以飛騰1500A的微結構為自主設計的辯解無法成立。

當然以上都是筆者的猜測。

鑒於飛騰1500A已經商用,希望飛騰能公開飛騰1500A的用戶手,提供內部寄存器等定義資料。

效法龍芯將CPU的用戶手冊和技術資料放在網上供國人自由下載,以打消國人的疑惑。

| 裸CPU性能指標對比

裸CPU性能將用單線程性能、多線程性能以及訪存性能等主要指標進行對比。

  • 單線程性能

龍芯3a2000的微結構為GS464E,根據中電集團的報告顯示:

龍芯GS464E在使用GCC4.8編譯器跑分為:整數768/G、浮點1153/G;

龍芯GS464E使用LCC編譯器跑分為:整數828/G、浮點1578/G。

而龍芯的主頻恰恰為1G,因此,GCC4.8編譯器跑分為:整數768、浮點1153;LCC編譯器跑分為:整數828、浮點1578。

而因為測試環境不同,ARM Cortex A57的測試分數則比較多,華為在麒麟950發布會上就給出A57 Spec2000整數跑分780/G的測試成績。

而根據國外網站對三星7420的實測,筆者將12項測試成績累乘,再開12次方後得到分值為1376.8分,再除以7240中A57 2.1G的主頻,得到跑分為655/G。

而根據另一個測試,A57的測試跑分甚至不足600/G,浮點跑分為700+/G。

這些測試分數差距的原因就在於不同的測試環境——畢竟開啟auto parallel會將原本單線程執行的程序並行化給多個處理器執行,導致SEPC2006整數分數增益。

另外,編譯器的不同,是否定製編譯優化策略等都會對跑分結果造成很大影響。

考慮到華為公布的SPEC分數一向偏高——華為公布的A72 spec2000 整數跑分為820/G,而根據國外網站實測,麒麟950的實測成績,A72 spec2000 整數跑分為749/G。

筆者猜測,華為公布的A57 spec2000 780/G, A72 spec2000 820/G,A57 spec2006 6/G,A72 spec2006 6.7/G很有可能是使用ARMCC編譯器,並在最優測試環境下,得出的結果。

另外,就某網文中的SPEC06測試成績而言,A57 sepc06 整數5.5/G,GS464E sepc06 整數6.5/G都並非在最優環境下測試的分數。

根據華為公布的數據,A57 sepc06整數為6/G,A72為6.7/G。

據筆者了解,龍芯GS464E sepc06整數最優環境下測試成績為7.5/G。

因此,筆者選擇一個適中的測試跑分:整數655/G,浮點分數因為華為和國外網站都沒有公布跑分,筆者以上圖測試中的700+/G適當上浮。

飛騰1500A的主頻為1.8G,那麼最後的測試結果為整數1179,浮點1300+。

很顯然,雖然GS464E強於A57,但由於飛騰1500A在主頻上比龍芯3A2000高80%,使得最終在整數跑分上,龍芯3A2000即便使用LCC編譯器測試成績,面對飛騰1500A依舊略遜一籌。

  • 多線程性能和訪存性能對比

在同使用GCC編譯器下,飛騰1500A(@1.8GHz)SPEC CPU 2000 rate成績為:整數41.5,浮點34.

而龍芯3A2000(@1GHz)的成績為:整數30.9,浮點43.9。

在使用LCC編譯器後龍芯3A2000(@1.0GHz)整數34,浮點60.7。

很顯然,龍芯3A2000雖然在主頻上處於劣勢而導致在整數上低于飛騰1500A,但在浮點性能上卻異常強悍。

至於訪存性能,則如下圖,優劣一目了然。

飛騰1500A (1.8GHz,四核) VS. LS-3A2000 (1.0GHz,四核):

| 軟體生態情況

龍芯和飛騰在軟體生態上選擇了完全不同的道路:龍芯選擇嘗試主導生態建設,並在軟體上投入了很多精力。

而飛騰選擇兼容ARM生態,採取跟隨ARM產業生態的策略。

  • 作業系統

國內支持龍芯的作業系統有中標麒麟、普華軟體、深度軟體、開源社區(Fedora、CentOS、Debian、Loongnix社區版),國內支持飛騰的作業系統有中標麒麟和Ubuntu。

  • 辦公軟體

實際測試顯示,在政府機關使用最為廣泛的辦公軟體上,使用龍芯3A2000打開一個1M的word文件,需要2秒,而使用飛騰1500A則需要3秒;打開一個10M的word文件,龍芯3A2000需要3.5秒,而飛騰1500A需要8.2秒。

在PPT的使用上,龍芯也處於優勢,打開同樣一個PPT,龍芯3A2000所消耗的時間幾乎只有飛騰1500A的一半。

不過,在電子表格上飛騰具有優勢,特別是在打開20M的電子表格的情況下優勢異常明顯。

  • JAVA虛擬機

JAVA虛擬機(JDK)是伺服器上的重要平台軟體。

飛騰的JAVA虛擬機依賴於國外的開源軟體代碼,國內沒有開發團隊,一旦出現深層次問題無法維護。

龍芯在JAVA虛擬機有核心開發隊伍,並為開源社區貢獻8.4萬行代碼,累計已解決8個在X86平台同樣存在的JAVA共性問題,經過實際用戶檢驗,能夠保證企業級的穩定性。

  • 瀏覽器

瀏覽器是桌面作業系統上的重要平台型軟體。

ARM的瀏覽器(Chrome、Firefox)國內沒有專業開發團隊,飛騰則因為跟隨策略在此碰壁。

龍芯在兩大瀏覽器(Chrome、Firefox)平台有專門開發團隊,而且做了大量工作:

在HTML5、WebGL、WebRTC、Flash以及各類插件上有著專業支持;

在Firefox瀏覽器社區,龍芯是ionMonkey開發的重要力量;

在Chrome社區,龍芯是社區的全球14家主要成員廠商之一,是JS引擎的核心開發廠商,累計向社區貢獻4萬行代碼,因此龍芯在JS引擎性能對比上自然可以獲得更大的優勢,具體性能對比如下圖:

從實際測試結果中可以看出,雖然在性能上龍芯3A2000和飛騰1500A差距不大,但龍芯卻能在JS引擎性能對比上大幅優於飛騰,其原因就在於軟硬體整合優化——用戶最終的體驗是軟體+硬體,相對於飛騰在軟體上跟誰ARM,只能是別人給你什麼,你用什麼,而龍芯則恰恰相反,選擇了自建生態,這使得龍芯可以獲得軟硬體磨合優化的機會。

正如數年前那個CPU性能相對有限的時代,蘋果能依靠基於FreeBSD/Unix二次開發的IOS,基於ARM的授權修改/開發CPU,使蘋果可以對自己開發的CPU和作業系統進行系統優化,並依靠軟硬體優化取得優於安卓用戶體驗。

同理,在國產CPU性能普遍不強的當下,對軟體的優化和軟硬體磨合相對於硬體上5%—10%的提升更為關鍵。

因此,相對於黨政軍辦公常用的軟體和用戶體驗而言,龍芯相對於飛騰的優勢,則如同早年蘋果相對於安卓的優勢。

| 結語

可以看出,在硬體方面,飛騰得益於主頻比龍芯高80%,因而在整數上具有優勢;而龍芯的浮點性能指標頗為亮眼;在訪存性能上,龍芯則有很大的優勢。

在軟體上,雖然飛騰可以跟隨ARM產業生態發展,傍上了ARM這個大款,但就黨政軍辦公而言,龍芯相對於飛騰更有優勢。

雷鋒網註:本文作者鐵流(微信公眾號 tieliu1988),文章為雷鋒網(搜索「雷鋒網」公眾號關注)原創約稿,轉載請聯繫授權並保留完整信息,不得刪減、修改文章。


請為這篇文章評分?


相關文章 

眾多國產CPU和作業系統大揭底

來源:知乎 作者:北極近日,龍芯在北京開了一場盛大的發布會,並聲稱和Intel最強技術只有30%的差距。因為從某個角度上看,龍芯更是一個自主設計的產品,作為一個中國人是應該感到興奮的。但龍芯的發...

借勢ARM挑戰Intel?一窺中國芯發展現狀

近年來,隨著ARM在移動端崛起,越來越多的中國IC設計公司加入了ARM陣營,除了華為海思、展訊在手機、平板SoC大展拳腳之外,華為、飛騰、華芯通還試圖借勢ARM進軍伺服器CPU市場,實現對Int...

國產CPU大戰:龍芯憑什麼第一!

龍芯中科近日宣布,龍芯3A3000四核處理器晶片成功完成流片,並通過了系統測試。龍芯3A3000基於龍芯3A2000設計,進行了結構上的少量改進,比如增加處理器核關鍵隊列項數、擴充片上私有/共享...

真不給力?國產龍芯跟Intel差距到底在哪

近年來,國內IC設計廠商層出不窮。有龍芯、飛騰、申威等老牌設計單位,也有兆芯、宏芯這些新秀,還有在商業上非常成功的海思、展訊等ARM陣營廠商。但在性能上Intel對各路國產始終保持著巨大的優勢,...