英特尔Sandy Bridge 处理器分析测试

时间:2022-07-09 08:28:45

英特尔Sandy Bridge 处理器分析测试

在之前的五期连载中,笔者介绍了Sandy Bridge处理器的架构/微架构上的细节,现在我们来看看Sandy Bridge架构的实际性能表现。

SPEC CPU 2006测试

限于篇幅关系,本篇仅包括了一个测试:SPEC CPU 2006,SPEC CPU测试是业界沿用多年的一个大型CPU性能测试项目。SPEC是标准性能评估公司(Standard Performance Evaluation Corporation)的简称,是由计算机厂商、系统集成商、大学、研究机构、咨询等多家公司组成的非营利性组织,这个组织的目标是建立、维护一套用于评估计算机系统的标准。

为了保证数据的公平、有效和可信,SPEC CPU测试使用了现实世界的应用程序,而不是用循环的算术操作来进行基准测试。SPEC CPU 2006包括了12项整数运算和17项浮点运算。各个测试组件基本上由C和Fortran语言编写,有7个测试项目使用了C++语言,而Fortran语言均用来编写浮点部分。需要特别说明的是,SPEC CPU是一个仅提供源代码的测试,需要自行进行编译生成可执行的代码,因此,SPEC CPU实际上也测试了使用的编译器,好处是可以体现出时代变迁、编译器更新带来的影响,坏处是需要掌握一定的编译器技术。

从左表中可以看出,SPEC CPU 2006的测试项目都有着其原来的应用程序版本,整个SPEC CPU 2006测试就包括了多种实际的应用程序的项目,例如,bzip压缩/解压缩和H264视频编码、一些游戏AI中会用到的A*寻路算法、网络应用中用到的HTML/XML处理等子项目,SPEC CPU还包含了需要处理大量数据的科学应用程序测试项目。SPEC CPU是一个测试CPU子系统的程序,因此,其中涉及读写磁盘和网络传输的部分都已经修改,使得外部存储子系统和网络系统对测试结果不造成影响。总的来说,SPEC CPU 2006包含了和CPU相关的大量测试项目,涵盖了运算密集型和内存密集型的应用,它可以体现出CPU子系统和内存子系统对实际应用程序的性能因素,这也就是其设计目的。

测试系统

我们使用了三套系统进行这个测试,一套是老的Core i7 870,一套是Core i5 2500K,一套则是Core i7 2600K,前者属于45nm工艺的Westmere架构(Nehalem微架构),后两个则是32nm工艺的Sandy Bridge架构(同样,微架构也是Sandy Bridge),这三套系统都属于中端桌面市场,均只支持双通道内存。其中,Core i7 870和Core i7 2600K都是四核心八线程,而Core i5 2500K则是四核心四线程。Core i7 870的默认频率为2.93GHz,内置2.4GHz(4.8GT/s)的QPI总线,而Sandy Bridge架构的Core i5 2500K/Core i7 2600K则取消了QPI总线,默认频率提升到3.3GHz/3.4GHz,这三个处理器都搭载了Turbo Boost技术,可以在负载高的时候提升运行频率,不过会对性能分析带来影响,因此本文仅给出关闭Turbo Boost技术的性能成绩。所有的处理器都具有8MB的L3共享内存。

内存子系统也是SPEC CPU测试的重要因素,我们为Core i7 870和Core i7 2600K平台提供了16GB的内存(4 x 4GB),为Core i5 2500K提供了8GB的内存,这是为了保证每个硬件线程能具备2GB的容量。Sandy Bridge处理器现在可以支持DDR3-1600规格的内存,不过单条4GB的内存还比较少能达到这个规格,例如,我们使用的4条芝奇红钢牙就只能支持到DDR3-1333,因此我们所有的测试都在DDR3-1333下进行。SPEC CPU几乎不受CPU和内存之外部件的影响。

测试使用的操作系统平台是Windows Server 2008 R2,我们在所有的平台上使用了老的SPEC CPU 2006 v1.1代码进行测试,基于SPEC CPU 2006 v1.1和一年多前的Intel Compiler 11.0,不支持Sandy Bridge的AVX指令集,这可以体现出Sandy Bridge在运行老的代码时相对上一代处理器架构的提升,在以后我们会再进行AVX编译版本的测试,它将可以体现出Sandy Bridge在运行优化编码下的性能。

SPEC CPU测试会给出大量的数据,例如,可以分为测试单线程运行效能的speed测试和测试多线程运行效能/测试整个处理器运算吞吐量的rate测试,或者分为测试通常优化性能的base测试和极致优化性能的peak测试。此外,每个测试同时包含了整数的int测试和浮点的fp测试,总共会得出8个测试数据表,每个表包括一个总分和若干个子项目得分,由于不同的子项目代表不同的应用,因此我们给出了具体的子项目成绩。

