+ -
当前位置:首页 → 问答吧 → [分享][测试]改进的pi,含源代码

[分享][测试]改进的pi,含源代码

时间:2009-05-23

来源:互联网

最近找了一个最新的测试cpu性能的pi程序,绝对比那个常见的又老的不能再老的super-pi要快。
需自行编译,会对cpu进行优化,包括多核。注意看readme,我修改了一下start脚本,让他使用系统的libgmp.a,免去了编译gmp的时间。
测试在gcc4.4下通过,mt的大家可以照着修改。
顺便说一下,我的dothan单核是300万位17秒左右。
这里有个rank,大家可以去瞧瞧。
http://h2np.net/pi/pi_record.html
http://h2np.net/pi/pi_thread.html
原版下载:http://h2np.net/pi/pi_quick_start.tar.gz
注意他是用的gmp4.3.0。
代码:
real 14.80
user 14.48
sys 0.25
DATE: 1243531706
PIID: 14F21C327E
上传的附件
pi_quick_start_mod.tar.bz2 (10.8 KB, 32 次查看)

作者: zhuqin_83   发布时间: 2009-05-23

假如我写了个更快的算法,能说明我硬件比楼主的好?

作者: veryxp   发布时间: 2009-05-23

这个算法是基于原来那个super-pi的,只不过针对最新的gmp做了优化,并增加了mt。比较只能比较同等算法下的东西,这不用我来教吧?

作者: zhuqin_83   发布时间: 2009-05-23

好处是节约时间?

作者: e66m   发布时间: 2009-05-23

感觉能自动针对cpu优化的测试程序才能测出cpu水平,不然你针对intel平台编译的东西,给AMD测试,不就不公平么?

windows上那么多测试软件,都是i686指令集?这个谁谁给点钱,稍微优化一下,不就他cpu牛了么

作者: jarryson   发布时间: 2009-05-24

win上的super-pi明显就是针对intel优化的,据说以前都使用wprime的,因为每次amd都比intel强,结果intel不乐意了,用小日本的super-pi优化,至今都是i的强。其实你看我给的那两个链接,哪一个测试不是amd的厉害?无论单核还是多核。
由此而知,现在流行的所谓测试软件的公正性到底如何,只有开源的测试才是令人信服的。最近一直在关注两个平台,准备在下半年搞台新的。看了不少评测,自相矛盾的,*的很多,目前看来唯一值得信任的只有phoronix的test suit,除了里面的super-pi。
继续等i7+x58降价或phenom II的新品+890FX。

作者: zhuqin_83   发布时间: 2009-05-24

飞龙2就是常见测试也可以和intel的抗衡了,比如superpi之类,当然那些软件针对谁优化还不知道

感觉intel的能够把两个核心当一个来用,AMD的只能在多任务体会出优势。在j3和j5的问题上貌似能体现出来。。。

作者: jarryson   发布时间: 2009-05-24

代码:
Type: mt-bbp
Time: 187.658 sec
DATE: 1243320395
PIID: F236F75236
SENDDATE: 1243320493
GMP: gmp-Version.txt gmp-chudnovsky.c
gcc (GCC) 4.4.0 20090505 (prerelease)
Copyright © 2009 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
./mt-bbp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.18, not stripped
Linux version 2.6.29-ARCH (root@T-POWA-LX) (gcc version 4.4.0 (GCC) ) #1 SMP PREEMPT Wed May 20 07:06:02 UTC 2009
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model : 15
model name      : Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz
代码:
real 18.58
user 18.13
sys 0.39
DATE: 1243320899
PIID: F8222BF9F5
SENDDATE: 1243321354
GMP: gmp-Version.txt gmp-chudnovsky.c mpn_amd64*
gcc (GCC) 4.4.0 20090505 (prerelease)
Copyright © 2009 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
./pi: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.18, not stripped
Linux version 2.6.29-ARCH (root@T-POWA-LX) (gcc version 4.4.0 (GCC) ) #1 SMP PREEMPT Wed May 20 07:06:02 UTC 2009
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model : 15
model name      : Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz
这个怎么解释?

并且,我下了原版的,编译了gmp,速度有了提升:
比如单核的测试,时间成了14s左右,
mt的则成了126s

作者: yafeng   发布时间: 2009-05-26

