淘新聞

中國X86 CPU同主頻能超越AMD? | 揭秘

雷鋒網按:本文作者鐵流,雷鋒網首發文章。

日前,由北京市網信辦、北京市公安局主辦的北京國際互聯網科技博覽會暨世界網路安全大會在北京展覽館開幕。上海兆芯(VIA Alliance Semiconductor)以“自主安全可靠的國產x86解決方案”為主題,攜公司自主設計研發的國產x86通用處理器,以及PC、伺服器等參展。“首次公開亮相的兆芯ZX-D系列處理器及國產整機VR體驗,更成為現場矚目的焦點”——這種報導更是出現在一些媒體的稿件中。

而且根據現場的一塊展板,兆芯ZX-D的SPEC2006定點成績達到20分,考慮到ZX-D只有2G主頻,也就是2G主頻下實現了20分,換算一下就是10/G。而根據AMD公佈的資料,Zen在3.4Ghz頻率下,使用 GCC4.6編譯器,優化參數 -O2,定點成績為31.5,換算一下就是9.26/G。

這家名不見經傳的中國IC設計公司的CPU在同主頻的情形下竟然超越了AMD,這實在令人震撼!那麼,事實究竟怎麼樣呢?

“超越”AMD的兆芯是何許人也

上海兆芯積體電路有限公司(英文名:VIA Alliance Semiconductor)是成立於2013年的國資控股企業。上海市國資委下屬上海聯和投資有限公司、臺灣威盛電子是兩大股東,其中上海聯和投資有限公司出資2億美元,占股80%,威盛電子出資4975萬美元,占20%。

VIA在收購了美國Cyrix和半人馬半導體等公司後,開發了一系列產品,不過由於性能有限,被Intel和AMD碾壓而被趕出X86 CPU市場。

而VIA曾經輝煌過的橋片,也因遭遇Intel的X86專利大棒暴擊而失去了市場份額。雖然由於HTC曾經的輝煌(一度市值高於諾基亞),且VIA和HTC的幕後老闆都是王雪紅,VIA即便半死不活,王雪紅也可以支撐,但隨著HTC的手機業務在幾年時間內急轉直下,這使得王雪紅不得不向大陸尋求資金援助。於是就有了上海國資委和VIA成立合資公司的事件。隨後,兆芯承接了核高基01專項,獲得了數十億項目經費支持。

關於兆芯的具體介紹,官方有詳細的介紹,如下圖,因此就不詳細說了。

可以說,兆芯的技術源自VIA,而VIA的技術源自收購自美國的Cyrix和半人馬半導體。

因此,如果兆芯官方展板沒有水分——只有2G主頻的ZX-D SPEC2006定點成績達到20分,也就意味著在同主頻下ZX-D的性能超越了AMD。

換言之,就是VIA在寂滅數年後,得道中國大陸資金輸血,在主頻相同的情況下,能立馬秒翻了AMD苦心孤詣才開發出來的Zen......這實在是令人目瞪口呆。

VIA Alliance Semiconductor的ZX-D真的能超越AMD的Ryzen?

其實,北京國際互聯網科技博覽會暨世界網路安全大會並非ZX-D的第一次亮相,在“SEMICON China 2017國際半導體展”上,兆芯(VIA Alliance Semiconductor)副總裁傅城博士在會議上公佈繼開先ZX-C系列處理器之後,兆芯最新一代ZX-D系列4核和8核通用處理器目前已經成功流片。

此外,媒體還報導:在展會上業內人士還向我們透露,兆芯將在明年(2018年)推出16nm的ZX-E 8核CPU,並公開了Fritz Chess Benchmark國際象棋性能測試的成績。而且在測試成績的圖片上還有“兆芯處理器媲美國際主流水準”的字樣。

在這張圖表中,

首先要說明的是,存在比較嚴重的資料錯誤,比如I5 7500被拔高了3000分左右,而ADM FX8370的成績被壓低了3000分。一些媒體根據圖表報導的文章中稱:“運行在3.0GHz頻率下的ZX-E8核心處理器性能已經超過了AMD的FX-8370處理器”,這完全是將FX 8370處理器的測試成績壓低3000多分的前提下,得出的結論。

四核版的ZX-C的國際象棋分數是3523,四核版的ZX-D的國際象棋分數為4316。而同樣四核的Zen的分數為9360,是ZX-D(四核版)的2倍有餘。由於該圖表中沒有標注Zen的具體主頻,考慮到AMD的銳龍處理器主頻很可能會在3G以上,如果以3G主頻來計算,同主頻下Zen的國際象棋分數也是ZX-D的1.5倍。即便表格中的Zen主頻達到4G(不過GF代工的Zen主頻貌似只有3.6G),ZX-D在同主頻下的國際象棋測試依舊不敵Zen。

