LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: chgtg

一个简单的测试!请大家过来看看,并帖上测试的结果!谢谢!

[复制链接]
发表于 2005-12-13 12:31:23 | 显示全部楼层
“64位乘法比32位的慢”根据何在?

AMD64 3000+编译出来的代码可不是32位代码,却快很多。他的频率只有1.8GHz吧。
回复 支持 反对

使用道具 举报

发表于 2005-12-14 10:50:06 | 显示全部楼层
Post by freesky64
“64位乘法比32位的慢”根据何在?

AMD64 3000+编译出来的代码可不是32位代码,却快很多。他的频率只有1.8GHz吧。


就算不懂硬件也该能想到吧,32位的情况需要算的位数少了一半,难道反而会慢一些?

至于具体效果,这个只有看编译器产生的代码才知道的。

不同的平台上面编译器的优化选项效果差异很大。
回复 支持 反对

使用道具 举报

发表于 2005-12-14 12:31:22 | 显示全部楼层
Post by lucifer
就算不懂硬件也该能想到吧,32位的情况需要算的位数少了一半,难道反而会慢一些?

至于具体效果,这个只有看编译器产生的代码才知道的。

不同的平台上面编译器的优化选项效果差异很大。


照你所说8位的处理器比32位的还快了,所需运算的位数少了何止一半,少了1/4。 硬件做运算又不是一位一位的算。二是32位或者64位一起算的。
回复 支持 反对

使用道具 举报

发表于 2005-12-14 21:53:24 | 显示全部楼层
Post by freesky64
照你所说8位的处理器比32位的还快了,所需运算的位数少了何止一半,少了1/4。 硬件做运算又不是一位一位的算。二是32位或者64位一起算的。


通常32位乘法需要三个时钟周期而64位乘法需要5个(64x32需要4个)
Opteron optimization manual上面写的很清楚
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-15 11:17:04 | 显示全部楼层
看到大家这么热心此事,我也觉得很是高兴!我只是个初学者,对这些也不是很明白的。
拿出这个程序只是随便找了个运行时间长一些的,想看看机器到底是什么样子的。经过 这么深入的比较后,原来,很多事情不是想象中的那么简单的。希望各位兄弟可以总结一下,这样也可以给我这样的初学者一个指导!
另外,我的L2 cache是512K的!
回复 支持 反对

使用道具 举报

发表于 2006-1-22 13:24:45 | 显示全部楼层
xxx@xxx:~$ time ./count
Result is 3200002029.000000

real        0m34.871s
user        0m34.651s
sys        0m0.154s
xxx@xxx:~$ gcc -march=athlon-xp -O3 -pipe -fomit-frame-pointer -ffast-math -ftracer -fprefetch-loop-arrays -fno-ident -ftree-vectorize -falign-functions=64 count.c -o countyou
xxx@xxx:~$ time ./count
count     count.c   countyou  
xxx@xxx:~$ time ./countyou
Result is 3200002029.000000

real        0m14.029s
user        0m13.937s
sys        0m0.065s
xxx@xxx:~$ gcc -march=athlon-xp -O9 -pipe -fomit-frame-pointer -ffast-math -ftracer -fprefetch-loop-arrays -fno-ident -ftree-vectorize -falign-functions=64 count.c -o countyou2
xxx@xxx:~$ time ./countyou
countyou   countyou2  
xxx@xxx:~$ time ./countyou2
Result is 3200002029.000000

real        0m14.104s
user        0m14.012s
sys        0m0.065s
xxx@xxx:~$ time ./countyou2
Result is 3200002029.000000

real        0m13.969s
user        0m13.875s
sys        0m0.065s
-------------------------------------------------------------------
xxx@xxx:~$ cat /proc/cpuinfo
processor        : 0
vendor_id        : AuthenticAMD
cpu family        : 6
model                : 10
model name        : 白板移动版amd barton 2800+:)
stepping        : 0
cpu MHz                : 2088.551
cache size        : 512 KB
fdiv_bug        : no
hlt_bug                : no
f00f_bug        : no
coma_bug        : no
fpu                : yes
fpu_exception        : yes
cpuid level        : 1
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow
bogomips        : 4179.85
--------------------------------------------------------------------------------------------
xxx@xxx:~$ gcc -v
使用内建 specs。
目标:i686-pc-linux-gnu
配置为:/var/tmp/portage/gcc-4.0.2-r3/work/gcc-4.0.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.0.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.0.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.0.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.0.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.0.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.0.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libmudflap --disable-libgcj --enable-languages=c,c++,f95 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
线程模型:posix
gcc 版本 4.0.2 (Gentoo 4.0.2-r3, pie-8.7.8)
回复 支持 反对

使用道具 举报

发表于 2006-1-23 21:37:24 | 显示全部楼层
G5 with linux of kernel-2.6.15, glibc-2.3.6, and gcc-3.4.4:

dehua@localhost ~/testwork/tmp $ time gcc -O2 -mcpu=970 -maltivec -pipe speed01.c -o speed01

real    0m0.101s
user    0m0.075s
sys     0m0.028s
dehua@localhost ~/testwork/tmp $ time ./speed01 Result is 3200002029.000000

real    0m14.541s
user    0m14.528s
sys     0m0.007s
dehua@localhost ~/testwork/tmp $ time gcc -O2 -m32 -mcpu=970 -maltivec -pipe speed01.c -o speed01

real    0m0.288s
user    0m0.069s
sys     0m0.034s
dehua@localhost ~/testwork/tmp $ time ./speed01 Result is 3200002029.000000

real    0m9.692s
user    0m9.646s
sys     0m0.026s
回复 支持 反对

使用道具 举报

发表于 2006-1-23 22:00:00 | 显示全部楼层
Mandriva 2006 PowerPack
Centrino Pentium M 1.6G
Using built-in specs.
Target: i586-mandriva-linux-gnu
Configured with: ../configure --prefix=/usr --libexecdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-languages=c,c++,ada,f95,objc,java --host=i586-mandriva-linux-gnu --with-system-zlib --enable-long-long --enable-__cxa_atexit --enable-clocale=gnu --disable-libunwind-exceptions --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --enable-gtk-cairo --disable-libjava-multilib
Thread model: posix
gcc version 4.0.1 (4.0.1-5mdk for Mandriva Linux release 2006.0)

Result is 3200002029.000000

76.08user 0.05system 1:16.74elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+106minor)pagefaults 0swaps
回复 支持 反对

使用道具 举报

发表于 2006-1-23 22:13:40 | 显示全部楼层
time gcc -O2 count.c -o count

0.05user 0.00system 0:01.34elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (68major+3171minor)pagefaults 0swaps

time ./count

Result is 3200002029.000000

13.03user 0.00system 0:13.28elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+106minor)pagefaults 0swaps

cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 13
model name      : Intel(R) Pentium(R) M processor 1.60GHz
stepping        : 8
cpu MHz         : 1596.689
cache size      : 2048 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe est tm2
bogomips        : 3153.92
回复 支持 反对

使用道具 举报

发表于 2006-2-3 18:56:10 | 显示全部楼层
不优化的时候,PPC比x86差很远,一优化距离立刻就缩小了。。

这也符合RISE架构的特点
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表