引用:
作者: veryxp
假如我写了个更快的算法,能说明我硬件比楼主的好?
你这就不对了,比如386跑的super pi,你再拿着到Core上跑,假设386是20mhz,而Core是2000MHZ,但是假设跑出的结果Core是i386的90倍,可能会有人说Core的单位HZ效能还没386好,其实这仅仅是Core运行x86指令而已,这对新CPU是不公平的,说不定用上新代码后,Core会是386的几百倍,上千倍

作者: yafeng   发布时间: 2009-05-26

引用:
作者: zhuqin_83
最近找了一个最新的测试cpu性能的pi程序,绝对比那个常见的又老的不能再老的super-pi要快。
需自行编译,会对cpu进行优化,包括多核。注意看readme,我修改了一下start脚本,让他使用系统的libgmp.a,免去了编译gmp的时间。
测试在gcc4.4下通过,mt的大家可以照着修改。
顺便说一下,我的dothan单核是300万位17秒左右。
这里有个rank,大家可以去瞧瞧。
http://h2np.net/pi/pi_record.html
http://h2np.net/pi/pi_thread.html
原版下载:http://h2np.net/pi/pi_quick_start.tar.gz
注意他是用的gmp4.3.0。
感觉这个gmp是需要编译一下才能体现出CPU的差异的,比如在我的笔记本上,用系统的gmp效果比编译的gmp效果差一些,上边我贴出来了,T5500在系统的gmp(i686)上18秒多,而新编译的gmp则是14秒左右,一下子省出来4秒之多。(-march=i686跟-march=native的区别?)

晚上又有新发现:

先贴一下我家HTPC的配置:

AMD Athlon(tm) 64 X2 Dual Core Processor 5200+(2.7GHZ)
GA-MA78GM-S2HP
金世顿DDR2 800 2Gx1

照配置来看,CPU配置可以说是比较低下,单通道内存对运算效果也可能有很大的影响,但效果却是出乎意料的令人满意:
start.sh:
real 8.12
user 7.74
sys 0.22
DATE: 1243336977
PIID: B96C1E5CB7

mt-start.sh
Time: 66.459 sec
DATE: 1243337078
PIID: 812271AA6F

比T5500实在是好的太多。尤其是mt方面
T5500时160多秒,由于我HTPC上也安装了一个X86-64的Arch,所以也有条件针对AMD的64位运算来次mark,结果绝对是目瞪口呆啊,我都怀疑这个软件是不是专门对AMD作弊了?:

start.sh:
real 3.38
user 3.24
sys 0.11
DATE: 1243341279
PIID: F09F2877FE

mt-start.sh
Time: 19.453 sec
DATE: 1243341328
PIID: C38288734D

啧啧,数据说明一切.........
如果谁说无图无真相,那么我上图
上传的图像
2009-05-26-205811_1366x768_scrot.png (48.3 KB, 18 次查看)
2009-05-26-205858_1366x768_scrot.png (63.4 KB, 14 次查看)

作者: yafeng   发布时间: 2009-05-27

就好像前面提到的,你咋不说windows平台测试针对intel作弊了呢

作者: jarryson   发布时间: 2009-05-27

引用:
作者: jarryson
就好像前面提到的,你咋不说windows平台测试针对intel作弊了呢
老大,你没看到我是满怀兴奋说的么。。。。。
我是AMD平台啊,老大,再说gmp这库哪能针对AMD作弊呢........
win下的本来就是对intel作弊了^_^

作者: yafeng   发布时间: 2009-05-27

哎呀,没看出来啊。。。

作者: jarryson   发布时间: 2009-05-27

话说,64位运算真不是盖的啊

作者: yafeng   发布时间: 2009-05-27

嗯,64位运算极其彪悍。
再看这里 http://www.phoronix.com/scan.php?pag...enom2_x3&num=1
phenom II X3 710 居然能和i7 920比,有不少还大比分超过,超频的话就更牛了。注意人家用的是780G,还是am2+ddr2的,比较期待890fx+ddr3,那时的内存性能会更强悍。何况价格连人家一半都没有。至于i5+p55,那玩意儿依然是dmi的总线,还不见得便宜。
由此可知,什么xx网的xx评测实在水分够大,除了某个用64位来比的(zol?),phenom II x4和i7 920性能相当。

作者: zhuqin_83   发布时间: 2009-05-27