因此,根據上海兆芯在北京國際互聯網科技博覽會暨世界網路安全大會公佈的展板,在同主頻下,VIA Alliance Semiconductor的ZX-D是優於ADM四核的Zen。

但根據“SEMICON China 2017國際半導體展”上兆芯後,媒體發佈的印有兆芯官方字樣的圖表,在同主頻下,在單執行緒性能方面,ZX-D和ADM四核的Zen,差距還是比較大的。

如此一來,兆芯給出的官方宣傳就自相矛盾了。那麼,在自相矛盾的背後,到底隱藏了怎樣的真相呢?

ZX-D的性能到底怎麼樣?

要探究ZX-D的性能,其實只要探究ZX-C的性能,並根據國際象棋測試中展示的ZX-C和ZX-D性能差距做一定增幅就可以了。

那麼,ZX-C性能到底怎麼樣呢?

根據實際測試,測試的編譯器採用GCC 4.8.4,編譯的選項採用-Ofast以及profiling,ZX-C(2G主頻)的SPEC06測試成績如下:

400.perlbench 11.9

401.bzip 2 8.39

403.gcc 10.5

429.mcf 10.9

445.gobmk 10.6

456.hmmer 10.7

458.sjeng 10.9

462.libquantum 23

464.h264ref 14.7

471.omnetpp 7.12

473.astar 7.49

483.xalancbmk 9.59

SPEC CINT2006 10.77

410.bwaves 12.9

416.gamess 8.25

433.milc 11.2

434.zeusmp 9.59

435.gromacs 5.79

436.cactusADM 9.64

437.leslie3d 9.58

444.namd 7.68

447.dealII 13

450.soplex 11.7

453.povray 11.3

454.calculix 6.44

459.GemsFDTD 10.6

465.tonto 6.76

470.lbm 14.1

481.wrf 10.1

482.sphinx3 12.8

SPEC FP2006 9.77

作為參照筆者找來了Intel G1840和Intel i5 4460,在同樣的測試環境下,以ZX-C4600、Intel G1840和Intel i5 4460三款處理器的成績做對比。

從圖中可以看出,C4600、G1840和i5 4460三款處理器CINT2006的分值分別為10.77、25.8和35.32,也就是定點性能G1840是兆芯/VIA C4600的2.4倍,i5 4460是兆芯/VIA C4600的3.3倍。三款處理器CFP2006的分值分別是9.77和27.1和40.33,也就是說浮點性能G1840是兆芯/VIA C4600的2.8倍,i5 4460是兆芯/VIA C4600的4.1倍。

從SPEC CPU2006單執行緒程式的性能對比可以看出,2GHz的兆芯/VIA C4600和主流處理器如3.2GHz的i5 4460性能差3.3(定點)到4.1(浮點)倍。

從每GHz的SPEC CPU2006分值可以算出,C4600每GHz為5分左右,而Intel Haswell處理器每GHz的分值為9-12分左右——賽揚G1840和i5 4460的分值差距可能源自AVX等指令的向量優化加成,L3 cache大小和ddr頻率等差別。

因此,在定點和浮點每GHz主頻的SPEC2006測試都為5分左右的情況下,根據國際象棋測試,ZX-D在測試成績上僅僅小幅度優於ZX-C。在此情形下,每GHz主頻的SPEC CPU2006定點成績優於AMD公佈的9.26的可能性是非常小的。

ZX-D的SPEC2006定點、浮點達20分的關鍵在於編譯器

SPEC2006存在一個問題,那就是測試結果非常依賴編譯器和所選擇的優化選項。

在SPEC測試中,不同的編譯器會帶來不同的結果。而且是否開啟向量優化,以及並行選項都會對測試結果造成很大影響。比如SUN就曾經通過編譯器優化將測試成績提升50%,而作為業界巨頭的Intel,其ICC編譯器更是威力無窮——在採用ICC的情況下,可以取得大幅優於GCC的測試成績。

筆者有幸從權威協力廠商單位,拿到了ZX-C的ICC測試成績,單執行緒定點17.4,浮點18.2。

相對於編譯器採用GCC 4.8.4的成績:定點10.77,浮點9.77。使用ICC後成績可謂突飛猛進,單執行緒定點成績提升了61.5%,單執行緒浮點成績提升了86.2%。

既然ICC這麼好,那為何大家還普遍使用GCC呢?其中的原因之一就在於ICC的很多優化過於極端,在一些應用中甚至會導致運行出錯,所以目前GCC是主流。ICC對於兆芯/VIA而言,不服跑個分的因素遠遠大於日常中能起到的作用。

