xeon 64 bits

Emmanuel Thomé Emmanuel.Thome+gmp at loria.fr
Wed Sep 29 19:00:39 CEST 2004


> Could you please rerun GMPbench with the exact same options as was used for
> the GMP build?  (Or, alternatively, rebuild libgmp.a with the options you
> used for GMPbench (and in your case, then reinstall the library).

Here you go for gmpbench w/ -O2 -m64 (attached as RES.O2)

NOTE : gmp itself doesn't seem to compile with -O3 (this is still on the
same opteron box) :

beaufort : ...mp-4.1.4/mpz $ gcc -I.. -O3 -c n_pow_ui.c  
n_pow_ui.c: In function `__gmpz_n_pow_ui':
n_pow_ui.c:521: error: extended registers have no high halves

The offending line is the asm statement from the expansion of
ULONG_PARITY (from line 484 in n_pow_ui.c) :

asm("xorb   %h1, %b1\n" "setpo  %0\n": "=qm"(__p), "=q"(__n):"1"(__n));

( %h1 seems like unwanted on x86-64 ; why this very thing _passes_ with
-O2 is bizarre to me. )

With the generic C code itself, the compile goes OK. The corresponding
bench output is in RES.O3

> I specify the "options used" on the results page, and that requires
> consistent options not to be confusing to readers.

Makes sense.

E.
-------------- next part --------------

***** GMPbench version 0.1 *****
Using CFLAGS = "-O2 -m64" from your environment
Using default CC = "gcc"
Using default LIBS = "-static -lgmp"
Using compilation command: gcc -O2 -m64 foo.c -o foo -static -lgmp
You may want to override CC, CFLAGS, and LIBS
Using gmp version: 4.1.4
Compiling benchmarks
Running benchmarks
  Category base
    Program multiply
      multiply 128 128
      GMPbench.base.multiply.128,128 result: 22554533
      multiply 512 512
      GMPbench.base.multiply.512,512 result: 4020922
      multiply 8192 8192
      GMPbench.base.multiply.8192,8192 result: 30344
      multiply 131072 131072
      GMPbench.base.multiply.131072,131072 result: 394
      multiply 2097152 2097152
      GMPbench.base.multiply.2097152,2097152 result: 11.1
    GMPbench.base.multiply result: 26067
    Program divide
      divide 8192 32
      GMPbench.base.divide.8192,32 result: 525076
      divide 8192 64
      GMPbench.base.divide.8192,64 result: 630034
      divide 8192 128
      GMPbench.base.divide.8192,128 result: 431400
      divide 8192 4096
      GMPbench.base.divide.8192,4096 result: 56342
      divide 8192 8064
      GMPbench.base.divide.8192,8064 result: 808278
      divide 131072 8192
      GMPbench.base.divide.131072,8192 result: 1204
      divide 131072 65536
      GMPbench.base.divide.131072,65536 result: 572
      divide 8388608 4194304
      GMPbench.base.divide.8388608,4194304 result: 1.22
    GMPbench.base.divide result: 16488
  GMPbench.base result: 20731
  Category app
    Program rsa
      rsa 512
      GMPbench.app.rsa.512 result: 7986
      rsa 1024
      GMPbench.app.rsa.1024 result: 1457
      rsa 2048
      GMPbench.app.rsa.2048 result: 239
    GMPbench.app.rsa result: 1406.2
  GMPbench.app result: 1406.2
GMPbench result: 5399.4
-------------- next part --------------
***** GMPbench version 0.1 *****
Using default CFLAGS = "-O3 -fomit-frame-pointer"
Using default CC = "gcc"
Using LIBS = "-static /tmp/libgmp.a" from your environment
Using compilation command: gcc -O3 -fomit-frame-pointer foo.c -o foo -static /tmp/libgmp.a
You may want to override CC, CFLAGS, and LIBS
Using gmp version: 4.1.4
Compiling benchmarks
Running benchmarks
  Category base
    Program multiply
      multiply 128 128
      GMPbench.base.multiply.128,128 result: 23209290
      multiply 512 512
      GMPbench.base.multiply.512,512 result: 4032985
      multiply 8192 8192
      GMPbench.base.multiply.8192,8192 result: 30323
      multiply 131072 131072
      GMPbench.base.multiply.131072,131072 result: 390
      multiply 2097152 2097152
      GMPbench.base.multiply.2097152,2097152 result: 10.9
    GMPbench.base.multiply result: 26080
    Program divide
      divide 8192 32
      GMPbench.base.divide.8192,32 result: 525866
      divide 8192 64
      GMPbench.base.divide.8192,64 result: 628077
      divide 8192 128
      GMPbench.base.divide.8192,128 result: 431330
      divide 8192 4096
      GMPbench.base.divide.8192,4096 result: 65707
      divide 8192 8064
      GMPbench.base.divide.8192,8064 result: 810619
      divide 131072 8192
      GMPbench.base.divide.131072,8192 result: 1308
      divide 131072 65536
      GMPbench.base.divide.131072,65536 result: 575
      divide 8388608 4194304
      GMPbench.base.divide.8388608,4194304 result: 1.20
    GMPbench.base.divide result: 16961
  GMPbench.base result: 21032
  Category app
    Program rsa
      rsa 512
      GMPbench.app.rsa.512 result: 7890
      rsa 1024
      GMPbench.app.rsa.1024 result: 1439
      rsa 2048
      GMPbench.app.rsa.2048 result: 234
    GMPbench.app.rsa result: 1385
  GMPbench.app result: 1385
GMPbench result: 5397.2


More information about the gmp-discuss mailing list