日前,由北京市网信办、北京市公安局主办的北京国际互联网科技博览会暨世界网络安全大会在北京展览馆开幕。
上海兆芯(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 28.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下取得的。
|