而ZX-D的SPEC2006定點、浮點達20分的成績,其實就是使用ICC測試後得出的成績。為此,筆者專門諮詢了參與ZX-D測試的專家,得到的回復是:如果要達到20分這個水準,那必然是ICC下的測試結果。

另外ZX-D在緩存和記憶體控制器上的改進也一定程度上提升了SPEC測試的成績。

ZX-D將記憶體控制器和CPU集成到了一起,這種做法可以使SPEC2006的測試成績相對於ZX-C提升5-6%左右(ZX-C的記憶體控制器沒有和CPU集成在一起)。將緩存從ZX-C的2M提升到4M,也有助於提升SPEC2006測試成績。

不過優化片外的訪存模組和集成度的提升實際效果比較有限,遠遠比不了微結構改進優化帶來的IPC提升。什麼是微結構優化改進呢?比如AMD採用Zen替換了性能相對落後的打樁機和挖掘機,這種改變才能給CPU性能帶來質的飛躍。

對ZX-D的SPEC2006定點、浮點成績持保留態度

由於兆芯(VIA Alliance Semiconductor)在之前的宣傳中存在很大水分和資料造假的前科。比如在“十二五”科技成果展上,兆芯官方資料宣稱:國產X86通用處理器的成功自主研發和量產,令國產處理器在性能方面完成了一次跨越式的提升,從“十二五”初期的不足國際整體水準的10%提升到了目前的80%。

而當時,

兆芯/VIA只有ZX-C,而ZX-C和Intel G1840和I5 4460的成績對比之前已經介紹了,就定點而言,I5 4460是ZX-C的3.3倍,G1840是ZX-C的2.4倍。就浮點而言,I5 4460是ZX-C的4.4倍,G1840是ZX-C的2.8倍。

在此情形下,在“十二五”科技成果展上宣傳:從“十二五”初期的不足國際整體水準的10%提升到了目前的80%”,這種宣傳注水太過嚴重。

而在“SEMICON China 2017國際半導體展”之後公佈的國際象棋測試圖表,也存在資料造假的問題。比如Intel I5 7500跑分虛高3000分。

再比如AMD的 FX 8370的測試成績有很大問題——兆芯提供的圖表中,FX8370的成績只有9000多分,但這個分數大約只和FX 6350差不多。

根據網路公佈的測試,FX 8370在國際象棋測試中跑出了12751,還的測試甚至跑出了13546分的成績(這個成績可能是超頻下取得的)。

而在兆芯提供的圖表中,FX8370的成績只有9300多分,明顯少了3000多分。由於偏差幅度實在是太大,這已經不能用測試誤差來自圓其說了。

有鑒於兆芯(VIA Alliance Semiconductor)官方宣傳資料有嚴重注水和造假的前科

,對於本次展板上的ZX-D的SPEC2006定點達到20分,浮點超過20分,特別是在沒有標注測試環境的情況下,大家沒必要將之奉為聖經。

考慮到ZX-D其實是ZX-C的“增加集成度+增加緩存”版本,筆者認為,如果是採用ICC編譯器的結果,那麼在SPEC測試中優化選項全開,取多次測試的最好成績,到達20分還是有一定可能性的。

但如果兆芯(VIA Alliance Semiconductor)官方或者有媒體宣稱ZX-D定點達20分,浮點超越20分是在GCC下的成績,在沒有權威協力廠商給出測試成績錢,筆者持保留態度。

畢竟,根據AMD公佈的資料:

在3.4Ghz頻率下,使用GCC4.6編譯器,優化參數為-O2,Piledriver(打樁機)和excavator(挖掘機)的SPECint06測試值分別為:20.7、19.2。換言之,如果ZX-D SPEC2006定點達20分的成績是GCC下的,那麼意味著ZX-D可以匹敵3.4G主頻下的Piledriver和excavator,而這個成績顯然也和兆芯自己發佈的國際象棋測試圖表相違背。

而且經過實測,VIA Alliance Semiconductor的ZX-D實際性能和Intel atom j1900相當。本質上說,ZX-D是基於ZX-C的改版,在微結構不動情況下,做的SoC設計,集成了記憶體控制器,pcie控制器等,二級cache變大。為何只做SoC設計呢?原因在於微結構的改動容易錯,週期長。而SoC的設計相當於集成,用ip攢晶片見效快。

總而言之,ZX-D實際性能遠遠達不到3.4G主頻下的Piledriver和excavator的水準。在北京國際互聯網科技博覽會暨世界網路安全大會現場展板——兆芯ZX-D的SPEC2006單執行緒定點成績達到20分,浮點超越20分,這個成績也是在ICC下取得的。