目前,我國CPU發(fā)展存在自主研發(fā)和引進(jìn)技術(shù)兩條技術(shù)路線。
自主研發(fā)路線在硬件上基于自主定義指令集,基于自定義指令集或者主流指令集擴(kuò)展,CPU自主設(shè)計,對于每一行代碼,每個模塊,每一條線都很清晰,在軟件上自建生態(tài)。
引進(jìn)技術(shù)路線是在硬件上基于買來的指令集授權(quán)或CPU源代碼研制芯片,在軟件上依附于西方成熟生態(tài)。
從實(shí)踐上看,自主CPU比技術(shù)引進(jìn)CPU更具發(fā)展后勁。
如何評價CPU
為了衡量CPU的性能,業(yè)界也推出了很多基準(zhǔn)測試程序,比如針對CPU的SPEC,針對嵌入式應(yīng)用的EEMBC等。SPEC測試是比較權(quán)威的測試程序。和一些黑箱測試程序調(diào)整計分方式和計分權(quán)重后測試結(jié)果就發(fā)生變化不同,SPEC測試到底跑了什么程序,以及各項程序跑分和計分方式全部公開透明,而且覆蓋范圍廣——SPEC2000有12個定點(diǎn)程序,14個浮點(diǎn)程序,而且有比較強(qiáng)的代表性,比如gzip、vpr、gcc、mef、eon等。而SPEC2006則把定點(diǎn)程序擴(kuò)展到14個定點(diǎn)程序和16個浮點(diǎn)程序。
在計分方法上,SPEC在計分上采用歸一化的幾何平均方法來進(jìn)行綜合性能評估。不過SPEC也非盡善盡美,測試存在容易受編譯器影響的問題。舉例來說,SUN曾經(jīng)通過編譯器優(yōu)化提升SPEC跑分50%,龍芯的某一代產(chǎn)品也曾用自主研發(fā)的LCC編譯器,比使用GCC定點(diǎn)跑分提升了60%。
另外,即便同樣是GCC編譯器,不同版本的GCC編譯器下,測試成績也會有很大差異。筆者認(rèn)為,出現(xiàn)這種現(xiàn)象的根源并非SPEC測試的缺陷,反而用事實(shí)說明了,最后的用戶體驗是軟件+硬件的結(jié)果,充分說明了軟硬件磨合的重要性。
這里再談一下編譯器,程序員在編程的時候?qū)懙氖蔷幊陶Z言,但是計算機(jī)運(yùn)行的時候是機(jī)器語言,編譯器就是將程序員的編程語言翻譯成機(jī)器語言的工具。
此前,華為方舟編譯器是輿論上非常火,一些媒體把編譯器說的非常玄乎,仿佛"秒天秒地秒空氣"。但這種宣傳是有些過頭了。方舟編譯器是用于安卓平臺,把java編譯為機(jī)器碼,和jit以及解釋執(zhí)行模式不同。和GCC、ICC(英特爾)、LCC(龍芯)、SWCC(申威)等PC編譯器是兩個不同概念。方舟編譯器只對java有效,一位業(yè)內(nèi)人士將其形容為:"方舟也是一種簡單粗暴方法,以犧牲兼容性來換取局部性能提升,對手機(jī)局部性能有效,但生態(tài)兼容很麻煩"。
自主CPU單核性能進(jìn)步速度優(yōu)于技術(shù)引進(jìn)CPU
目前,國內(nèi)CPU公司在宣傳上有一個非常不好的現(xiàn)象,那就是喜歡堆核心數(shù),用64核、48核戰(zhàn)平英特爾14核、28核CPU來"彰顯"自己的CPU如何厲害。
但實(shí)際上,這種做法意義是相對有限的,因為在桌面和服務(wù)器,很多程序都是串行的,尤其是桌面CPU非常注重單核性能。
畢竟單核性能是基礎(chǔ),很多程序都依賴單進(jìn)程的處理速度,如果單核性能上不去,核心數(shù)再多也沒用,這也是在AMD推出銳龍以前,一大批六核、八核芯片打不贏Intel 四核芯片的原因。在電子發(fā)燒友中甚至還有"I3默秒全"的調(diào)侃,以及對聯(lián)發(fā)科"1核有難,10核圍觀"的調(diào)侃。
游戲開發(fā)者也向AMD RTG圖形部門大佬Raja Koduri表示:相比堆核心數(shù),他們寧愿希望CPU單核性能提升1%。
類似的,一批國產(chǎn)ARM芯片雖然在PPT上追平英特爾,但市場上各個被英特爾吊打,只能時不時發(fā)一個PPT顯示自己的存在感,甚至還不乏華芯通這種關(guān)門的例子。這背后的根源就在于如果單核性能不足,盲目堆核心數(shù)意義有限。
在AMD推出銳龍以后,單核性能大幅提升,這使AMD的市場份額有所回升,并使AMD的股價在2019年上漲80%,并去年在標(biāo)普500指數(shù)中排名第一。值得一提的是,蘇姿豐依靠銳龍,徹底打了一個翻身仗,在其擔(dān)任CEO期間,AMD的股價上漲了800%。蘇姿豐也憑此入選了美國金融報紙Barron發(fā)布的"2019年全球最佳CEO"名單。
因此,想要在市場上占據(jù)一席之地,單核性能至關(guān)重要,CPU單核性能不行的話,萬事皆休。在日常使用中比較仰仗CPU定點(diǎn)性能,因而在這里我們以單線程實(shí)際測試的定點(diǎn)成績做比較。
上圖中,藍(lán)色的為技術(shù)引進(jìn)CPU,紅色的為自主CPU。
先來看藍(lán)色的技術(shù)引進(jìn) CPU。2013年的FT1500是基于SPARC的開源代碼設(shè)計出來的,2015年的FT1500A為ARM,F(xiàn)T1500A相較于FT1500在單核性能上提升了4倍,但在FT1500A之后,F(xiàn)T2000和FT2000plus在單核性能上提升就比較有限了。
再來看紅色的龍芯。龍芯3A1000和龍芯3B1500在單核性能上與FT1500大致相當(dāng)。之后的龍芯3A/B2000明顯遜色于FT1500A,之后的龍芯A3/B3000也只是在單核性能上接近FT2000。但到了龍芯3A/B4000這一代,性能有了大幅提升,單核性能提升超過80%。
根據(jù)公開消息,龍芯3A4000采用GS464V處理器核,支持LoongISA2.0指令集,支持256位向量擴(kuò)展,支持核內(nèi)安全機(jī)制,大幅提升同頻通用性能。升級了片上互聯(lián)網(wǎng)絡(luò),支持更多路片間互聯(lián),支持內(nèi)存目錄功能,提升I/O和多路性能。升級了訪存接口,支持DDR4接口,制造工藝為28nm。
通過對樣片的測試表明,龍芯單核定點(diǎn)和浮點(diǎn)性能均達(dá)到每Ghz頻率10分(SPEC2006,GCC編譯器),片內(nèi)計算和訪存能力均衡,開啟向量的LINPACK核心效率超過93%。主頻為1.8Ghz至2Ghz。
必須說明的是,龍芯3A/B4000這一代與龍芯A3/B3000這一代CPU在制造工藝上都是28nm SOI工藝,也就是說在制造工藝完全相同的情況下,龍芯通過自身的設(shè)計能力,把單核性能提升80%以上。在國內(nèi)諸多ARM芯片性能提升高度依賴臺積電先進(jìn)工藝和購買國外更好EDA工具的大背景下,龍芯這種完全依靠自身設(shè)計能力提升CPU性能的做法絕對是一股清流。
之所以會產(chǎn)生這種現(xiàn)象,鐵流認(rèn)為,這主要是技術(shù)路線造成的。技術(shù)引進(jìn)CPU雖然在初期會有一個大飛躍,但要實(shí)現(xiàn)技術(shù)引進(jìn)消化吸收,這需要時間,會產(chǎn)生一個"先快后慢"的效果。目前,龍芯3A4000采用的依然是28nm工藝,在單核性能上已經(jīng)追平或超越了國內(nèi)一些采用7nm/16nm工藝的CPU,如果龍芯更新工藝,后續(xù)提升空間非常大。
CPU自主研發(fā)雖然在前期會有比較高的試錯成本,發(fā)展也會慢一些,性能也會差一些,但有助于積累經(jīng)驗,鍛煉能力。由于CPU源代碼都是自己寫的,發(fā)現(xiàn)問題后自己有能力改,通過不斷的性能分析,找出CPU的瓶頸,然后不斷地迭代,這才是發(fā)展的動力。
「 支持烏有之鄉(xiāng)!」
您的打賞將用于網(wǎng)站日常運(yùn)行與維護(hù)。
幫助我們辦好網(wǎng)站,宣傳紅色文化!
歡迎掃描下方二維碼,訂閱烏有之鄉(xiāng)網(wǎng)刊微信公眾號
