目前,我國CPU發展存在自主研發和引進技術兩條技術路線。

自主研發路線在硬件上基於自主定義指令集,基於自定義指令集或者主流指令集擴展,CPU自主設計,對於每一行代碼,每個模塊,每一條線都很清晰,在軟件上自建生態。

引進技術路線是在硬件上基於買來的指令集授權或CPU源代碼研製芯片,在軟件上依附於西方成熟生態。

從實踐上看,自主CPU比技術引進CPU更具發展後勁。


自主CPU比技術引進CPU更具發展後勁


如何評價CPU

為了衡量CPU的性能,業界也推出了很多基準測試程序,比如針對CPU的SPEC,針對嵌入式應用的EEMBC等。SPEC測試是比較權威的測試程序。和一些黑箱測試程序調整計分方式和計分權重後測試結果就發生變化不同,SPEC測試到底跑了什麼程序,以及各項程序跑分和計分方式全部公開透明,而且覆蓋範圍廣——SPEC2000有12個定點程序,14個浮點程序,而且有比較強的代表性,比如gzip、vpr、gcc、mef、eon等。而SPEC2006則把定點程序擴展到14個定點程序和16個浮點程序。

在計分方法上,SPEC在計分上採用歸一化的幾何平均方法來進行綜合性能評估。不過SPEC也非盡善盡美,測試存在容易受編譯器影響的問題。舉例來說,SUN曾經通過編譯器優化提升SPEC跑分50%,龍芯的某一代產品也曾用自主研發的LCC編譯器,比使用GCC定點跑分提升了60%。

另外,即便同樣是GCC編譯器,不同版本的GCC編譯器下,測試成績也會有很大差異。筆者認為,出現這種現象的根源並非SPEC測試的缺陷,反而用事實說明了,最後的用戶體驗是軟件+硬件的結果,充分說明了軟硬件磨合的重要性。

這裡再談一下編譯器,程序員在編程的時候寫的是編程語言,但是計算機運行的時候是機器語言,編譯器就是將程序員的編程語言翻譯成機器語言的工具。

此前,華為方舟編譯器是輿論上非常火,一些媒體把編譯器說的非常玄乎,彷彿"秒天秒地秒空氣"。但這種宣傳是有些過頭了。方舟編譯器是用於安卓平臺,把java編譯為機器碼,和jit以及解釋執行模式不同。和GCC、ICC(英特爾)、LCC(龍芯)、SWCC(申威)等PC編譯器是兩個不同概念。方舟編譯器只對java有效,一位業內人士將其形容為:"方舟也是一種簡單粗暴方法,以犧牲兼容性來換取局部性能提升,對手機局部性能有效,但生態兼容很麻煩"。


自主CPU比技術引進CPU更具發展後勁


自主CPU單核性能進步速度優於技術引進CPU

目前,國內CPU公司在宣傳上有一個非常不好的現象,那就是喜歡堆核心數,用64核、48核戰平英特爾14核、28核CPU來"彰顯"自己的CPU如何厲害。

但實際上,這種做法意義是相對有限的,因為在桌面和服務器,很多程序都是串行的,尤其是桌面CPU非常注重單核性能。

畢竟單核性能是基礎,很多程序都依賴單進程的處理速度,如果單核性能上不去,核心數再多也沒用,這也是在AMD推出銳龍以前,一大批六核、八核芯片打不贏Intel 四核芯片的原因。在電子發燒友中甚至還有"I3默秒全"的調侃,以及對聯發科"1核有難,10核圍觀"的調侃。


自主CPU比技術引進CPU更具發展後勁


遊戲開發者也向AMD RTG圖形部門大佬Raja Koduri表示:相比堆核心數,他們寧願希望CPU單核性能提升1%。

類似的,一批國產ARM芯片雖然在PPT上追平英特爾,但市場上各個被英特爾吊打,只能時不時發一個PPT顯示自己的存在感,甚至還不乏華芯通這種關門的例子。這背後的根源就在於如果單核性能不足,盲目堆核心數意義有限。

在AMD推出銳龍以後,單核性能大幅提升,這使AMD的市場份額有所回升,並使AMD的股價在2019年上漲80%,並去年在標普500指數中排名第一。值得一提的是,蘇姿豐依靠銳龍,徹底打了一個翻身仗,在其擔任CEO期間,AMD的股價上漲了800%。蘇姿豐也憑此入選了美國金融報紙Barron發佈的"2019年全球最佳CEO"名單。

因此,想要在市場上佔據一席之地,單核性能至關重要,CPU單核性能不行的話,萬事皆休。在日常使用中比較仰仗CPU定點性能,因而在這裡我們以單線程實際測試的定點成績做比較。


自主CPU比技術引進CPU更具發展後勁


上圖中,藍色的為技術引進CPU,紅色的為自主CPU。

先來看藍色的技術引進 CPU。2013年的FT1500是基於SPARC的開源代碼設計出來的,2015年的FT1500A為ARM,FT1500A相較於FT1500在單核性能上提升了4倍,但在FT1500A之後,FT2000和FT2000plus在單核性能上提升就比較有限了。

再來看紅色的龍芯。龍芯3A1000和龍芯3B1500在單核性能上與FT1500大致相當。之後的龍芯3A/B2000明顯遜色於FT1500A,之後的龍芯A3/B3000也只是在單核性能上接近FT2000。但到了龍芯3A/B4000這一代,性能有了大幅提升,單核性能提升超過80%。

根據公開消息,龍芯3A4000採用GS464V處理器核,支持LoongISA2.0指令集,支持256位向量擴展,支持核內安全機制,大幅提升同頻通用性能。升級了片上互聯網絡,支持更多路片間互聯,支持內存目錄功能,提升I/O和多路性能。升級了訪存接口,支持DDR4接口,製造工藝為28nm。

通過對樣片的測試表明,龍芯單核定點和浮點性能均達到每Ghz頻率10分(SPEC2006,GCC編譯器),片內計算和訪存能力均衡,開啟向量的LINPACK核心效率超過93%。主頻為1.8Ghz至2Ghz。

必須說明的是,龍芯3A/B4000這一代與龍芯A3/B3000這一代CPU在製造工藝上都是28nm SOI工藝,也就是說在製造工藝完全相同的情況下,龍芯通過自身的設計能力,把單核性能提升80%以上。在國內諸多ARM芯片性能提升高度依賴臺積電先進工藝和購買國外更好EDA工具的大背景下,龍芯這種完全依靠自身設計能力提升CPU性能的做法絕對是一股清流。

之所以會產生這種現象,鐵流認為,這主要是技術路線造成的。技術引進CPU雖然在初期會有一個大飛躍,但要實現技術引進消化吸收,這需要時間,會產生一個"先快後慢"的效果。目前,龍芯3A4000採用的依然是28nm工藝,在單核性能上已經追平或超越了國內一些採用7nm/16nm工藝的CPU,如果龍芯更新工藝,後續提升空間非常大。

CPU自主研發雖然在前期會有比較高的試錯成本,發展也會慢一些,性能也會差一些,但有助於積累經驗,鍛鍊能力。由於CPU源代碼都是自己寫的,發現問題後自己有能力改,通過不斷的性能分析,找出CPU的瓶頸,然後不斷地迭代,這才是發展的動力。

相關推薦

推薦中...