SPEC FP和lnt 2000是用来测试CPU性能的标准测试软件。不过,实际的测试得分受编译器的影响相当大。SPEC fp和integer将会显示最佳的性能表现。不过在实际运用中,处理器的表现会相对保守一些。
而在我们的这篇文章中,这代表着SPEC的测试数据会比它在实际应用程序的表现中略高一些。不过,通过SPEC CPU 2000,我们倒是可以很好地了解一颗处理器的性能。正如前述,测试中的Xeon 5000就是采用了新Woodcrest核心的Xeon处理器。
SPECfp
Clockspeed
SPEC fp 2000
POWER5+
2200
3271
Itanium 2
1666
2851
Xeon 5160
3000
2783
Opteron
2800
2256
Pentium 4 E
3733
2232
我们看到,新核心的Woodcrest要比最快的双核心Opteron快20-25%左右。而得益于新的65nm工艺,Woodcrest的核心速度提高了7%。如果AMD能够让自己的处理器频率达到英特尔的水平,将能带来15%左右的性能提升。不过在大部分的64bit和128bit SSE程序中,英特尔的Woodcrest依旧占据了非常明显的性能优势。
SPECint
Clockspeed
SPEC Int 2000
Xeon 5160
3000
3057
Pentium 4 E
3733
1870
Opteron
2800
1837
Pentium 4 Xeon
3733
1813
POWER5+
2200
1705
Itanium 2
1666
1502
在对整数性能的测试中,Woodcrest轻松超越了其他几款横向对比的处理器。接下来我们就看看在服务器程序中SPEC lnt 2000的整数性能。
延迟
LMBench是一款能够用来判定内存时序和指令时序的测试软件。我们使用LMBench3.0a-5进行了测试。应该说LMBench的结果通常都是正确的,但并不总是正确的。如果软件无法正确识别出某种架构,很有可能出现错误的测试结果。因次我们非常有必要事先来检查好。
LMBench
Clockspeed
L1 (ns)
L1 (cycles)
L2 (ns)
L2 (cycles)
RAM (ns)
RAM (cycles)
Xeon 5160 3 GHz
3000
1.01
3
4.7
14
117.3
345
Pentium- M 1.6 GHz
1593
2
3
6
10
92.1
147
Sun T1 1 GHz
980
3
3
22.1
22
107.5
105
Opteron 275
2209
1
3
5.5
12
73
161
Xeon Irwindale 3.6 GHz
3594
1
4
8
28
48.8
175
大容量的4MB L2缓存拥有一个非常低的延迟:14cycle。如果我们使用诸如ScienceMark这样的测试工具的话,我们得到的数值将是12cycle,这样来看,它会是一个非常不好的结果。不过,即便是14cycle,在3GHz下,它的表现依然令人吃惊。而Core Duo(Yonah),
另一方面,缓存的延迟相当高,不过凭借4MB的L2缓存还是将这种影响降到了最低。造成这种现象的原因可能是FB-DIMMs。AMB会造成高延迟,CAS为4的registered DDR2 533芯片会造成一个更高的延迟。这使得内存子系统中的延迟达到了非常高的115ns,而Opteron只有73ns。
ScienceMark的结果则不尽相同,Opteron系统的测试结果为65-70ns,而Woodcrest的测试结果则在70-76ns。
不过在这里,我们则更倾向于LMBench的结果。
由于具备了可以支持模块取幂和乘法的MAU,Sun T1能够加速处理SSL的RSA(Rivest Shamir Adleman)和DSA(Digital Signal ALGorithm)的加密、解密操作。每颗T1核心都具备了一个MAU(modular arithmetic unit),这样8个核心就有了9个MAU。为了能够充分利用8个MAU,我们需要通过SCF(Solaris Cryptographic Framework)来完成SSLI的计算过程。我们使用命令openssl speed -engine pkcs11 rsa来测试T1的MAU。Solaris 10系统还提供了in-kernel SSL终端,它的安全性要比kernel之外的SSL终端要更完善。
我们在测试中选择了惠普的DL585来测试Opteron 880的8个核心是否可以和Sun T1 的8个MAU一拼高下。如果想要对Woodcrest和Opteron进行比较,我们则需要检测2和4并行码。我们可以在下面的图表中看到1024bit的数值。每颗核心一个线程师最好的选择,因此我们测试DL585时使用最大的16线程,这样8线程的性能就是最强的。测试Xeon Irwidale使用8线程,因此5线程就是最强的,如此类推。
我们注意到8MAU的Sun T1在关闭32“SSL RSA signing”线程后只能获得全效性能。在那种情况下,1GHz的T1能够和2.4GHz的8核心DL585取得近似的性能。如果不考虑MAU,T1的性能表现会和1.8GHzde Xeon Irwindale一样快。因此如果你想要在Sun T2000上运行自己的安全网络服务的话,对你的网络服务器进行SCF的检查将会是必不可少的了。
此外,我们注意到之前的Netburst架构的表现非常糟糕。这是因为在Pentium 4核心的内部缺少了barrel shifter,这是一种能够将大量数据转换或者循环进入一个时钟周期的电路。由于缺少了这种转换装置,造成延迟过高。就大多数的x86代码而言不能忽视这一点,不过代码的加密常常需要使用到这个转换和循环的过程。我们分别在HYper-Threading打开和关闭的两种情况下进行了测试。在这种情况下,Hyer-Threading为编码加密带来了20-28%的性能提升。
我们对四核心AMD Opteron 2.4GHz、四核心Xeon Woodcrest和Sun T1(打开MAU,分配不同长度的RSA)进行了对比测试。RSA Encryption (Signs/s)
Opteron 2.4 GHz
4 threads
Xeon 5160 3 GHz
4 threads
SUN T1 with MAU
32 threads
512 bit
19003
21194
35613
1024 bit
6098
6240
10722
2048 bit
1145
1087
1918
4096 bit
185
164
1
我们注意到T1的硬件加速并没有在2048bit下表现得更加优秀一些。考虑到大部分的安全程序依然是使用的1024bit,这样的结果我们也可以接受了。
在信号的检测中,服务器必须鉴定客户端的一致性。在1024bit下Woodcrest和Opteron都能检测到每颗核心超过50000keys,而且这还是OpenSSL检测程序的硬件限制。
Opteron再次在测试中取得了领先。8MAU Sun T1的速度只有4Opteron和Woodcrest的一半。加密往往要比检测代码更加损耗服务器的速度。
Apache/PHP/MySQL性能
英特尔的新Xeon在这里“扫了地”。比2.4GHz的Opteron高出75%的性能,新Xeon即使在面对3GHz的Opteron也不会存在什么问题。我们本应该做更深一步的研究,不过现在看来似乎是由于大的4MB L2缓存和Woodcrest本身不更加优秀的整数性能。而T1在这项测试中的表现则属于不好不坏。{{分页}}
Java Webserving
整个测试包括了如下几个部分:
Caucho Technology's Resin 2.1.17
Java Virtual Machine: Java HotSpot(TM) Server VM (build 1.5.0_04-b05)
Sybase ASE 15.0 for Solaris / Linux
AMD在这里的表现仍然只能算是差强人意,如果我们撇开2.4GHz和2.2GHz的两块CPU不看,3GHz的Opteron仍要比3GHz的Woodcrest慢25%!