【IT168评测中心】Nehalem架构已经为人熟知,在这个和以往很不相同的新的架构上,Intel采用了集成控制器的设计方法,并用QPI总线替代了过时的FSB总线,获得了非常明显的增益。
Nehalem:直联架构
我们知道,每个Nehalem处理器(高端以上)集成了三个DDR3内存通道,最高支持至DDR3-1333,比起以往双路服务器平台的四通道DDR2-667要高两倍的带宽(同样是双路的Nehalem),一下子将x86处理器的瓶颈去掉了,这也是Nehalem性能明显增长的原因之一。
Nehalem-EP平台:Xeon 5500+5520芯片组
随之而来的问题是,Nehalem的内存性能是否过剩了呢?很快,在桌面平台上,Intel推出了Core i7 Nehalem的简化版本:LGA1156的Core i5,这是采用了双通道内存配置的产品,此外,在不少的Nehalem服务器/工作站上,默认配置总是双通道——两根内存,或者四根内存,这就让人想起一个问题:究竟双通道和三通道的性能相差多少呢?
SPEC CPU 2006 v1.0.1
为了测试出内存配置对性能的影响,我们采用了标准的CPU性能测试软件:SPEC CPU 2006套件,SPEC CPU测试套件是一个CPU密集型和内存密集型(全部都是CPU密集型,不过不是所有的都是内存密集型)测试软件,包含了相当多类型的处理器应用,从处理器应用可以看出内存的影响。要是内存配置对处理器性能都没有影响,那么对其他距离较远的配件的影响就会更小了。
SPEC是标准性能评估公司(Standard Performance Evaluation Corporation)的简称。SPEC是由计算机厂商、系统集成商、大学、研究机构、咨询等多家公司组成的非营利性组织,这个组织的目标是建立、维护一套用于评估计算机系统的标准。
SPEC CPU 2006是SPEC组织推出的CPU子系统评估软件最新版,我们之前使用的是SPEC CPU 2000。和上一个版本一样,SPEC CPU 2006包括了CINT2006和CFP2006两个子项目,前者用于测量和对比整数性能,而后者则用于测量和对比浮点性能,SPEC CPU 2006中对SPEC CPU 2000中的一些测试进行了升级,并抛弃/加入了一些测试,因此两个版本测试得分并没有可比较性。
SPEC CPU测试中,测试系统的处理器、内存子系统和使用到的编译器(SPEC CPU提供的是源代码,并且允许测试用户进行一定的编译优化)都会影响最终的测试性能,而I/O(磁盘)、网络、操作系统和图形子系统对于SPEC CPU2006的影响非常的小。
SPECfp测试过程中同时执行多个实例(instance),测量系统执行计算密集型浮点操作的能力,比如CAD/CAM、DCC以及科学计算等方面应用可以参考这个结果。SPECint测试过程中同时执行多个实例(instances),然后测试系统同时执行多个计算密集型整数操作的能力,可以很好的反映诸如数据库服务器、电子邮件服务器和Web服务器等基于整数应用的多处理器系统的性能。
我们在被测服务器中安装了当前最新版本的 Intel C++ 10.1.025 Compiler、Intel Fortran 10.1.025 Compiler这两款SPEC CPU 2006必需的编译器,通过最新出现的QxS编译参数,Intel Compiler 10版本开始支持对Intel SSE4指令集进行优化(假如只支持SSE3,则使用QxT编译参数)。我们另外安装了Microsoft Visual Studio 2003 SP1提供必要的库文件。按照SPEC的要求我们根据自己的情况编辑了新的Config文件,使用了较多的编译选项。我们根据被测系统选择实际可同时处理的线程数量,最后得到SPEC rate base测试结果(基于base标准编译,SPEC base rate测试代表系统同时处理多个任务的能力)。
和其它测试部件不同,SPEC CPU 2006需要大量的系统物理内存,我们的SPEC测试在64bit Windows Server 2008 Enterprise下完成,对于每个运算核心,最低配置1.5GB内存,最后,我们使用了共24GB的系统内存,见下页。
测试平台基于一台DELL PowerEdge R710服务器,之所以选用它,是有理由的:
当前常见的用于Nehalem服务器的R-ECC内存,最大容量为4GB,为了满足双路八核十六线程的Nehalem SPEC CPU 2006测试要求,需要24GB容量,也就是6条内存才行,这样,如果要测试单通道内存性能的话,测试平台必须能提供每个通道3个DIMM的配置。DELL PowerEdge R710就是这样的机器,它提供了18个DIMM,每个内存通道可以支持3个DIMM,我们得以实现每处理器单通道12GB。
另外需要说明的是,为了在双通道配置下也能具有同样的容量,并保持通道对称,我们使用了2GB+4GB的每通道组合,这样平台最后的容量也是24GB,并且保持了所有内存通道配置一致,让结果更具有可参考性。
测试平台、测试环境 | ||||
测试分组 | ||||
类别 | DELL PowerEdge R710 双路Intel Gainestown Xeon E5520 | |||
处理器子系统 | ||||
处理器 | 双路Intel Xeon E5520 | |||
处理器架构 | Intel 45nm Nehalem | |||
处理器代号 | Gainestown | |||
处理器封装 | Socket 1366 LGA | |||
处理器规格 | 四核 | |||
处理器指令集 | MMX,SSE,SSE2,SSE3,SSSE3, SSE4.1,SSE4.2,EM64T,VT | |||
主频 | 2.27GHz | |||
处理器外部总线 | 2x QPI 2933MHz 5.86GT/s 单向11.72GB/s(每QPI) 双向23.44GB/s(每QPI) | |||
L1 D-Cache | 4x 32KB 8路集合关联 | |||
L1 I-Cache | 4x 32KB 4路集合关联 | |||
L2 Cache | 4x 256KB 8路集合关联 | |||
L3 Cache | 4MB @ 2128MHz 16路集合关联 | |||
主板 | ||||
主板型号 | DELL PowerEdge R710 | |||
芯片组 | Intel Tylersburg-EP IOH:Intel 5520(Tylersburg-36D) ICH:Intel 82801IB(ICH9) | |||
芯片特性 | 2x QPI 36 PCI Express Gen2 Lanes VT-d Gen 2 | |||
内存控制器 | 每CPU集成三通道R-ECC DDR3 1066 | |||
内存 | 4GB ECC DDR3 1333@1066 SDRAM x6 | |||
系统磁盘子系统 | ||||
磁盘控制器 | DELL PERC 6/i SAS RAID Controller | |||
磁盘控制器规格 | LSI1078 RoC 500MHz PowerPC 440 512MB ECC DDR2 RAM 8x SAS 3Gb/s RAID 0/1/3/5/6 PCI Express x8 | |||
磁盘控制器设置 | RAID 5 | |||
磁盘控制器驱动 | LSI MegaRAID R3.6 3.9.0.64 | |||
磁盘 | DELL MBA3147RC | |||
磁盘规格 | 15000RPM 147GB SAS 3Gb/s 16MB Cache | |||
磁盘设置 | SAS 3Gb/s 50GB系统分区 | |||
软件环境 | ||||
操作系统 | Microsoft Windows Server 2008 Enterprise Edition SP1 x64 |
我们的DELL PowerEdge R710样机使用的处理器是Nehalem-EP Xeon E5520,频率不算高,为2.27GHz:
在正常的IDLE情况下,2.26GHz的Xeon E5520运行在1.6GHz的频率
SPEC CPU 2006整数运算主要包含编译、压缩、人工智能、视频压缩转换、XML处理等,此外,各种日常操作也主要是基于整数操作。SPEC CPU 2006的整数运算包含了400.perlbench PERL编程语言、401.bzip2 压缩、403.gcc C编译器、429.mcf 组合优化、445.gobmk 人工智能:围棋、456.hmmer 基因序列搜索、458.sjeng 人工智能:国际象棋、462.libquantum 物理:量子计算、464.h264ref 视频压缩、471.omnetpp 离散事件仿真、473.astar 寻路算法、483.xalancbmk XML处理共12项。
SPEC CPU 2006整数运算性能
从得分来看,整数运算上双通道和三通道的差别不算太大:三通道的性能比双通道高5.2%,不算非常明显。单通道配置下的性能就差得多了,每个CPU只有DDR3-1066的带宽,也就是8.53GB/s,两个处理器下带宽也要比Nehalem-EP的上一代的四通道DDR2-667要低,最后双路单通道Nehalem的性能只有双通道的56.6%、三通道的53.8%,换句话说,从单通道升到双通道提升了77%的性能。
在整数测试项目中,并不是所有项目都受到了内存通道的影响,这样的测试有400.perlbench PERL编程语言、401.bzip2 压缩、403.gcc C编译器、445.gobmk 人工智能:围棋、456.hmmer 基因序列搜索、458.sjeng 人工智能:国际象棋、464.h264ref 视频压缩这几项,看起来它们对内存带宽的敏感程度不太高,456.hmmer 基因序列搜索、458.sjeng 人工智能:国际象棋两项在双通道下行能还略有提升,因为它们具有更多数量的内存条,可以同时打开的内存页面数量也多。当然能体现出这个优势的毕竟是少数。400.perlbench PERL编程语言还是彻头彻尾的对带宽不敏感,单通道下也有着不错的性能。
有一些项目则对带宽比较敏感,如403.gcc C编译器、429.mcf 组合优化、462.libquantum 物理:量子计算、471.omnetpp 离散事件仿真、483.xalancbmk XML处理,单通道下性能很低,显然它们都需要双通道及以上的带宽才能达到理想的性能。
SPEC CPU 2006的浮点运算测试包括的全部都是科学运算,科学运算需要用到大量的高精度浮点数据,如410.bwaves 流体力学、416.gamess 量子化学、433.milc 量子力学、434.zeusmp 物理:计算流体力学、435.gromacs 生物化学/分子力学、436.cactusADM 物理:广义相对论、437.leslie3d 流体力学、444.namd 生物/分子、447.dealII 有限元分析、450.soplex 线形编程、优化、453.povray 影像光线追踪、454.calculix 结构力学、459.GemsFDTD 计算电磁学、465.tonto 量子化学、470.lbm 流体力学、481.wrf 天气预报、482.sphinx3 语音识别共17项测试。
SPEC CPU 2006浮点运算性能
内存带宽的影响对浮点计算的影响还大点,三通道性能比双通道高10%,比单通道高129.6%,从单通道升级到双通道总体浮点性能提升了108.7%。
在SPEC CPU浮点测试上,也有不少对带宽不敏感的项目:416.gamess 量子化学、435.gromacs 生物化学/分子力学、444.namd 生物/分子、453.povray 影像光线追踪、454.calculix 结构力学,不同的内存带宽成绩都一样;还有一些测试则是双通道DDR3-1066已经能满足需求。
【IT168评测中心】从专门测试CPU性能的SPEC CPU 2006测试成绩来看,Nehalem的集成内存控制器确实可以提供很高的带宽,在双通道配置(双路处理器)下已经可以满足2.27GHz的Nehalem-EP处理器的需求。
测试表明了,单通道配置是性能极差的配置,要予以避免,而三通道则比双通道快5~10%左右。这是使用DDR3-1066的2.26GHz的E5520的情况,更高频率的处理器会需要更高的内存带宽,不过这时候Nehalem会提供DDR3-1333的选择(从X5550开始)。无论如何,双通道配置下的Nehalem性能是可以接受的。
(完)