引用:
作者: zhuqin_83
嗯,64位运算极其彪悍。
再看这里 http://www.phoronix.com/scan.php?pag...enom2_x3&num=1
phenom II X3 710 居然能和i7 920比,有不少还大比分超过,超频的话就更牛了。注意人家用的是780G,还是am2+ddr2的,比较期待890fx+ddr3,那时的内存性能会更强悍。何况价格连人家一半都没有。至于i5+p55,那玩意儿依然是dmi的总线,还不见得便宜。
由此可知,什么xx网的xx评测实在水分够大,除了某个用64位来比的(zol?),phenom II x4和i7 920性能相当。
其实刚买回来,我那只有300来块的U已经初露狰狞了,在gentoo上,编译gcc居然只用了20分,我的笔记本可是50分钟啊,虽然台机硬盘性能上有很大优势.

作者: yafeng   发布时间: 2009-05-27

(Thread #0)97% (83 sec)
(Thread #1)97% (84 sec)

AMD4800+ i686的

作者: o_Oll   发布时间: 2009-05-29

引用:
作者: o_Oll
(Thread #0)97% (83 sec)
(Thread #1)97% (84 sec)

AMD4800+ i686的

看mt-log啊

作者: yafeng   发布时间: 2009-05-29

Time: 97.147 sec
DATE: 1243524237
PIID: 85B6240F56


i686系统 AMD4800+
mt-log显示结果

作者: o_Oll   发布时间: 2009-05-29

real 14.80
user 14.48
sys 0.25
DATE: 1243531706
PIID: 14F21C327E
发现用-march=native的反而比不上直接make的?编译中我看到使用的是-march=pentium3 -mtune=pentium3。。。
不管了,想当初super-pi104万位用了34秒就已经很激动了。。。这可是300万呐。

作者: zhuqin_83   发布时间: 2009-05-29

引用:
作者: zhuqin_83
real 14.80
user 14.48
sys 0.25
DATE: 1243531706
PIID: 14F21C327E
发现用-march=native的反而比不上直接make的?编译中我看到使用的是-march=pentium3 -mtune=pentium3。。。
不管了,想当初super-pi104万位用了34秒就已经很激动了。。。这可是300万呐。
能够自己判断CPU类型的,编译gmp时,我i686上,编译时的march是Core2跟K8

作者: yafeng   发布时间: 2009-05-29

挖坟中。。。
代码:
Type: mt-bbp
Time: 17.449 sec
DATE: 1261507157
PIID: 57EBD13800
SENDDATE: 1261507179
GMP: gmp-4.3.0 gmp-4.3.0.tar.bz2 gmp-Version.txt gmp-chudnovsky.c
gcc (GCC) 4.4.2 20091208 (prerelease)
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

./mt-bbp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.18, not stripped
Linux version 2.6.32-ARCH (tobias@T-POWA-LX) (gcc version 4.4.2 20091208 (prerelease) (GCC) ) #1 SMP PREEMPT Tue Dec 15 19:39:38 CET 2009
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model : 6
model name      : AMD Turion(tm) II Ultra Dual-Core Mobile M640
stepping        : 2
cpu MHz : 2600.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id : 0
cpu cores       : 2
apicid : 0
initial apicid  : 0
fpu : yes
fpu_exception   : yes
cpuid level     : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt
bogomips        : 5189.42
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 16
model : 6
model name      : AMD Turion(tm) II Ultra Dual-Core Mobile M640
stepping        : 2
cpu MHz : 2600.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id : 1
cpu cores       : 2
apicid : 1
initial apicid  : 1
fpu : yes
fpu_exception   : yes
cpuid level     : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt
bogomips        : 5189.06
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

MemTotal: 4052416 kB
MemFree: 3087628 kB
Buffers: 234428 kB
Cached: 559020 kB
Mon May 25 12:30:53 JST 2009
$Id: version.txt,v 3.2 2009/05/25 03:30:53 hironobu Exp hironobu $
CHECKSUM: dfc6b7c62b1f4f18412e0712afa842c7b680e243 -

作者: zhuqin_83   发布时间: 2009-12-23

pi跑得快的U对我没啥大用,我关心的是实际软件包的编译速度,显然intel在这方面还有优势 千行/Hz。

作者: 没本   发布时间: 2009-12-23