在前段时间,我们对Nehalem-EP和Westmere-EP的数据库性能作了对比,对频率相同的Xeon X5570(Nehalem-EP)和Xeon X5670(Westmere-EP),提升幅度达到了约34%。另一个值得一提的是,开关超线程对Westmere-EP Xeon X5670的影响是42%。
Xeon 5600:Westmere-EP
32nm 六核心:Intel Westmere-EP晶圆图
在测试完数据库之后,我们又使用了SPEC CPU 2006测试套件对其进行了测试,这个测试可以看出处理器在不同类型的应用中的性能表现。
#p#
SPEC CPU测试是我们沿用了多年的一个大型CPU性能测试项目。SPEC是标准性能评估公司(Standard Performance Evaluation Corporation)的简称。SPEC是由计算机厂商、系统集成商、大学、研究机构、咨询等多家公司组成的非营利性组织,这个组织的目标是建立、维护一套用于评估计算机系统的标准。除了SPEC CPU之外,我们也使用SPECviewperf等产品来测试工作站/图形卡等领域的性能。
SPEC CPU 2006是SPEC组织推出的CPU子系统评估软件最新版,在早些年,我们使用的是其上一个版本SPEC CPU 2000。和SPEC CPU 2000一样,SPEC CPU 2006包括了CINT2006和CFP2006两个子项目,前者用于测量和对比整数性能,而后者则用于测量和对比浮点性能,SPEC CPU 2006中对SPEC CPU 2000中的一些测试进行了升级,并抛弃/加入了一些测试,因此两个版本测试得分并没有可比较性。
SPEC CPU测试中,测试系统的处理器、内存子系统和使用到的编译器(SPEC CPU提供的是源代码,并且允许测试用户进行一定的编译优化)都会影响最终的测试性能,而I/O(磁盘)、网络、操作系统和图形子系统对于SPEC CPU2006的影响非常的小。
An ounce of honest data is worth a pound of marketing hype(一盎司诚实的数据值得一磅的市场宣传)是SPEC组织成立的座右铭,为了保持数据的公平、可信度以及有效,SPEC CPU测试使用了现实世界的应用程序,而不是用循环的算术操作来进行基准测试。SPEC CPU 2006包括了12项整数运算和17项浮点运算,除此之外,还有两个随机数产生测试程序998.sperand(整数)和999.specrand(浮点),它们虽然也包含在套件中并得到运行,但是它们并不进行计时以获得得分。这两个测试主要是用来验证一些其他组件中会用到的PRNG随机数生成功能的正确性。各个测试组件基本上由C和Fortran语言编写,有7个测试项目使用了C++语言,而Fortran语言均用来编写浮点部分。
SPEC CPU 2006 v1.0.1测试项目
|
|||
---|---|---|---|
子项目
|
语言 | 原型/组件 | 说明 |
整数测试
|
|||
400.perlbench
PERL编程语言 |
ANSI C | Perl v5.8.7 SpamAssassin v2.61 Digest-MD5 v2.33 HTML-Parser v3.35 MHonArc v2.6. 8 IO-stringy v1.205 MailTools v1.60 TimeDate v1.16 |
负载由三个script组成: 主负载是垃圾邮件检测软件SpamAssassin 一个是email到HTML的转换器MHonArc 最后一个是specdiff |
401.bzip2
压缩 |
ANSI C | bzip2 v1.0.3 | 负载包括六个部分: 两个小的JPEG图片 一个程序 一个tar包起的几个源程序文件 一个HTML文件 混合文件,包括压缩起来的高可压缩文件及不怎么可压缩的文件 测试分别使用了三个不同的压缩等级进行压缩和解压缩 |
403.gcc
C编译器 |
C | gcc v3.2 | 对9组C代码进行了编译 |
429.mcf
组合优化 |
ANSI C w/libm | MCF v1.2 | MCF是一个用于大型公共交通中的单站车辆调度的程序 429.mcf运行于32/64位模型时分别需要约860/1700MB的内存 |
445.gobmk
人工智能:围棋 |
C | 围棋 | |
456.hmmer
基因序列搜索 |
C | 使用HMMS(Hidden Markov Models,隐马尔科夫模型) 基因识别方法进行基因序列搜索 | |
458.sjeng
人工智能:国际象棋 |
ANSI C | Sjeng v11.2 | 国际象棋 |
462.libquantum
物理:量子计算 |
ISO/IEC 9899:1999("C99") | libquantum是模拟量子计算机的库文件,用来进行量子计算机应用的研究 | |
464.h264ref
视频压缩 |
C | h264avc v9.3 | 使用两种配置对两个YUV格式源文件进行H.264编码 |
471.omnetpp
离散事件仿真 |
C++ | OMNeT++ | 包括约8000台计算机和900个交换机/集线器,以及混合了各种从10Mb到1000Mb速率的大型CSMA/CD协议以太网络模拟 |
473.astar
寻路算法 |
C++ | 实现了2D寻路算法A*的三种不同版本 | |
483.xalancbmk
XML处理 |
C++ | Xalan-C++ v1.8 mod Xerces-C++ v2.5.0 |
XML文档/XSL表到HTML文档的转换 |
浮点测试
|
|||
410.bwaves
流体力学 |
Fortran 77 | 对三维瞬跨音速粘性流中冲击波的模拟计算 | |
416.gamess
量子化学 |
Fortran | GMAESS | 三种SCF自洽场计算: 胞嘧啶分子 水和Cu2+离子 三唑离子 |
433.milc
量子力学 |
C | MILC | 四维SU(3)格点规范理论的模拟,用来研究QCD量子色动力学、夸克及胶子 |
434.zeusmp
物理:计算流体力学 |
Fortran 77/REAL*8 | ZEUS-MP | 用来计算理想、非相对论条件下的流体力学和磁流体力学,434.zeusmp模拟计算了一个统一磁场中的3D冲击波 |
435.gromacs
生物化学/分子力学 |
C & Fortran | GROMACS | GROMACS是一个分子力学计算套件,然而也可以用于非生物系统,435.gromacs模拟了在一个水和离子溶液中的蛋白质溶菌酶结构在各种实验手段如核磁共振的X光照射下的变化 |
436.cactusADM
物理:广义相对论 |
Fortran 90, ANSI C | Cactus BenchADM |
436.cactusADM对时空曲率由内部物质决定的爱因斯坦演化方程进行求解,爱因斯坦演化方程由10个标准ADM 3+1分解的二阶非线性偏微分方程组成。 |
437.leslie3d
流体力学 |
Fortran 90 | LESlie3d | LESlie3d是用来计算湍流的计算流体力学程序,437.leslie3d计算了一个如燃油注入燃烧室的时间分层混合流体。 |
444.namd
生物/分子 |
C++ | NAMD |
NAMD是一个大型生物分子系统并行计算程序,444.namd模拟了了92224个原子组成的A-I载脂蛋白 |
447.dealII
有限元分析 |
C++ w/Boost lib | deal.II lib | deal.II是定位于自适应有限元及误差估计的C++库,447.dealII对非常系数的亥姆霍兹方程进行求解,它使用了基于二元加权误差估计生成最佳网格的自适应方法,该方程在3维得解 |
450.soplex
线形编程、优化 |
ANSI C++ | SoPlex v1.2.1 | SoPlex使用单纯形算法解线性方程 |
453.povray
影像光线追踪 |
ISO C++ | POV-Ray | POV-Ray是一个光线追踪渲染软件,453.povray渲染一幅1280x1024的反锯齿国际象棋棋盘图像 |
454.calculix
结构力学 |
Fortran 90 & C w/SPOOLES code | CalculiX | CalculiX是一个用于线性及非线性三位结构力学的有限元分析软件,454.calculix计算了一个高速旋转的压缩盘片在离心力的作用下的应力和变形情况 |
459.GemsFDTD
计算电磁学 |
Fortran 90 | GmesTD from GEMS | 459.GemsFDTD使用FDTD(有限差分时域)方法求解三维时域中的麦克斯韦方程,计算了一个理想导体的雷达散射截面 |
465.tonto
量子化学 |
Fortran 95 | Tonto | Tonto是一个面向对象的量子化学程序包,465.tonto计算面向量子晶体学,它基于一个符合X光衍射实验数据的、约束的分子Hartree-Fock波函数 |
470.lbm
流体动力学 |
ANSI C | 470.lbm使用LBM(格子波尔兹曼方法)模拟非压缩流体,它模拟了两种情况:类似活塞推动的剪切驱动流体和管道流体,测试包含了3000个步骤 | |
481.wrf
天气预报 |
Fortran 90 & C | WRF v2.0.2 | 481.wrf基于WRF(Weather Research and Forecastin)模型,对NCAR的数据进行了计算,数据包括了UTC 2001.06.11到UTC 2001.06.12以三小时为间隔的数据 |
482.sphinx3
语音识别 |
C | Sphinx-3 | 语音识别 |
可以看出,SPEC CPU 2006的测试项目都有着其原来的应用程序版本,整个SPEC CPU 2006测试就包括了多种实际的应用程序的运行性能测试。当然,SPEC CPU是一个测试CPU子系统的程序,因此一些需要读写磁盘的操作部分都已经被修改,使得外部存储子系统和网络系统对测试结果不造成影响,当然,对内存是非常有需求的。为了准备运行在双路六核心超线程的Westmere-EP平台上,我们使用了48GB总量的内存。
所有的测试都是在同一台主机上进行测试,只是需要更换几次处理器。
#p#
测试平台、测试环境
|
||||||
测试分组 | ||||||
类别
|
双路Intel Nehalem-EP Xeon X5570 |
双路Intel Westmere-EP Xeon X5670 |
双路Intel Westmere-EP Xeon X5680 |
|||
处理器子系统 | ||||||
处理器 | 双路Intel Xeon X5570 | 双路Intel Xeon X5670 | 双路Intel Xeon X5680 | |||
处理器架构 | Intel 45nm Nehalem | Intel 32nm Westmere-EP | Intel 32nm Westmere-EP | |||
处理器代号 | Gainestown (Nehalem-EP) |
? (Westmere-EP) |
? (Westmere-EP) |
|||
处理器封装 | Socket 1366 LGA | Socket 1366 LGA | Socket 1366 LGA | |||
处理器规格 | 四核 | 六核 | 六核 | |||
处理器指令集 | MMX,SSE,SSE2,SSE3,SSSE3, SSE4.1,SSE4.2,EM64T,VT |
MMX,SSE,SSE2,SSE3,SSSE3, SSE4.1,SSE4.2,EM64T,VT AES |
MMX,SSE,SSE2,SSE3,SSSE3, SSE4.1,SSE4.2,EM64T,VT AES |
|||
主频 | 2.93GHz | 2.93GHz | 3.33GHz | |||
Turbo Boost主频 (多核) |
3.20GHz(+266MHz) | 3.20GHz(+266MHz) | 3.46GHz(+133MHz) | |||
Turbo Boost 主频 (单/双核) |
3.333GHz(+400MHz) | 3.333GHz(+400MHz) | 3.60GHz(+266MHz) | |||
处理器外部总线 | 2x QPI 3200MHz 6.40GT/s 单向12.8GB/s(每QPI) 双向25.6GB/s(每QPI) |
2x QPI 3200MHz 6.40GT/s 单向12.8GB/s(每QPI) 双向25.6GB/s(每QPI) |
2x QPI 3200MHz 6.40GT/s 单向12.8GB/s(每QPI) 双向25.6GB/s(每QPI) |
|||
L1 D-Cache | 4x 32KB 8路集合关联 |
6x 32KB 8路集合关联 |
6x 32KB 8路集合关联 |
|||
L1 I-Cache | 4x 32KB 4路集合关联 |
6x 32KB 4路集合关联 |
6x 32KB 4路集合关联 |
|||
L2 Cache | 4x 256KB 8路集合关联 |
6x 256KB 8路集合关联 |
6x 256KB 8路集合关联 |
|||
L3 Cache | 8MB @ 2668.7MHz 16路集合关联 |
12MB @ 2668.7MHz 16路集合关联 |
12MB @ 2668.7MHz 16路集合关联 |
|||
主板 | ||||||
主板型号 | ASUS Z8PS-D12-1U | ASUS Z8PS-D12-1U | ASUS Z8PS-D12-1U | |||
芯片组 | Intel Tylersburg-EP IOH:Intel 5520(Tylersburg-36D) ICH:Intel 82801JR(ICH10R) |
Intel Tylersburg-EP IOH:Intel 5520(Tylersburg-36D) ICH:Intel 82801JR(ICH10R) |
Intel Tylersburg-EP IOH:Intel 5520(Tylersburg-36D) ICH:Intel 82801JR(ICH10R) |
|||
芯片特性 | 2x QPI 36 PCI Express Gen2 Lanes VT-d Gen 2 |
2x QPI 36 PCI Express Gen2 Lanes VT-d Gen 2 |
2x QPI 36 PCI Express Gen2 Lanes VT-d Gen 2 |
|||
内存控制器 | 每CPU集成三通道R-ECC DDR3 1333 | 每CPU集成三通道R-ECC DDR3 1333 | 每CPU集成三通道R-ECC DDR3 1333 | |||
内存 | 4GB R-ECC DDR3 1333 SDRAM x12 @ 1066 | 4GB R-ECC DDR3 1333 SDRAM x12 @ 1333 | 4GB R-ECC DDR3 1333 SDRAM x12 @ 1333 | |||
软件环境 | ||||||
操作系统 | Microsoft Windows Server 2008 R2 Datacenter Edition |
Microsoft Windows Server 2008 R2 Datacenter Edition |
Microsoft Windows Server 2008 R2 Datacenter Edition |
测试使用的是同一编译好的可执行文件,编译环境为Visual Studio 2008、Intel Compiler 11.0.034,SPEC CPU 2006版本为1.1。
特地借来的12条4GB低电压三星内存条
模组型号是M393B5273CH0-YH9,规格是DDR3 1333,电压……它支持1.35V,但是SPD里面写入的是1.5V;它也能兼容1.5V
内存容量是48GB
Nehalem-EP X5570
Westmere-EP X5670
Westmere-EP X5680
有一点需要特别之处的是:Nehalem-EP只有在每通道仅使用单条内存的时候可以达到1333MHz,使用两条将会是速度下降至1066MHz,而Westmere-EP支持每通道使用两条内存的时候仍然维持在1333MHz,因此这个测试,不同代的平台内存速率是有所区别的,这也是Westmere-EP的优势所在。根据我们以前的测试表明,DDR3-1066和DDR3-1333的区别对于Xeon X5570/SPEC CPU 2006来说区别不算特别大。
#p#
一套完整的测试最后会给出8个数字:整数/浮点 x 单实例/多实例 x 常规/峰值。个单实例测试每个测试项目同时只运行一个实例,这个实例是一个单线程的进程,它可以比较出在单线程/单核心状态下的CPU性能差别。
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整数性能
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浮点性能
除了一些如462.libquantum、436.cactusADM这样的奇艺项目之外,其他项目的成绩都差不多在同一个数量级上。可以看到,单核心性能上,Westmere-EP有了一些进步——但不是所有项目都有进步,整数/浮点的提升分别为2.4%和7.8%。可能是由于更多地核心导致了L3、内存访问的冲突略有增加,一些项目成绩略有下降。而有些项目的提升非常之大,这可能是大容量的L3带来的效果。分数特别高的“奇异”项目如462.libquantum等,都是内存延迟/带宽敏感类型,而不是计算密集类型。
#p#
多实例模式测试的是整个系统的计算吞吐量,它同时运行了和CPU数量对应的测试进程,它可以展示系统不最求单个任务的速度而是追求进行大量任务处理时的速度。
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整数性能
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浮点性能
整数性能上,X5670提升了35.6%的吞吐量,浮点则是31.1%。在所有测试子项目中,接近核心数量50%提升的有:400.perlbench PERL编程语言、445.gobmk 人工智能:围棋、456.hmmer 基因序列搜索、458.sjeng 人工智能:国际象棋、464.h264ref 视频压缩、416.gamess 量子化学(55.2%)、435.gromacs 生物化学/分子力学、436.cactusADM 物理:广义相对论、444.namd 生物/分子、453.povray 影像光线追踪、454.calculix 结构力学,他们都是计算密集的类型。在多实例测试下,性能提升最少的是429.mcf。
#p#
显然,Westmere-EP相对Nehalem-EP来说是一个工艺上的进步,微架构没有什么改变,因此在单实例测试上,提升比较微小,整数2.4%,浮点7.8%。当然,Westmere-EP提供了核心数量不变而频率大增的型号,频率上的提升对于性能的影响还是比较明显的,就像X5680对X5670。
32nm 六核心:Intel Westmere-EP晶圆图
多实例测试展现了整个系统的处理速度下,结果是Westmere-EP X5670对Nehalem-EP X5570的提升是整数35.6%,浮点31.1%。当然它和核心数量50%的提升有些差距,不过这要根据子项目来看,很多子项目都有接近50%的提升。总的来说,在服务器/工作站性能上,Westmere-EP的性能提升很明显。
【编辑推荐】