本篇文章2920字,读完约7分钟
厦门私人调查【科技在线】近年来,国内的ic设计制造商相继出现。 有龙芯、飞腾、申威等老字号设计公司,有兆芯、宏芯等新秀,也有商业上非常成功的海思、展信等arm阵营制造商。 但是,在性能方面,英特尔相对于各国产始终保持着较大的特点,国产芯片与英特尔的芯片差距在哪里呢?
如何评价各家的cpu性能?
作为客户,想尽量使cpu便宜是理所当然的,性能可能会很高。 那么,什么样的cpu性能高呢? 从架构的角度来看,有每分钟执行几条指令的mips这一指标,执行指令的数量越多性能越好,但这其中在cpu指令集不同的情况下,比较mips没有什么意义。 例如,a1指令可以是一个加法,b1指令可以制作1024点的FT。 特别是指令集不同的情况下,如何评价各家的cpu性能?
评价cpu性能需要考虑应用的多样化。 例如,科学运算重视双精浮点性能,但如果不能提供数据,则运算能力再高也没用; 例如,pc的日常采用偏向整数性能; 例如,计算中心的多任务环境关注吞吐量。 ……这是单纯用某个指标测量cpu的性能不科学,需要综合考虑。
业界也推出了许多基准测试计划,包括比较cpu的spec、比较嵌入式APP的eembc等。 spec测试是一个比较权威的测试程序,与有点黑匣子的测试程序不同,spec测试各程序的得分和得分方法都是公开透明的,而且覆盖全网络的spec2000有12个指点程序
什么是spec测试?
spec利用计分中归一化的几何平均方法进行综合性能判断,将不同cpu的执行时间与参考对象进行比较,得到相对值。
sepc2000的参照对象是ultrasparc2事务所的主频率为300mhz的cpu。 如果执行测试程序1的时间是参照对象的十分之一,则测试为1000分,如果执行测试程序2的时间是参照对象的八分之一,则为800分……之后计算几何平均。 例如,如果sepc2000有12个定点测试,则将12个测试的成绩相乘,得出12次方。 今后,测试将重视性能平衡。 因为一个测试如果有短板的话,会被大幅拉伸
但是,spec也不完美,存在i/o带宽和运行时间容易受到编译器的影响等问题。
例如,龙芯上一代的微结构在spec2000上还存在问题,但在spec2006上问题较少,在gs464e上处理访问问题后,由于spec2000对i/o带宽的要求较低,所以没有这个问题。 关于编译器,sun通过编译器优化将spec运行时间提高了50%。 龙芯上一代产品用lcc编译器比采用gcc整数运行时提高了60%。 即使采用相同的gcc编译器,由于版本不同,或者优化程度不同,所以评价也不太准确。 ( gcc代码的一部分由intel提供,对x86进行了优化,arm市场份额大,优化也很好,mips、Alpha的优化很一般。 )。
spec测试和高考非常相似。 虽然存在很多缺陷,但具有广泛覆盖程序、公开透明性的优点,是一个比较公平、能够对cpu进行比较合理评价的测试程序。
不同指令集的cpu比较
笔者将x86、arm、mips、alpha指令集的cpu列于下表。
除了明确了编译器是gcc4.8以外,未知数via的白皮书中没有注明测试中的gcc版本,剩下的编译器笔者推测可能是swcc的i3550,i54460可能是gcc5.1。 只是笔者的推测,所以严格来说编译器选择空白色。 ( icc是英特尔的编译器,可以使用x86芯片; lcc是龙芯的编译器; swcc是申威的编译器。 英特尔和amd的芯片为参考)
(因为编译器不统一,所以表仅供参考)
从表中可以看出,在采用gcc编译器的情况下,兆核、申威、飞行sepc2000测试和intelhaswell仍然有很大差距,spec2000测试得分较高的gs464e也将自己的lcc编译器 另一方面,在主频方面,国内ic设计企业的高主频仅为2g,与intel、amd3g以上的主频差距明显。
因此,国产cpu和intel的差别不仅仅在于主频。 即使兆芯的zx-c达到3g以上的主频率,微结构上的差异也仅为i54660性能的40%左右。 因为这个微结构很重要,所以cpu的安全性、性能、功耗很大程度上取决于微结构,可以说amd的cpu在同主频上毫不逊色于intel,很大程度上取决于微结构上的差异。
客户购买cpu时,往往只关注主频率、核心数量、工艺等参数,而忽略细微结构。 另外,由于intel这几年从snb开始搅拌牙膏,微细结构更新带来的性能提升非常小,微细结构的重要性更被忽视了。
微细结构差异的原因
由于宏芯、兆芯、高品位、展会目前没有自主设计的精细结构,因此用龙芯、飞腾新两种产品与英特尔进行了比较。 用gs464e和ivy的差距来说,可以针对下表的参数,找出原因。
(仅限数据互联网收集、娱乐)
以gs464e和ivy为对象,可以看到制约gs464e性能的大短板是定点发射队列和浮点发射队列,对于ivy的54个定点和浮点发射队列,gs464e只有16个定点发射队列、24个浮点发射队列。
龙芯也知道这一点,现在流媒体中的3a3000相比gs464e的瓶颈有所改善,定点发射队列从16个项目提高到32个项目,浮点发射队列从24个项目提高到32个项目,提高了缓存和主频。 很明显,龙芯宣布了tick-tock,但3a3000并不是简单地相对于3a2000提高主频,定点发射队列和浮点发射队列的提高必然会带来ipc的提高。
根据飞腾公布的spec2006模拟器测试,整数为9.6/g。
9.6/g是什么水平呢? 笔者参考intel,关闭自动并行时,haswell采用gcc5.1的spec 2006的成绩为32分( @3.2g主频)。 也就是说,小米能接近haswell吗?
这真是太可怕了。 如果真的能做到的话,那就是科学技术的大跃进。 spec2006整数9.6/g的理由是什么? 根源在于autoparallel的打开/关闭。
打开autoparallel时,由于原本运行在单线程上的程序并行运行在多个解决方案上,因此会产生sepc2006整数分钟的增益。 增益效果取决于编译器、cpu的核心数等因素。 典型代码中有相当一部分不支持自动并行。 因此,目前,autoparallel对spec的得分更有意义。 小米spec2006的整数高达9.6/g,很可能是测试中配方autoparallel的结果,有证据吗?
(仅限数据互联网收集、娱乐)
从上表中小米和ivy的对应来看,小米和ivy还有不小的差距,另外和gs464e一样,存在定点发射队列和浮点发射队列相对于ivy较少的现状。 这是因为在资源有限的情况下,达到哈斯韦尔水平的概率非常低。
关于小米和gs464e,在假设两者的流水线效率相等的情况下,小米有可能是与gs464e水平相同的精细结构,并且比armcortexa57更好。 当然,如果流水线效率不好,小米可能也不会逊色于gs464e。 小米32m的l2缓存很可能是对服务器和高性能计算进行比较的结果。
现在飞行的地球和龙芯3a3000正在放电影,期待着地球和3a3000的电影回来后的表现。
标题:“国产龙芯、飞腾和 Intel 芯片的差距究竟在哪里?”
地址:http://www.yuanmengshidai.com/yysx/16192.html