了解ARMv指令集的重要性,國產CPU自研指令集為何這么難?
今年也是國產ARM芯片繼續停擺的一年。
去年此時,ARM公司正式宣布拒絕向中國企業出售先進的NeoverseV1和V2系列CPU設計IP。這意味著最先進的ARM V9指令集版本,與國內絕大多數企業無緣。在國產ARM迭代停滯的同時,ARM指令集也在日新月異進步。
不得不說,國產ARM芯片落后困境愈發嚴峻,留給廠商們尋找出路的時間不多了。
ARMv指令集發展史
無論是蘋果的自研核心還是ARM的原生IP,都需要以ARMv指令集作為地基。因此,ARMv指令集的強弱至關重要。
在進入以iOS和Android系統為代表的智能手機時代之后,最早的手機處理器都是直接基于ARMv6指令集打造,代表產品有高通驍龍S1(包括MSM7x25),這些處理器連GPU都沒有。
ARMv7-A算是一次比較大的迭代更新,高通早期自研的Scorpion微架構就是基于ARMv7-A指令集自主研發而來,代表產品有驍龍S1時期的QSD8x50。
ARM也是從ARMv7-A指令集開始,才大力發展原生核心IP的研發與授權,從Cortex-A5到Cortex-A17,這些早期的32bit處理器核心就都是基于ARMv7-A打造而來。
為了迎接64bit時代,ARM在2016年推出了ARMv8-A指令集,其主打可伸縮矢量擴展,專為高性能計算、數據中心而生。采用這一指令集的代表有Cortex-A53、Cortex-A57、Cortex-A72和Cortex-A73(還有嵌入式領域的A32和A35)。
2017年,ARM發布了ARMv8.2指令集,它引入了新的fp16運算和int8 dot指令,優化得當就能大幅加速深度學習框架的推理效率。從Cortex-A55和Cortex-A75開始至今的所有SoC核心架構都是基于ARMv8.2指令集研發的。
ARM在2021年3月31日正式發布了ARMv9指令集,它在兼容ARMv8的基礎上,不再局限于移動/嵌入式市場,未來將發力PC、HPC高性能計算、深度學習等新市場,以滿足全球對功能日益強大的安全、人工智能和無處不在的專用處理的需求。
用ARM的話說,ARMv9是10年來最重要的創新,是未來3000億ARM芯片的基礎。
Armv9三大升級,Armv8“遙遙落后”
自Arm于2011年10月首次發布Armv8架構以來,ARM在2021年發布了新的內核架構Arm v9.2,Arm v9.2是針對Arm v8的首次重大升級?!笆昴ヒ粍Α?,Arm v9.2升級在哪兒?
據ARM高級副總裁、首席架構師兼技術院士Richard Grisenthwaite介紹,Armv9繼續使用AArch64作為基準指令集,但是在其功能上增加了一些非常重要的擴展,主要是Arm在新架構上增加了三個主要支柱,分別是安全能力、機器學習能力、改進的矢量和DSP能力。
第一大支柱:安全性。在安全性方面,Armv9進行了重大升級,引入了新的安全功能,在兼容現有安全標準的基礎上,對TrustZone和Crypto做了擴展,這些安全功能可以幫助開發者構建更加安全的應用程序,保護用戶的數據和隱私。以上的安全特性,國產Armv8處理器是完全不具備的。這就意味著,針對安全需求明顯的客戶,基于Armv8的國產芯片硬傷明顯,而且無法通過軟實力的更新進行彌補。
第二大支柱:機器學習/AI能力。從技術演進和發展的態勢可以看到,機器學習的負載或者程序類級別在通用平臺中的計算和使用已經成為常態。機器學習是Armv9的重要組成部分,Armv9引入了新的AI和機器學習功能,包括支持INT8和BF16運算的向量運算單元以及支持矢量矩陣運算的擴展(SVE2)。這些功能可以提升AI和機器學習的性能,加速語音識別、圖像處理等應用的發展。
第三大支柱:改進的矢量和DSP能力。Arm進一步開發了SVE2(Scalable Vector Extension 2),增加了新的矢量運算和矩陣運算指令,以增強機器學習和數字信號處理能力,這些擴展可極大增益基于Armv9架構的處理器在人工智能、圖像處理、音頻處理和高性能計算等應用領域中實現更高的性能和更低的碳消耗。
與Armv9支持的卓越AI能力相比,Armv8.2就顯得非常的局限,在高速發展的AI時代,Armv8.2被拋棄將只是時間問題。當然,我們可以從技術的角度嘗試彌補Armv8架構在SVE2實現上的功能弱勢,包括但不限于使用軟件庫或編譯器優化來模擬SVE2的行為。但這種招式好比一把雙刃劍,殺敵一千自損八百,增加了程序設計的復雜度又帶來了性能上的開銷成本,如何做好資源的平衡,又是一個囚徒困境的問題。
總之,Armv9在性能上進一步提升了性能,包括更高的運行速度、更低的功耗以及更強的并行處理能力。這些改進使得Armv9能夠更好地滿足不斷增長的計算需求和更好的用戶體驗。當然對于整體性能而言,Armv9通過改進了系統級性能,如增加內存帶寬、降低內存延遲等。以上改進項可以使得基于Armv9的處理器能夠更好地支持復雜的多任務處理和高負載應用程序。
主流國產CPU指令集皆來自國外
從零自研CPU最難點在于生態建設,x86與ARM主流地位建立在壟斷性的生態根基上。當前國產CPU發展的突圍捷徑,有且只有借勢而為主流指令集生態。
事實上,我國六大主流CPU廠商,兆芯、海光、鯤鵬、飛騰、龍芯、申威,其指令集技術皆來自國外,主要目的在于借勢已成熟的指令集生態。
兆芯、海光選用x86架構,兼容了最廣泛的x86生態,在服務器、PC領域是平替Intel、AMD的最佳選擇。對于用戶而言,這意味無需繁瑣的編譯開發工作,即可將業務數據遷移國產CPU平臺,減少時間、人力成本,順暢過渡到國內的x86體系。
鯤鵬、飛騰則選用ARM架構,一方面在于ARM架構的商業模式,廠商可在授權公版架構基礎上進一步研發,從技術角度開發門檻低,成品速度快;另一方面,ARM近些年有意進軍服務器市場,雖目前占比僅在7%,但上下游生態發展較為迅速。
而龍芯的LoongArch,也是基于MIPS架構借鑒而來,可直接兼容MIPS架構生態。不過MIPS架構其實早在幾年前就已名存實亡,因此龍芯面臨著從零建設生態的困難。一邊以轉譯器等方式兼容主流x86生態,一邊積極開拓原生應用。好在攻難克艱,生態發展穩步推進。例如,近期騰訊會議宣布已原生支持龍芯系列。
從國內主流CPU廠商的架構選擇可看出,發展道路殊途同歸。指令集都引自國外,生態也要兼容國外。那么問題又來了,國內以技術引進的方式尋求CPU產業突圍,這樣還能算是自主發展嗎?
國外引進與自主并不相悖,技術可控才是關鍵
在國外CPU巨頭先發優勢下,后來者從零趕超難如登天。國內CPU技術發展道路,亦如國產高鐵、大飛機“引進消化再創新”一樣,國外引進與自主創新并不相悖。
在“引進消化再創新”的過程中,評判技術自主的標志在于,專利不侵權,同時不依賴國外完成差異化創新;更關鍵的在于可控,即產品有是否的迭代空間、技術是否有進化潛力。當前,國內稱得上“自主且可控”,主要為龍芯、申威、海光、兆芯。
龍芯LoongArch架構已獲得第三方專利認證,雖存在與MIPS的專利糾紛,但目前已基本解決,僅剩1條為待定事項。同時,龍芯產品經幾年的發展追趕,性能基本將近2019年Intel發布的十代酷睿水平,體現出龍芯產品迭代發展的潛力,未來可期。
海光在ZEN1基礎上,多年高強度持續研發投入,目前已完成對引進技術的消化吸收創新。從海光增添安全計算模塊,解決漏洞堵掉后門,以及三年三款產品自主迭代可以看出,海光的確有能力、有權利動刀ZEN1內核,走出與AMD后續ZEN架構不同的道路。從而證明了海光對技術可以做到自主可控。
而鯤鵬、飛騰等國產ARM廠商,技術發展方面,更多表現為“自主但不可控”。雖然兩家廠商在ARM授權架構基礎上,可以自主研發出性能不錯的ARM芯片;但問題在于ARM公司目前已經斷供先進版本授權,這意味著掐斷了國內ARM芯片的迭代發展之路。而受專利限制,國內ARM廠商也無權基于現有架構授權,自研微架構迭代。
并且隨著ARM赴美上市進度加速,ARM公司卡脖子行為已實質發生。因此國產ARM技術發展,實際已做不到自主可控;國內對ARM架構的摸索,也成為一次錯誤嘗試。
國內CPU發展的發力方向應該在于,完成引進技術的消化與創新,在國外的先進技術基礎上實現自主可控。這樣才能最大限度發揮后發優勢,站在前人肩膀上實現后來者逆襲。
