AMD64 X2 2.4 GHz Benchmark Results

Jan Doornaert jan.doornaert at programmer.net
Mon Jul 23 22:12:24 CEST 2007


Brian,



I've run gmpbench on my (32-bit, single-core) Ubuntu machine...

jdo at BlackAdder:~/gmpbench-0.1$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 10
model name      : AMD Athlon(tm) XP 2800+
stepping        : 0
cpu MHz         : 2255.147
cache size      : 512 KB

...and this gives the following divide results:

    Program divide
      divide 8192 32
      GMPbench.base.divide.8192,32 result: 506617
      divide 8192 64
      GMPbench.base.divide.8192,64 result: 148316
      divide 8192 128
      GMPbench.base.divide.8192,128 result: 94882
      divide 8192 4096
      GMPbench.base.divide.8192,4096 result: 32560
      divide 8192 8064
      GMPbench.base.divide.8192,8064 result: 430080
      divide 131072 8192
      GMPbench.base.divide.131072,8192 result: 677
      divide 131072 65536
      GMPbench.base.divide.131072,65536 result: 373
      divide 8388608 4194304
      GMPbench.base.divide.8388608,4194304 result: 1.07
    GMPbench.base.divide result: 8489.3

You might notice several things:
1) The results of your only slightly higher clocked X2 are generally 2 to 3 times better than mine...
2) ...except for the FIRST result.

It looks like the divide.8192,32 and divide.8192,64 algorithms really do not differ much on a 64-bit machine (probably because the divider is stored in a 64-bit "word" anyway).
For my (32-bit) machine this does matter, as a 64-bit divider is stored in 2 32-bits "words".

In short, for a 64-bit machine, the first test should probably be excluded (or at least not taken into account when calculating the final benchmark result).

CU, JDO
--------------------------------- Original mail ---------------------------------
I have been running gmpbench on an 2.4 GHz AMD64 X2 machine with the 
following summary results:

Running benchmarks
  Category base
    Program multiply
    GMPbench.base.multiply result: 47916
    Program divide
    GMPbench.base.divide result: 18006
  GMPbench.base result: 29373
    Program rsa
  GMPbench.app result: 2386.3
GMPbench result: 8372

The striking feature here is that the divide results are poor and I am 
wondering why this is.

    Program divide
      divide 8192 32
      GMPbench.base.divide.8192,32 result: 356495
      divide 8192 64
      GMPbench.base.divide.8192,64 result: 336958
      divide 8192 128
      GMPbench.base.divide.8192,128 result: 170276
      divide 8192 4096
      GMPbench.base.divide.8192,4096 result: 88660
      divide 8192 8064
      GMPbench.base.divide.8192,8064 result: 953276
      divide 131072 8192
      GMPbench.base.divide.131072,8192 result: 2170
      divide 131072 65536
      GMPbench.base.divide.131072,65536 result: 1202
      divide 8388608 4194304
      GMPbench.base.divide.8388608,4194304 result: 2.45
    GMPbench.base.divide result: 18006

Given these results for divide, is it likely that the limits for switching 
algorithms is wrong?

Or do I need to do more work on assembler code in support of divide 
operations?

Any observations would be appreciated.

   Brian Gladman

-- 
We've Got Your Name at http://www.mail.com!
Get a FREE E-mail Account Today - Choose From 100+ Domains

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gmplib.org/list-archives/gmp-discuss/attachments/20070723/2478b6fe/attachment.html 


More information about the gmp-discuss mailing list