近年來,隨著ARM在移動端崛起,越來越多的中國IC設計公司加入了ARM陣營,除了華為海思、展訊在手機、平板SoC大展拳腳之外,華為、飛騰、華芯通還試圖借勢ARM進軍服務器CPU市場,實現對Intel服務器CPU的替換。那么,中國芯能借勢ARM挑戰Intel么?
中國企業緣何能獲得ARM指令集授權
一直以來,ARM在指令集授權上非常謹慎,能獲得ARM 32位指令集授權的IC設計公司屈指可數。但在ARM 64位指令集授權上,ARM就大方了很多,原因就在于當時基于ARM 32位指令系統的CPU芯片在移動互聯網世界占據了90%以上的份額,因此ARM為了獲得更多利益,也不會將32位指令集授權給客戶。
相比之下MIPS64和MIPS32,x86 64和x86 32可以完全兼容,ARM 64位指令和32位指令無法兼容。換言之,ARM 64位指令某種程度上是重新定義過的,和ARM 32位指令是兩回事。最初的ARM 64位指令和32位指令有點類似于Intel當年IA-32和IA-64的關系,兩者無法兼容。當年Intel正是因為IA-32和IA-64的不兼容,在IA-64的生態建設上力所不逮,被AMD抓住機會做出了64位的x86服務器芯片,迫使Intel不得不推出64位x86芯片,并放棄了安騰,才重新占據上風。
在吸取了Intel的IA-64的教訓之后,ARM為了更快速地推廣64位指令集和建立相應的軟件生態,必然要一改過去對32位指令集授權的謹慎。ARM選擇了向諸多頗有實力的廠商授權64位指令集,加速生態建設,防止被競爭對手抓住機遇。ARM之所以熱衷于推銷64位指令,根本原因就在于此。
趁著ARM推廣ARM 64的東風,國內華為、飛騰、華芯通等企業都獲得了ARM 64指令集授權。由于ARM的目的是為了快速建立ARM 64的生態和在服務器領域蠶食Intel的市場份額,因而對國內IC設計公司的指令集授權存在期限限制,到期后就必須重新談判。如果將來ARM大勢已成,這也許會是一個隱患,一旦ARM在服務器市場站穩腳跟,對國內廠商的服務器授權態度恐怕將是另一番情景。不過,這個隱患還非常遙遠,ARM目前還處于市場開拓期時,與國內IC設計公司的合作也比較友好。
▲借著ARM推廣64位指令集的東風,中國IC企業有了不小的發展機遇。
中國ARM服務器性能幾何
目前,開發ARM服務器CPU的中國IC設計公司有三家:華為、飛騰、華芯通。華芯通是我國與高通成立的合資公司,從高通手中獲得了源碼并基于該源碼設計自己的CPU。不過,由于華芯通北京研發中心剛剛啟用,正式商用產品問世尚需時日。相比之下,華為和飛騰已經有產品問世,華為的ARM服務器CPU集成了32核ARM Cortex A57,采用臺積電16nm制造工藝。也許是因為華為缺乏服務器CPU設計經驗,這款服務器CPU的性能相對有限。以飛騰的FT2000作參照,華為的這款服務器CPU在制造工藝領先2代的情況下,以FT2000一半的功耗實現了不足FT2000一半的性能。因此在下面文章的解析中,中國ARM服務器CPU就以目前性能最強的FT2000為代表進行說明。
在2015年的第28屆國際高性能微處理器研討會上,飛騰公布了“火星”,也就是FT2000。FT2000采用28nm工藝,主頻2GHz,功耗100W。芯片面積600多平方毫米,集成了64個FTC661 CPU核,共計48億個晶體管。根據測試,FT2000的芯片實測成績相對于模擬器成績要稍低一些,在2GHz主頻下,采用GCC4.8編譯器,SPEC2000和SPEC2006的測試成績見表一。其中SPEC CPU2006全芯片測試分值為定點570,浮點482,單線程測試分值為定點12.4,浮點11.3,雖然在單線程性能上和Intel依舊有不小的差距,但就多線程性能而言,足以與Intel Xeon E5-2695v3芯片相媲美。
▲FTC661 CPU核架構圖
▲FT-2000在SPEC CPU2006全芯片測試中的成績
至于實測成績和模擬器測試成績之間的性能差距,主要是模擬環境與真實系統之間的差異造成的。首先,模擬環境中存儲系統一般是用模型來構建的,與真實芯片環境相比更加理想化;其次在模擬平臺上,由于模擬運行速度較慢,benchmark問題規模不能太大,都需裁剪簡化。因此,真實系統測試性能與模擬環境中得到的性能不一致是正常現象。不過,這種偏差并非無法彌補,通過研究更科學的性能評估手段,可以降低模擬系統與真實系統的性能偏差。同時基于真實系統進一步開展編譯調優工作,會進一步提升性能,預計測試結果會有10%~30%的優化空間。
▲采用FT2000的服務器實物
總而言之,從性能上看,FT2000能夠勝任一些國產中高端服務器的業務需求。
能打敗國外同類產品么?
事實上,想借勢ARM從服務器CPU市場分一杯羹的IC設計公司遠不止華為、飛騰和華芯通。AMD、高通、Cavium 、APM等IC設計公司也開發了各自的ARM服務器CPU。雖然AMD依舊把重心放在x86 CPU上,即便高通早就公布了服務器CPU的規劃,Centriq 2400要到2017年年末才會問世,但并不意味著國外廠商的ARM服務器CPU是只打雷不下雨。相對于進入該領域較晚的AMD、Cavium、高通等廠商,APM雖然名聲不顯,但由于在2010年前后就著手開發ARM服務器CPU,確實做出了性能不錯的ARM服務器芯片,而且這些產品在數據中心、互聯網服務器等領域已有了批量的應用。
目前,APM的X-Gene已經發展到了第3代。X-Gene3集成了32個核心,計劃采用臺積電16nm制造工藝,主頻3GHz,最大功耗約為125W。根據Linley Group的報道,其模擬器測試成績Spec2006單線程定點性能在550分左右。X-Gene 3XL是X-Gene3的升級版本,計劃將32核升級為64核,并將SPECint_rate2006測試提升到1000。在單線程性能上,X-Gene3也非常亮眼,大約在17左右。由于Linley Group給出的單線程性能并不是通常說的單核測試性能,而是用rate分值/線程數,所以推測X-Gene3在模擬平臺上的單核性能很有可能已經達到20左右了,這在ARM生態圈中是首屈一指的。
不過,由于X-Gene3尚未有樣片,所有的性能都是模擬平臺的結果,根據經驗,由于硅前模擬平臺的局限性,其模擬測試結果與硅后實測都會有一些出入,比如FT2000的模擬器成績為SPEC2006定點672、浮點585,而實測成績為定點570、浮點482。所以不太適合用X-Gene3的模擬器成績與FT2000的實測成績做比較。不過就單核性能而言,X-Gene3明顯是占據優勢的,FT2000的單核與X-Gene2性能相當,X-Gene3相對X-Gene2在分支預測和TLB方面做了改進,性能提升了10%左右,而且X-Gene3的頻率為3GHz,也比FT2000的2GHz高出50%。
就芯片特征參數來看,X-Gene3的片上緩存為32MB(三級緩存),FT2000的片上緩存也是32MB(二級緩存,三級緩存在片外,是128MB),X-Gene的存儲控制器是8個DDR4,且在片內,而FT2000的存儲控制器是片外擴展16個DDR3。所以在存儲帶寬和容量上FT2000有優勢,但訪存延遲FT2000要大一些,處于劣勢。IO方面,X-Gene3是42lane的PCIe 3.0,FT2000是32lane,稍遜一籌。
所以總的來說,FT2000與XGene3處在同一性能水平,都是one socket形式,存儲和IO擴展能力也相當。不過,FT-2000年中已經有了樣片,而且即將量產,X-Gene3目前還沒有樣片,這是FT2000的最大優勢。
和Intel相比差距在哪里?
無論是FT2000,還是X-Gene3,雖然在多線程性能上達到了Intel中高端服務器CPU的性能,但在單線程性能上,還是有不小的差距。即便主頻控制在2.5GHz,Intel服務器CPU的SPECint_base2006成績也在25以上,而FT2000的SPECint_base2006只有12.4,X-Gene3也只有20。那么,單線程性能差距還帶來什么影響呢?
單線程性能相對有限會對計算密集型場景有影響,對于無法并行化、單任務延遲敏感的應用場景力不從心。比如在IC設計中用到的一些EDA工具軟件,由于并行化做得還不夠好,單線程性能弱的CPU在運行時會比較吃力,跑模擬、綜合、優化等任務花費的時間會較長。即便全芯片整體性能與Intel的部分服務器CPU性能相當,但由于單線程性能的不足,在部分應用場合,FT2000是無法達到Intel服務器的應用效果的。
不過,FT2000的優勢在于并行性能,對于能夠并行化、多任務的應用場景,FT2000能夠取得不錯的應用效果。比如一些互聯網服務器,由于任務非常多,而每個任務的運算量不大,卻對CPU吞吐率要求高,這種場景非常適合FT2000。
FT2000與Intel的服務器CPU的差異有點像當年的power和ultrasparc的技術路線之爭。power是核數少線程數少,但單線程性能高,類似與現在Intel的CPU。ultrasparc是核數多線程多,單線程性能差,類似于FT2000。前者更適合充當高性能服務器,后者主要是面向網絡的吞吐量高和并發度高的服務器。產生這種現象一方面可能是因為以國內的技術實力無法做出可以匹敵Intel單線程性能的CPU,另一方面也可能是在晶體管資源有限的情況下,面向不同應用做了取舍。
有觀點認為,FT2000打平Intel Xeon E5-2695 v3是64核戰14核的結果,言下之意就是國產CPU只能靠堆核心數。但實際上,簡單堆砌核心并不一定能實現1+1=2。服務器芯片的性能很大程度上還要受存儲、互連等部件性能的影響—片上集成的核數越多,對存儲和互連的設計平衡性要求越高。如果平衡性做得不好,并行性能的擴展性就會直線下降,在此情形下,盲目的堆核心數量未必能獲得想要的效果。而FT2000整體架構較好地實現了計算資源與存儲和互連資源的平衡設計,所以從單核到多核的性能擴展性表現還不錯。
寫在最后
從上述分析可以看出,網絡搜索、大數據、內存密集型等方面的應用,是FT2000所擅長的領域,而且在性能上也達到Intel中高端服務器CPU的水平。考慮到對于商業公司的服務器來說,不是都需要最頂級至強芯片,大部分還是至強系列芯片的中低端產品,比如E5-2640 v4,配置雙路,共20核心40個線程。而這就意味著,至少在性能上,FT2000對于很多商業公司來說是完全夠用的。而華為正在設計的ARM服務器CPU的設計指標SPECint_rate2006在500左右,。換言之,無論是FT2000,還是華為將來的ARM服務器CPU,只要軟件跟得上,完全可以在商業市場上取代相當一部分Intel的服務器芯片。
隨著大數據、云計算時代的到來,服務器市場將迎來爆發式增長。在當下的數據中心里,Intel處理器占據90%以上市場份額,這會使互聯網公司和數據中心的運營者在面對Intel時缺乏議價能力。因此尋找替代解決方案實現多供應商是他們的當務之急—谷歌、百度、阿里等互聯網巨頭都對ARM服務器非常感興趣。由于市場足夠大,且一些互聯網巨頭比較青睞定制版的ARM服務器,這使得中國芯能借助ARM獲得一定的市場。雖然華為、飛騰等中國ARM服務器CPU廠商無法完全替代中國市場上的Intel CPU,但借助大勢攻占一部分原本屬于Intel的市場是可以期待的。
評論