我们已经知道,Nehalem-EX(至强7500以及6500系列)处理器属于Nehalem家族中最迟出生的系列,和其他家族兄弟都不太一样,Nehalem-EX的架构在Nehalem的基础上进行了改进,以适应多路、多核心的环境,这个改动出现在Uncore(核外)架构上。
架构大不同
官方送来的四路Nehalem-EX评测样机,内部被处理器和内存卡占据了大部分空间
X7560处理器,工程样品,因此看不到处理器的参数
Nehalem-EX的架构与其家族的兄弟不太一样
连接Nehalem-EX多个L3区块以及外部IO的环形总线提供了一个更快的L3存取架构,并提供了更大的同步性,它的表现如何呢?在下面的SPEC CPU 2006测试中我们可以一窥端倪。
#p#
SPEC CPU 2006简介
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子系统的程序,因此一些需要读写磁盘的操作部分都已经被修改,使得外部存储子系统和网络系统对测试结果不造成影响,当然,对内存是非常有需求的。在4路32核心64线程的Nehalem-EX测试样机上,需要128GB的内存。样机配置了256GB内存,因此这个不是问题。
#p#
测试环境与测试平台
SPEC CPU 2006是一个单机测试,因此不需要网络环境。
测试使用的是同一编译好的可执行文件,编译环境为Visual Studio 2008、Intel Compiler 11.0.034,SPEC CPU 2006版本为1.1。
Nehalem-EX X7560
使用的256GB内存,分成了8个内存子卡
Dunnington X7460
Nehalem-EP X5570
Westmere-EP X5670
Westmere-EP X5680
#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浮点性能
很遗憾我们没有测试Dunnington的base成绩。可以发现,在单核心性能上,Nehalem-EX并没有展现出对二路专用处理器的优势,其中处理器的主频占了一个较大的因素,Nehalem-EX Xeon X7560的基本主频只有2.27GHz,这是一个新产品的初代为了稳定性而做出的折衷,到下一代的Westmere-EX主频将会更高。顺便提一下,Nehalem-EX有频率更高的型号,不过核心数量要降低到6个。
在测试当中有两个奇异项目:462.libquantum(量子计算)和436.cactusADM(广义相对论),这些项目都是内存延迟/带宽敏感类型,而不是计算密集类型,因此具有独特L3架构的Nehalem-EX表现良好。有两个因素降低了Nehalem-EX具备多个内存通道带来的高带宽优势:延迟和较低的内存频率。
#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浮点性能
可以看到,整数性能上,四路Nehalem-EX提供了双路系统难以到达的吞吐量,比频率高出近一半的Westmere-EP要高83.2%,比起上一代的四路来更是提升了241.9%,也就是接近三倍半的性能比。浮点性能上则分别是高90.5%和241.1%。在多路系统上,Nehalem-EX确实是一个非常特出的产品。
#p#
评测中心观点
Nehalem-EX对比上一代的多路处理器Dunnington重演了Nehalem-EP对上一代二路Penryn的性能进步,甚至幅度还要更高些,因为QPI快速并行互联和IMC集成内存控制器的直连架构在处理器数量越多的情况下越能发挥力量。
45nm八核心:Nehalem-EX晶圆图
多实例测试展现了整个系统的处理速度,结果是比上一代Dunnington X7460提高了241%,对比频率要高出接近一半的***端双路Westmere-EP X5680要提高83.2%(整数)、90.5%(浮点),大致上,用频率乘以线程数量作为粗略的理论性能的话,可以发现实际性能提升的幅度要比理论计算性能要高一些,考虑到系统处理器数量增多而效率会缓慢越低的事实因素,Nehalem-EX架构上的改进确实效果不错。
【编辑推荐】