双通还是三通?三种Nehalem内存配置测试

间隙填充
正睿科技  发布时间:2009-08-29 10:09:16  浏览数:4503
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是标准性能评估公司(Stard 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服务器,之所以选用它,是有理由的:


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:

Xeon E5520处理器,是5500系列当中带四核超线程的E系列的最低一款型号,主频2.26GHz,QPI速率5.86GT/s,支持内存到DDR3-1066

在正常的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整数运算主要包含编译、压缩、人工智能、视频压缩转换、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处理,单通道下性能很低,显然它们都需要双通道及以上的带宽才能达到理想的性能。

从专门测试CPU性能的SPEC CPU 2006测试成绩来看,Nehalem的集成内存控制器确实可以提供很高的带宽,在双通道配置(双路处理器)下已经可以满足2.27GHz的Nehalem-EP处理器的需求。

Xeon E5520处理器,主频2.26GHz,QPI速率5.86GT/s,支持内存到DDR3-1066

  测试表明了,单通道配置是性能极差的配置,要予以避免,而三通道则比双通道快5~10%左右。这是使用DDR3-1066的2.26GHz的E5520的情况,更高频率的处理器会需要更高的内存带宽,不过这时候Nehalem会提供DDR3-1333的选择(从X5550开始)。无论如何,双通道配置下的Nehalem性能是可以接受的。


Nehalem Xeon处理器一览

(完)