日前,“SEMICON China 2017国际半导体展”在上海盛大开幕,“SEMICON China 2017国际半导体展”由国际半导体设备与材料协会(SEMI)和中国电子商会(CECC)共同举办,多家公司参加了本次盛会。
上海兆芯集成电路有限公司副总裁傅城博士在会议上公布继开先ZX-C系列处理器之后,兆芯最新一代ZX-D系列4核和8核通用处理器目前已经成功流片。此外,媒体还报道:在展会上业内人士还向我们透露,兆芯将在明年(2018年)推出16nm的ZX-E 8核CPU,并公开了Fritz Chess Benchmark国际象棋性能测试的成绩。而且在测试成绩的图片上还有“兆芯处理器媲美国际主流水准”的字样。
其实,这并不是兆芯第一次宣称其处理器媲美国际主流/国际整体水平。在“十二五”科技成果展上,兆芯官方资料宣称:国产X86通用处理器的成功自主研发和量产,令国产处理器在性能方面完成了一次跨越式的提升,从“十二五”初期的不足国际整体水准的10%提升到了目前的80%。
但实际上,兆芯在“十二五”科技成果展上的宣传,和这次Fritz Chess Benchmark测试成绩,以及所谓的“兆芯处理器媲美国际主流水准”是有较大水分的。
Fritz Chess Benchmark测试成绩存在的问题
根据公布的Fritz Chess Benchmark国际象棋性能测试的成绩,一些媒体在报道中宣称:运行在3.0GHz频率下的ZX-E8核心处理器性能已经超过了AMD的FX-8370处理器,非常接近采用Skylake核心的英特尔Core i5-6600处理器,意味着国产处理器的性能提升了一大步。
而根据图片中显示,ZX-D的测试分数与Intel I3 6300相当。图片中的这种表达方式,很容易让人认为ZX-D(8核版)性能与Intel I3 6300处理器相当,ZX-E与Intel i5 6600处理器性能相当,超越了AMD的FX 8370,并使宣传图片上所谓的“兆芯处理器媲美国际主流水准”实至名归。
然而,这个图表中的测试成绩其实是存在一些问题的,经不起推敲。举例来说,Intel I5 7500的测试成绩就很有问题。
众所周知,这些年Intel虽然在降低能耗,提升核显性能上下了不少功夫,但在CPU性能提升上就非常吝啬了,每一代产品更新近乎是一点一点挤牙膏,以至于Intel被广大网友冠以“牙膏厂”的美誉,而I5 6600和I5 7500理论上提高不大。Spec测试定点成绩的话,CPU性能大约提高5%。而在这个兆芯公布的测试中性能提高了将近3000分。
但实际上,14000分的测试成绩,即便是Intel I5 7600K也达不到这个分数。根据第三方测试,Intel I5 7600K的测试成绩为12000+分,而主频更低的Intel I5 7500测试成绩根本不可能比Intel I5 7600K的分数更高。
拔高国外厂商产品也就罢了,但发布错误的测试成绩,压低国外厂商的产品测试分数,来抬高自己,这种做法就非常值得商榷了。
Intel I3 6300的测试成绩存在略显偏低的情况,实测I3 6100都有将近7800分,与图表中公布的Intel I3 6300的测试结果相当,而Intel I3 6300比Intel I3 6100主频更高一些,测试的成绩也应当会高一些。如果说I3 6300的分数偏差还可以用测试误差来解释,那FX 8370的成绩就有点匪夷所思了。
AMD FX 8370的测试成绩有很大问题,兆芯提供的图表中,FX8370的成绩只有9000多分,但这个分数大约只和FX 6350差不多。FX 8370的分数要比兆芯公布的成绩高很多。
根据网络公布的测试,FX 8350的国际象棋分数就已经达到12000分左右了,FX 8370的测试成绩只会比FX 8350分数高,有的测试中跑出了12751,还的测试甚至跑出了13546分的成绩(这个成绩可能是超频下取得的)。而在兆芯提供的图表中,FX8370的成绩只有9300多分,明显少了3000多分。由于偏差幅度实在是太大,这已经不能用测试误差来自圆其说了。
必须要说的是,这里给ZX-D和ZX-E作为参照的CPU中,还有并未在中国大陆开售的。比如AMD的Zen,图表中的四核的Zen中国大陆目前还买不到,也就无法去证实其实际性能。在图表中一些测试数据存在明显问题的情况下,挑出一些跑象棋测试明显吃亏的CPU(比如双核的G4500,原因下文会介绍),或者目前中国大陆还买不到的CPU(四核Zen),或者故意大幅压低作为直接对比的fx 8370的测试成绩来做参照,很容易使人产生一些联想。
特别是一些媒体根据图表报道的结论,“运行在3.0GHz频率下的ZX-E8核心处理器性能已经超过了AMD的FX-8370处理器”,这完全是将FX 8370处理器的测试成绩压低3000多分的前提下,得出的结论。
Fritz Chess Benchmark测试并不能说明全面问题
首先要说明的是,Fritz Chess Benchmark测试并不说明全面问题。Fritz Chess Benchmark测试的是多线程,核心数越高,测试成绩就越好。象棋刚出现的时候确实是重要的cpu测试软件,主要考验cpu分支预测效率的高低,缺点就是流水线流不起来,不体现cpu绝对性能的好坏。但随着技术的进步,分支预测效率都达到了顶峰,Intel、IBM、AMD这些国际大厂在分支预测上大多不相伯仲。所以只要核数主频类似,缓存性能差不多,哪怕微结构和制程有差距,象棋分数也都差不多,衡量价值就变小了。
据多位有十年以上工作资历的工程师表示:这个测试程序属于分支密集型程序,源代码是不断地判断,全是if else嵌套多达5-6层,碰到分支密集型程序,分支预测器猜不准的情况下,流水线就会不断中断,再好的设计都没有用了。
换言之,就是碰到分支密集型程序基本上哪个处理器都做不好,也就是说,这个测试中流水线会流不起来,在用强弱CPU做对比的时候,会缩小不同CPU之间的性能差距,抹杀部分Intel、AMD这样国际大厂产品的性能优势。
所以性能比较要全面,拿各种各样的测试程序来综合测试,反应各种模块的性能。SPEC2000/2006要测试20多个程序,而且覆盖广泛,代表性强,是比较权威的测试。像spec cpu2006测试的26个程序就基本上能说明问题。不仅Intel、ARM这样的国际巨头会有SPEC测试成绩,国内龙芯、申威、飞腾都会公开CPU的SPEC2000/2006测试成绩,并说明使用的编译器、操作系统等测试环境。
比如之前被认为裸CPU性能可以匹敌Intel E5的飞腾2000,即便飞腾有国防科大这样的特殊背景,但也不避讳公布SPEC测试成绩,其SPEC测试成绩也非常亮眼:
在2GHz主频下,采用GCC4.8编译器,SPEC2000和SPEC2006的测试成绩分别为:
SPECint_base2000:1610 SPECint_base2006:12.4
SPECfp_base2000:1589 SPECfp_base2006:11.3
SPECint_rate2000:690 SPECint_rate2006:570
SPECfp_rate2000:615 SPECfp_rate2006:482
正是如此亮眼的成绩,使得飞腾2000赢得了谷歌、百度等大公司的青睐,飞腾也成为国内ARM服务器出货量的领头羊。
而在SPEC测试成绩上,兆芯的官方网站上一直对此讳莫如深,因而外人也很难去评估其实际裸CPU性能。目前,比较罕见的公开资料是《面向C4350AL处理器的GCC移植与优化》。
在该论文中,中国科学院软件研究所对兆芯C4350AL做的SPEC2006测试,测试结果为:
SPECint_base2006:8.4
SPECfp_base2006:5.5。
下图附带了《面向C4350AL处理器的GCC移植与优化》论文中所有子项的测试成绩。
不过,C4350AL是兆芯早些时候的产品,其实就是VIA Nano的马甲。由于在核心微结构上一直穿马甲——兆芯过去的做法一直是拿VIA的技术改制造工艺堆核心数量。ZX-D核心微结构到底有多少修改还是未知数(核心微结构到底是否改得动,有多少源代码是VIA的陈旧代码,有多少是国内工程师自己新写的,有多少是向第三方购买的?),加上没有其他中立权威机构做SEPC测试,并给予公开成绩的情况下,也就只能用中国科学院软件研究所测试的C4350AL的成绩作为借鉴了。
作为参照,Intel I5 4460的SPECint_base2006和SPECfp_base2006的成绩都在30以上,即便是Intel多年挤牙膏,性能也是有提升的,Intel最新CPU的SPEC2006测试成绩只会更高。
单线程性能非常有限
而本次公布的Fritz Chess Benchmark测试,这里其实玩了一个小手段,网络上公布的兆芯Fritz Chess Benchmark国际象棋性能测试成绩其实是有猫腻的。Fritz Chess Benchmark显示的是多线程性能,也就是说,如果测试的CPU核心数越多,那么,测试结果会越高。
覆盖的指令集老旧也是Fritz Chess Benchmark测试的一个问题,而且这个测试成绩仅仅测试定点成绩,并不测试浮点性能。测试对核心数、主频、缓存等因素比较敏感,比如E5 2650 v2有8核16线程和20m缓存,即便默认频率只有2.6G,跑分依旧高达两万多。
但Fritz Chess Benchmark测试对很多方面的考察不足,特别是对一些单线程性能强劲,但核心数较少,或者是阉割了缓存的CPU就会存在测试成绩和该CPU在实际使用中的表现不匹配的情况。比如图表中作为参照,只有双核的Intel G4500、Intel I3 6300处理器,以及图表中缓存相对小一些的AMD A10 7890。
具体来说,ZX-E是8核CPU,而ZX-E与Intel i5 6600测试分数差距大约为10%,本质上是8核对比4核的结果,换言之,如果就以单线程(单个CPU核)性能来说,按照网络上公布的Fritz Chess Benchmark测试成绩,目前还处于PPT状态的ZX-E连Intel i5 6600的一半都不如。
同样,8核版的ZX-D在图表中能的数据能够媲美Intel I3 6300处理器也是8核对比双核的结果,虽然Intel I3 6300处理器的超线程特性会给测试带来一定加成,但本质上来说Intel I3 6300依旧是双核,等于是用ZX-D 8核的成绩对比Intel I3 6300双核的成绩。换言之,就是ZX-D 8核绑在一起的性能约等于Intel I3 6300双核的性能。如果以这个象棋测试为基准,换算为单线程性能的话,ZX-D的单线程性能可谓惨不忍睹。
也许有人会说,多线程性能过得去不是也挺好?为何要执着于单线程性能?
其实,作为桌面CPU,最重要的就是单线程性能,因为桌面平台程序都是串行的,如果单线程性能上不去,用户体验会很糟糕,即便是8核、16核CPU,在单线程性能不足的情况下,实际用户体验很可能会反而不如双核CPU——在使用中很有可能出现网络上调侃的“1核有难,7核(15核)围观”的情况。
此外,很多应用往往做不到8核/16核优化,不少都是双核优化的,比如大量国产网络游戏。而恰恰国产网络游戏的用户数量还真不少,换言之,就是面对国产网络游戏的CPU非常有市场。如果用单线程性能有限,但却有8个核心的CPU,比如8核版的ZX-D来运行这些双核优化的网络游戏,用户体验会非常差,实际的游戏体验反而不如之前图表中,测试成绩不如ZX-D的Intel G4500。
这也是玩国产网络游戏,Intel I3系列CPU虽然只有双核,但实际游戏体验却胜过AMD一系列6核、8核CPU的原因——这些年,AMD虽然开发出了一系列6核、8核CPU,但无论在用户体验上,还是在商业上,都不是Intel的双核、四核CPU的对手,而且近乎处于被碾压的状态。甚至有网友调侃“I3默秒全”,这种说法的根源也在于Intel的CPU在单线程性能上远远强于其他公司的X86 CPU。
就商业上来说,AMD这些年这一大票单线程性能不行的6核、8核CPU显然是失败的,而兆芯CPU的单线程性能比AMD都有不小差距,ZX-D和ZX-E将来在商业市场上的前景就可想而知了,只能仰仗兆芯强悍的背景,向党政军推广采购了。事实上,某地方政府一直在不遗余力推广兆芯,下图来自其政府采购网。
而AMD最新的Zen显然是AMD总结经验后呕心沥血之作,其最大的特点就是大幅提升了单线程性能,Zen的微结构性能已经与Intel的Haswell相当,虽然Haswell是数年前的产品,但考虑到Intel这些年一直挤牙膏,Zen的性能还是很不错的,而这也是AMD对Zen寄予厚望的原因。
因此,对于桌面CPU,单线程性能才是最重要的,单纯堆核心数,然后用某一个特定的、以偏概全的、非权威测试说明多线程性能接近Intel的某些CPU,而非像飞腾那样公开SPEC2000/2006测试数据,就宣称“兆芯处理器媲美国际主流水准”,这绝非科学客观的态度。
本文转自d1net(转载)