Improvements for power64/mode64

Mark Rodenkirch mgrogue at wi.rr.com
Sat Mar 25 21:39:33 CET 2006


I would like to submit the following sources to replace addmul_1.asm  
and submul_1.asm for the next release, whether 4.2 or a patch for  
4.2.  These sources take full advantage of the G5's pipeline.  I had  
integrated these into GMP 4.1.4 early in 2005 and have used them  
extensively with GMP-ECM since then.  With them I have found dozens  
of new factors.

These are both thoroughly tested with both 4.1.4.   With 4.1.99, they  
pass all tests with "make check" and all tests with GMP-ECM 6.0.1.

I have also updated sqr_diagonal.asm which also passes "make check",  
although I don't think GMP-ECM uses it.

--Mark

Here are the results from GMPbench on a 2.5 GHz G5:

***** GMPbench version 0.1 *****
Using default CFLAGS = "-O3 -m64 -fomit-frame-pointer"
Using default CC = "gcc"
Using default LIBS = "-lgmp"
Using compilation command: gcc -O3 -m64 -fomit-frame-pointer foo.c -o  
foo -lgmp
You may want to override CC, CFLAGS, and LIBS
Using gmp version: 4.2
Compiling benchmarks
Running benchmarks
   Category base
     Program multiply
       multiply 128 128
       GMPbench.base.multiply.128,128 result: 19163322
       multiply 512 512
       GMPbench.base.multiply.512,512 result: 3510102
       multiply 8192 8192
       GMPbench.base.multiply.8192,8192 result: 35148
       multiply 131072 131072
       GMPbench.base.multiply.131072,131072 result: 529
       multiply 2097152 2097152
       GMPbench.base.multiply.2097152,2097152 result: 18.9
     GMPbench.base.multiply result: 29835
     Program divide
       divide 8192 32
       GMPbench.base.divide.8192,32 result: 459213
       divide 8192 64
       GMPbench.base.divide.8192,64 result: 463476
       divide 8192 128
       GMPbench.base.divide.8192,128 result: 314291
       divide 8192 4096
       GMPbench.base.divide.8192,4096 result: 63003
       divide 8192 8064
       GMPbench.base.divide.8192,8064 result: 814687
       divide 131072 8192
       GMPbench.base.divide.131072,8192 result: 1310
       divide 131072 65536
       GMPbench.base.divide.131072,65536 result: 677
       divide 8388608 4194304
       GMPbench.base.divide.8388608,4194304 result: 1.88
     GMPbench.base.divide result: 16585
   GMPbench.base result: 22244
   Category app
     Program rsa
       rsa 512
       GMPbench.app.rsa.512 result: 7878
       rsa 1024
       GMPbench.app.rsa.1024 result: 1524
       rsa 2048
       GMPbench.app.rsa.2048 result: 242
     GMPbench.app.rsa result: 1426.9
   GMPbench.app result: 1426.9
GMPbench result: 5633.9

-------------- next part --------------
A non-text attachment was scrubbed...
Name: addmul_1.asm
Type: application/octet-stream
Size: 3744 bytes
Desc: not available
Url : http://gmplib.org/list-archives/gmp-devel/attachments/20060325/d4bb4963/addmul_1.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: submul_1.asm
Type: application/octet-stream
Size: 4008 bytes
Desc: not available
Url : http://gmplib.org/list-archives/gmp-devel/attachments/20060325/d4bb4963/submul_1.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sqr_diagonal.asm
Type: application/octet-stream
Size: 1763 bytes
Desc: not available
Url : http://gmplib.org/list-archives/gmp-devel/attachments/20060325/d4bb4963/sqr_diagonal.obj


More information about the gmp-devel mailing list