性能分析:速度测试

我们先来看测试单线程运行效能的speed测试,包含了SPECint_base2006和SPECfp_base2006两个项目,它可以体现出处理器在将所有资源都供给一个测试实例下的运行效能,其中,Sandy Bridge架构的Core i5 2500K的效能比Westmere架构的Core i7 870整数得分要高23.2%(35比28.4),浮点得分要高30.9%(40.2比30.7),考虑到Core i5 2500K 3.3GHz的频率和Core i7 870 2.93GHz的12.6%的频率差别,则同频提升分别应为运行分为9.4%(整数)和16.3%(浮点),10%以上的同频性能提升是个很不错的数据。特别是考虑到Sandy Bridge平台在CPU主频提升时内存规格并没有相应改动的情况下。

去掉频率的影响之后,几乎所有的子项目中性能都得到了提升,提升特别明显的整数项目有401.bzip2 压缩(26.0%)、464.h264ref 视频压缩(25.4%)、473.astar 寻路算法(23.0%),浮点项目有436.cactusADM 物理:广义相对论(56.0%)、453.povray 影像光线追踪(46.3%)、447.dealII 有限元分析(24.2%)、416.gamess 量子化学(23.8%)、437.leslie3d 流体力学(22.5%),这些都是运算密集和缓存密集型的项目。

性能分析:吞吐测试

测试多线程运行效能/测试整个处理器运算吞吐量的rate测试是个不同的情况,它包含了SPECint_rate_base2006和SPECfp_rate_base2006两个项目,它体现的是处理器全力运转的运算吞吐量和数据吞吐量,虽然其中的单个测试线程性能会受到影响,然而处理器的资源得到了最大程度的利用。从结果来看,Sandy Bridge架构的Core i5 2500K的效能比Westmere架构的Core i7 870整数得分要高23.0%(110比89.4),浮点得分要高21.7%(88.6比72.8),考虑到频率差别,则同频提升分别应为运行分为9.2%(整数)和8.1%(浮点),比起speed测试要低一些,这是因为,rate测试同时运行了多个测试实例(这里是4个),对运行资源的需求更高,特别是对缓存、内存子系统的压力要大了不少,因此在两代产品内存规格一样时,Sandy Bridge会受到更多的限制。Sandy Bridge支持的DDR3-1600规格确实有必要。

去掉频率的影响之后,提升特别明显的整数项目有456.hmmer 基因序列搜索(46.4%)、464.h264ref 视频压缩(25.4%),浮点项目有453.povray 影像光线追踪(44.0%)、416.gamess 量子化学(24.0%),它们是从Sandy Bridge环形总线中获益最大的项目,这些都是同频性能提升非常明显的项目。

结语

和上一代Nehalem相比,Sandy Bridge最大的性能提升应该是内部使用的环形总线,它大大增加了L3缓存的带宽,并降低了延迟,此外,处理器微架构上的更新,如L0指令缓存、双Load端口起到的作用也不小,基本上,同频下Sandy Bridge的性能提升在10%左右,一些同时也是缓存密集型的应用获益将会更高,甚至可以达到56%(436.cactusADM 物理:广义相对论)。双通道的Sandy Bridge可以很好地在一般的桌面应用下工作,而在运算密集型,特别是内存密集型的科学应用当中,对内存子系统的压力将会很大,特别是在超线程的环境下,对内存容量乃至带宽都有更高的要求,双通道配置的Sandy Bridge将不敷使用。对应的,英特尔准备了三通道/四通道的LGA2011插槽的Sandy Bridge产品线,将可以更好地满足这些应用的需求,当然,更高档的定位也意味着更高的价格。限于篇幅我们没有给出打开超线程测试的成绩,不过可以指出的是,在双通道配置下,打开超线程的speed测试成绩反而是略微下降了,而rate测试虽然有所提升,然而幅度也只有1%〜2%,作为对比,在三通道Nehalem-EP至强处理器平台上,开启超线程带来的性能提升可以达到5%〜10%。

在目前被限制为双通道的桌面平台上,我们可以看到环形总线架构带来的L3缓存可以大为提升性能,甚至英特尔还适时地加入了共享L3缓存的核芯显卡,以充分地利用其资源。下回,我们将继续带来Sandy Bridge的性能,敬请继续期待。

上一篇:从PC诞生30年看计算未来 下一篇:广东农信社 数据大统一