Implementation notes: amd64, berlekamp, crypto_dh

Computer: berlekamp
Architecture: amd64
CPU ID: GenuineIntel-00010677-bfebfbff
CPU cycles/second: 2833000000...2833000000 (amd64cpuinfo)
SUPERCOP version: 20120310
Benchmark dates: 20101031...20120311

crypto_dh

TimeRelative timePrimitiveImplementationCompiler
108464001.00clauscrypto_dh/claus/gmpg++ -m64 -march=k8 -O3 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
111723411.03clauscrypto_dh/claus/cryptoppg++ -m64 -march=core2 -O3 -fomit-frame-pointer
186391401.72clauscrypto_dh/claus/opensslgcc -funroll-loops -m64 -O2 -fomit-frame-pointer
clauscrypto_dh/claus/ntlg++ -m64 -O3 -fomit-frame-pointer
13097741.00curve2251crypto_dh/curve2251/relic/amd64-ssse3gcc -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
43268743.30curve2251crypto_dh/curve2251/mpfqgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer
curve2251crypto_dh/curve2251/relic/amd64-avxgcc -m64 -O3 -fomit-frame-pointer
curve2251crypto_dh/curve2251/relic/amd64-clmulgcc -m64 -O3 -fomit-frame-pointer
12535801.00curve25519crypto_dh/curve25519/refgcc -m64 -O -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
15534941.24curve25519crypto_dh/curve25519/mpfqgcc -march=nocona -O3 -fomit-frame-pointer
8539611.00ecfp256ecrypto_dh/ecfp256e/v01/w8s8gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
8595971.01ecfp256ecrypto_dh/ecfp256e/v01/w8s4gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer
8788151.03ecfp256ecrypto_dh/ecfp256e/v01/w8s2gcc -fno-schedule-insns -O2 -fomit-frame-pointer
9170391.07ecfp256ecrypto_dh/ecfp256e/v01/w8s1gcc -m64 -O2 -fomit-frame-pointer
14213701.66ecfp256ecrypto_dh/ecfp256e/v01/vargcc -m64 -march=core2 -O2 -fomit-frame-pointer
10319341.00ecfp256hcrypto_dh/ecfp256h/v01/w8s8gcc -march=k8 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
10435961.01ecfp256hcrypto_dh/ecfp256h/v01/w8s4gcc -m64 -march=k8 -O2 -fomit-frame-pointer
10642001.03ecfp256hcrypto_dh/ecfp256h/v01/w8s2gcc -march=k8 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
11075071.07ecfp256hcrypto_dh/ecfp256h/v01/w8s1gcc -m64 -march=k8 -O2 -fomit-frame-pointer
17630361.71ecfp256hcrypto_dh/ecfp256h/v01/vargcc -march=k8 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
9255061.00ecfp256icrypto_dh/ecfp256i/v01/w8s8gcc -m64 -march=k8 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
9301301.00ecfp256icrypto_dh/ecfp256i/v01/w8s4gcc -m64 -O2 -fomit-frame-pointer
9462801.02ecfp256icrypto_dh/ecfp256i/v01/w8s2gcc -m64 -O2 -fomit-frame-pointer
9789201.06ecfp256icrypto_dh/ecfp256i/v01/w8s1gcc -O2 -fomit-frame-pointer
15041091.63ecfp256icrypto_dh/ecfp256i/v01/vargcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer
9006771.00ecfp256qcrypto_dh/ecfp256q/v01/w8s8gcc -m64 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
9102821.01ecfp256qcrypto_dh/ecfp256q/v01/w8s4gcc -fno-schedule-insns -O2 -fomit-frame-pointer
9269081.03ecfp256qcrypto_dh/ecfp256q/v01/w8s2gcc -march=k8 -O2 -fomit-frame-pointer
9606701.07ecfp256qcrypto_dh/ecfp256q/v01/w8s1gcc -m64 -march=core2 -O2 -fomit-frame-pointer
14644741.63ecfp256qcrypto_dh/ecfp256q/v01/vargcc -march=k8 -O2 -fomit-frame-pointer
10654491.00ecfp256scrypto_dh/ecfp256s/v01/w8s8gcc -O3 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
10739411.01ecfp256scrypto_dh/ecfp256s/v01/w8s4gcc -m64 -O2 -fomit-frame-pointer
10923351.03ecfp256scrypto_dh/ecfp256s/v01/w8s2gcc -m64 -O3 -fomit-frame-pointer
11343761.06ecfp256scrypto_dh/ecfp256s/v01/w8s1gcc -m64 -march=k8 -O2 -fomit-frame-pointer
18220771.71ecfp256scrypto_dh/ecfp256s/v01/vargcc -fno-schedule-insns -O3 -fomit-frame-pointer
9264401.00gls1271crypto_dh/gls1271/ref4gcc -march=k8 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
37232721.00hectorcrypto_dh/hector/refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
nistp256crypto_dh/nistp256/nawazgcc -m64 -O3 -fomit-frame-pointer
18295571.00sclaus1024crypto_dh/sclaus1024/gmpg++ -march=k8 -O3 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
19832971.08sclaus1024crypto_dh/sclaus1024/cryptoppg++ -m64 -march=k8 -Os -fomit-frame-pointer
88007641.00sclaus2048crypto_dh/sclaus2048/gmpg++ -Os -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
95144411.08sclaus2048crypto_dh/sclaus2048/cryptoppg++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer
17157001.00surf127epscrypto_dh/surf127eps/mpfqgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
34348751.00surf2113crypto_dh/surf2113/mpfqgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))

crypto_scalarmult

TimeRelative timePrimitiveImplementationCompiler
6122811.00curve25519crypto_scalarmult/curve25519/amd64-64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
6143551.00curve25519crypto_scalarmult/curve25519/donna_c64gcc -fno-schedule-insns -O3 -fomit-frame-pointer
6622861.08curve25519crypto_scalarmult/curve25519/amd64-51gcc -m64 -O -fomit-frame-pointer
9900291.62curve25519crypto_scalarmult/curve25519/donnagcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
12844602.10curve25519crypto_scalarmult/curve25519/ref10gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.4.1 20090725 (Red Hat 4.4.1-2))
1915314331.28curve25519crypto_scalarmult/curve25519/refgcc -funroll-loops -m64 -O -fomit-frame-pointer
curve25519crypto_scalarmult/curve25519/athlongcc -m64 -O3 -fomit-frame-pointer
curve25519crypto_scalarmult/curve25519/costigan-schwabe/cbegcc -m64 -O3 -fomit-frame-pointer