Implementation notes: amd64, haswell, crypto_dh

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
CPU cycles/second: 2899272000...2899272000 (amd64cpuinfo)
SUPERCOP version: 20130419
Benchmark dates: 20130608...20130609

crypto_dh

TimeRelative timePrimitiveImplementationCompiler
70301841.00clauscrypto_dh/claus/opensslclang -O3 -mavx (4.2.1 Compatible Clang 3.2 (tags/RELEASE 32/final))
78301121.11clauscrypto_dh/claus/gmpg++ -m64 -O3 -fomit-frame-pointer
clauscrypto_dh/claus/cryptoppg++ -m64 -O3 -fomit-frame-pointer
clauscrypto_dh/claus/ntlg++ -m64 -O3 -fomit-frame-pointer
4226121.00curve2251crypto_dh/curve2251/relic/amd64-clmulgcc -march=nocona -O2 -fomit-frame-pointer (4.8.1)
4237001.00curve2251crypto_dh/curve2251/relic/amd64-avxclang -O3 -mavx
11322762.68curve2251crypto_dh/curve2251/relic/amd64-ssse3gcc -m64 -march=barcelona -Os -fomit-frame-pointer
27994646.62curve2251crypto_dh/curve2251/mpfqgcc -m64 -march=corei7-avx -O -fomit-frame-pointer
6644721.00curve25519crypto_dh/curve25519/refgcc -march=k8 -O -fomit-frame-pointer (4.8.1)
9908561.49curve25519crypto_dh/curve25519/mpfqgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer
5245801.00ecfp256ecrypto_dh/ecfp256e/v01/w8s4gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer (4.8.1)
5251001.00ecfp256ecrypto_dh/ecfp256e/v01/w8s8gcc -O3 -fomit-frame-pointer
5433801.04ecfp256ecrypto_dh/ecfp256e/v01/w8s2gcc -m64 -march=core2 -O2 -fomit-frame-pointer
5719121.09ecfp256ecrypto_dh/ecfp256e/v01/w8s1gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer
8428841.61ecfp256ecrypto_dh/ecfp256e/v01/vargcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer
6026841.00ecfp256hcrypto_dh/ecfp256h/v01/w8s8gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.8.1)
6210001.03ecfp256hcrypto_dh/ecfp256h/v01/w8s4gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer
6270161.04ecfp256hcrypto_dh/ecfp256h/v01/w8s2gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer
6465001.07ecfp256hcrypto_dh/ecfp256h/v01/w8s1gcc -m64 -march=core2 -O2 -fomit-frame-pointer
10195201.69ecfp256hcrypto_dh/ecfp256h/v01/vargcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer
5646321.00ecfp256icrypto_dh/ecfp256i/v01/w8s2gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer (4.8.1)
5717961.01ecfp256icrypto_dh/ecfp256i/v01/w8s8gcc -O3 -fomit-frame-pointer
5748051.02ecfp256icrypto_dh/ecfp256i/v01/w8s4gcc -m64 -march=corei7 -O3 -fomit-frame-pointer
5907241.05ecfp256icrypto_dh/ecfp256i/v01/w8s1gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
9219101.63ecfp256icrypto_dh/ecfp256i/v01/vargcc -m64 -O2 -fomit-frame-pointer
5378201.00ecfp256qcrypto_dh/ecfp256q/v01/w8s8gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.8.1)
5542441.03ecfp256qcrypto_dh/ecfp256q/v01/w8s4gcc -m64 -O3 -fomit-frame-pointer
5785001.08ecfp256qcrypto_dh/ecfp256q/v01/w8s2gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
5929281.10ecfp256qcrypto_dh/ecfp256q/v01/w8s1gcc -m64 -march=nocona -O3 -fomit-frame-pointer
8693401.62ecfp256qcrypto_dh/ecfp256q/v01/vargcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
6488721.00ecfp256scrypto_dh/ecfp256s/v01/w8s8gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.8.1)
6776401.04ecfp256scrypto_dh/ecfp256s/v01/w8s2gcc -m64 -march=core2 -O3 -fomit-frame-pointer
6784301.05ecfp256scrypto_dh/ecfp256s/v01/w8s4gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
7115521.10ecfp256scrypto_dh/ecfp256s/v01/w8s1gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
11040121.70ecfp256scrypto_dh/ecfp256s/v01/vargcc -m64 -O3 -fomit-frame-pointer
6407241.00gls1271crypto_dh/gls1271/ref4gcc -O2 -fomit-frame-pointer (4.8.1)
2141761.00gls254crypto_dh/gls254/refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer (4.8.1)
5344841.00hecfp127icrypto_dh/hecfp127i/v02/w8s08gcc -funroll-loops -O3 -fomit-frame-pointer (4.8.1)
5436521.02hecfp127icrypto_dh/hecfp127i/v02/w8s32gcc -m64 -march=k8 -O -fomit-frame-pointer
5441161.02hecfp127icrypto_dh/hecfp127i/v02/w8s04gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer
5454961.02hecfp127icrypto_dh/hecfp127i/v02/w8s16gcc -m64 -march=nocona -O2 -fomit-frame-pointer
5498441.03hecfp127icrypto_dh/hecfp127i/v02/w8s02gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer
5741081.07hecfp127icrypto_dh/hecfp127i/v02/w8s01gcc -march=barcelona -O -fomit-frame-pointer
9313361.74hecfp127icrypto_dh/hecfp127i/v02/vargcc -m64 -O2 -fomit-frame-pointer
4006241.00hecfp128bkcrypto_dh/hecfp128bk/v02/w8s32glv4gcc -O2 -fomit-frame-pointer (4.8.1)
4032881.01hecfp128bkcrypto_dh/hecfp128bk/v02/w8s16glv4gcc -m64 -march=core2 -O2 -fomit-frame-pointer
4048721.01hecfp128bkcrypto_dh/hecfp128bk/v02/w8s08glv4gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer
4151681.04hecfp128bkcrypto_dh/hecfp128bk/v02/w8s04glv4gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
4212081.05hecfp128bkcrypto_dh/hecfp128bk/v02/w8s02glv4gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer
4582161.14hecfp128bkcrypto_dh/hecfp128bk/v02/w8s01glv4gcc -march=barcelona -O2 -fomit-frame-pointer
6105481.52hecfp128bkcrypto_dh/hecfp128bk/v02/varglv4gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer
3970481.00hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s32glv4gcc -funroll-loops -O2 -fomit-frame-pointer (4.8.1)
3972601.00hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s16glv4gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer
4041881.02hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s08glv4gcc -fno-schedule-insns -O2 -fomit-frame-pointer
4054681.02hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s04glv4gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer
4211761.06hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s02glv4gcc -O2 -fomit-frame-pointer
4486641.13hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s01glv4gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
6221641.57hecfp128fktcrypto_dh/hecfp128fkt/v02/varglv4gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer
7551481.00hecfp128icrypto_dh/hecfp128i/v02/w8s16gcc -O3 -fomit-frame-pointer (4.8.1)
7576041.00hecfp128icrypto_dh/hecfp128i/v02/w8s32gcc -m64 -march=corei7 -O2 -fomit-frame-pointer
7792761.03hecfp128icrypto_dh/hecfp128i/v02/w8s08gcc -fno-schedule-insns -O2 -fomit-frame-pointer
7995481.06hecfp128icrypto_dh/hecfp128i/v02/w8s02gcc -march=k8 -O3 -fomit-frame-pointer
8010961.06hecfp128icrypto_dh/hecfp128i/v02/w8s04gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
8420561.12hecfp128icrypto_dh/hecfp128i/v02/w8s01gcc -march=k8 -O3 -fomit-frame-pointer
13294161.76hecfp128icrypto_dh/hecfp128i/v02/vargcc -m64 -O3 -fomit-frame-pointer
21156761.00hectorcrypto_dh/hector/refclang -O3 -mavx (4.2.1 Compatible Clang 3.2 (tags/RELEASE 32/final))
4366801.00kumfp127gcrypto_dh/kumfp127g/v02/vargcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer (4.8.1)
6375801.00kumfp128gcrypto_dh/kumfp128g/v02/vargcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer (4.8.1)
12421801.00sclaus1024crypto_dh/sclaus1024/gmpg++ -m64 -Os -fomit-frame-pointer (4.8.1)
sclaus1024crypto_dh/sclaus1024/cryptoppg++ -m64 -O3 -fomit-frame-pointer
62821831.00sclaus2048crypto_dh/sclaus2048/gmpg++ -march=nocona -O -fomit-frame-pointer (4.8.1)
sclaus2048crypto_dh/sclaus2048/cryptoppg++ -m64 -O3 -fomit-frame-pointer
8892361.00surf127epscrypto_dh/surf127eps/mpfqgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.8.1)
22690921.00surf2113crypto_dh/surf2113/mpfqgcc -m64 -march=corei7-avx -O -fomit-frame-pointer (4.8.1)

crypto_scalarmult

TimeRelative timePrimitiveImplementationCompiler
3248681.00curve25519crypto_scalarmult/curve25519/amd64-51gcc -m64 -O2 -fomit-frame-pointer (4.8.1)
3578891.10curve25519crypto_scalarmult/curve25519/amd64-64gcc -march=k8 -O3 -fomit-frame-pointer
4738721.46curve25519crypto_scalarmult/curve25519/donna_c64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer
5601231.72curve25519crypto_scalarmult/curve25519/donnagcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer
7327522.26curve25519crypto_scalarmult/curve25519/ref10gcc -m64 -march=corei7 -O -fomit-frame-pointer
1129306034.76curve25519crypto_scalarmult/curve25519/refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer