Implementation notes: amd64, h9ivy, crypto_dh

Computer: h9ivy
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
CPU cycles/second: 2501000000...2501000000 (amd64cpuinfo)
SUPERCOP version: 20141014
Benchmark dates: 20130420...20141016

crypto_dh

TimeRelative timePrimitiveImplementationCompiler
63974481.00clauscrypto_dh/claus/gmpg++ -march=barcelona -O3 -fomit-frame-pointer (4.6.3)
79509201.24clauscrypto_dh/claus/opensslgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer
80981041.27clauscrypto_dh/claus/cryptoppg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
clauscrypto_dh/claus/ntlg++ -m64 -O3 -fomit-frame-pointer
5669641.00curve2251crypto_dh/curve2251/relic/amd64-avxgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer (4.6.3)
6026761.06curve2251crypto_dh/curve2251/relic/amd64-clmulgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
11263081.99curve2251crypto_dh/curve2251/relic/amd64-ssse3gcc -funroll-loops -m64 -O2 -fomit-frame-pointer
27933404.93curve2251crypto_dh/curve2251/mpfqgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer
7310841.00curve25519crypto_dh/curve25519/refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.6.3)
10304881.41curve25519crypto_dh/curve25519/mpfqgcc -m64 -march=core2 -O3 -fomit-frame-pointer
5515921.00ecfp256ecrypto_dh/ecfp256e/v01/w8s8gcc -m64 -O3 -fomit-frame-pointer (4.6.3)
5574641.01ecfp256ecrypto_dh/ecfp256e/v01/w8s4gcc -fno-schedule-insns -O3 -fomit-frame-pointer
5684321.03ecfp256ecrypto_dh/ecfp256e/v01/w8s2gcc -m64 -O3 -fomit-frame-pointer (4.6.3)
5924801.07ecfp256ecrypto_dh/ecfp256e/v01/w8s1gcc -fno-schedule-insns -O3 -fomit-frame-pointer
9112561.65ecfp256ecrypto_dh/ecfp256e/v01/vargcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
6511161.00ecfp256hcrypto_dh/ecfp256h/v01/w8s8gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer (4.6.3)
6571961.01ecfp256hcrypto_dh/ecfp256h/v01/w8s4gcc -fno-schedule-insns -O3 -fomit-frame-pointer
6691641.03ecfp256hcrypto_dh/ecfp256h/v01/w8s2gcc -O3 -fomit-frame-pointer
6954561.07ecfp256hcrypto_dh/ecfp256h/v01/w8s1gcc -m64 -march=corei7 -O3 -fomit-frame-pointer
11009481.69ecfp256hcrypto_dh/ecfp256h/v01/vargcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer
9614121.00ecfp256icrypto_dh/ecfp256i/v01/vargcc -m64 -O3 -fomit-frame-pointer (4.6.3)
ecfp256icrypto_dh/ecfp256i/v01/w8s1gcc -m64 -O3 -fomit-frame-pointer (4.6.3)
ecfp256icrypto_dh/ecfp256i/v01/w8s2gcc -m64 -O3 -fomit-frame-pointer (4.6.3)
ecfp256icrypto_dh/ecfp256i/v01/w8s4gcc -m64 -O3 -fomit-frame-pointer (4.6.3)
ecfp256icrypto_dh/ecfp256i/v01/w8s8gcc -m64 -O3 -fomit-frame-pointer (4.6.3)
5805961.00ecfp256qcrypto_dh/ecfp256q/v01/w8s8gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
5858721.01ecfp256qcrypto_dh/ecfp256q/v01/w8s4gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
5977201.03ecfp256qcrypto_dh/ecfp256q/v01/w8s2gcc -m64 -O3 -fomit-frame-pointer
6204081.07ecfp256qcrypto_dh/ecfp256q/v01/w8s1gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer
9367521.61ecfp256qcrypto_dh/ecfp256q/v01/vargcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
7005201.00ecfp256scrypto_dh/ecfp256s/v01/w8s8gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
7072801.01ecfp256scrypto_dh/ecfp256s/v01/w8s4gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
7204721.03ecfp256scrypto_dh/ecfp256s/v01/w8s2gcc -m64 -march=corei7 -O3 -fomit-frame-pointer
7472361.07ecfp256scrypto_dh/ecfp256s/v01/w8s1gcc -m64 -march=corei7 -O3 -fomit-frame-pointer
11892961.70ecfp256scrypto_dh/ecfp256s/v01/vargcc -m64 -march=nocona -O3 -fomit-frame-pointer
18473801.00ed448goldilockscrypto_dh/ed448goldilocks/amd64 (2014-10-12)gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer (4.6.3)
20665561.12ed448goldilockscrypto_dh/ed448goldilocks/64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
57059803.09ed448goldilockscrypto_dh/ed448goldilocks/32gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer
ed448goldilockscrypto_dh/ed448goldilocks/arm32gcc -m64 -O3 -fomit-frame-pointer
ed448goldilockscrypto_dh/ed448goldilocks/neongcc -m64 -O3 -fomit-frame-pointer
6808881.00gls1271crypto_dh/gls1271/ref4gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer (4.6.3)
3196641.00gls254crypto_dh/gls254/refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer (4.6.3)
4577401.43gls254crypto_dh/gls254/protgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer
4580081.00gls254protcrypto_dh/gls254prot/protgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer (4.6.3)
5596881.00hecfp127icrypto_dh/hecfp127i/v02/w8s32gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
5606961.00hecfp127icrypto_dh/hecfp127i/v02/w8s16gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
5629521.01hecfp127icrypto_dh/hecfp127i/v02/w8s08gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
5686481.02hecfp127icrypto_dh/hecfp127i/v02/w8s04gcc -m64 -march=core2 -O3 -fomit-frame-pointer (4.6.3)
5812601.04hecfp127icrypto_dh/hecfp127i/v02/w8s02gcc -m64 -march=nocona -O3 -fomit-frame-pointer
6052281.08hecfp127icrypto_dh/hecfp127i/v02/w8s01gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
9910881.77hecfp127icrypto_dh/hecfp127i/v02/vargcc -O3 -fomit-frame-pointer
4260681.00hecfp128bkcrypto_dh/hecfp128bk/v02/w8s32glv4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
4276081.00hecfp128bkcrypto_dh/hecfp128bk/v02/w8s16glv4gcc -march=barcelona -O2 -fomit-frame-pointer
4319641.01hecfp128bkcrypto_dh/hecfp128bk/v02/w8s08glv4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
4403521.03hecfp128bkcrypto_dh/hecfp128bk/v02/w8s04glv4gcc -march=barcelona -O2 -fomit-frame-pointer
4575361.07hecfp128bkcrypto_dh/hecfp128bk/v02/w8s02glv4gcc -march=barcelona -O2 -fomit-frame-pointer
4921121.16hecfp128bkcrypto_dh/hecfp128bk/v02/w8s01glv4gcc -m64 -march=k8 -O2 -fomit-frame-pointer
6669681.57hecfp128bkcrypto_dh/hecfp128bk/v02/varglv4gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer
4249201.00hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s32glv4gcc -m64 -march=k8 -O2 -fomit-frame-pointer (4.6.3)
4269361.00hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s16glv4gcc -march=barcelona -O2 -fomit-frame-pointer
4300041.01hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s08glv4gcc -march=barcelona -O2 -fomit-frame-pointer
4385641.03hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s04glv4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
4560641.07hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s02glv4gcc -march=barcelona -O2 -fomit-frame-pointer
4903081.15hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s01glv4gcc -march=barcelona -O3 -fomit-frame-pointer
6655401.57hecfp128fktcrypto_dh/hecfp128fkt/v02/varglv4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
8272481.00hecfp128icrypto_dh/hecfp128i/v02/w8s32gcc -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
8288081.00hecfp128icrypto_dh/hecfp128i/v02/w8s16gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
8324321.01hecfp128icrypto_dh/hecfp128i/v02/w8s08gcc -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
8424481.02hecfp128icrypto_dh/hecfp128i/v02/w8s04gcc -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
8608241.04hecfp128icrypto_dh/hecfp128i/v02/w8s02gcc -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
8967721.08hecfp128icrypto_dh/hecfp128i/v02/w8s01gcc -march=barcelona -O2 -fomit-frame-pointer (4.6.3)
14677921.77hecfp128icrypto_dh/hecfp128i/v02/vargcc -m64 -march=barcelona -O2 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/varglv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s01glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s02glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s04glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s08glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s16glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s32glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/vargcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s01gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s02gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s04gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s08gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s16gcc -m64 -O3 -fomit-frame-pointer
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s32gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/varglv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s01glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s02glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s04glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s08glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s16glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s32glv8gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/vargcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s01gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s02gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s04gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s08gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s16gcc -m64 -O3 -fomit-frame-pointer
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s32gcc -m64 -O3 -fomit-frame-pointer
22986961.00hectorcrypto_dh/hector/refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer (4.6.3)
4599401.00kumfp127gcrypto_dh/kumfp127g/v02/vargcc -m64 -march=k8 -O -fomit-frame-pointer (4.6.3)
6702841.00kumfp128gcrypto_dh/kumfp128g/v02/vargcc -march=k8 -O2 -fomit-frame-pointer (4.6.3)
kumfp61e2gcrypto_dh/kumfp61e2g/v01/vargcc -m64 -O3 -fomit-frame-pointer
kumfp64e2gcrypto_dh/kumfp64e2g/v01/vargcc -m64 -O3 -fomit-frame-pointer
3550601.00kummercrypto_dh/kummer/refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer (4.6.3)
28206241.00nistp256crypto_dh/nistp256/refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer (4.6.3)
39002961.38nistp256crypto_dh/nistp256/wblgcc -funroll-loops -m64 -O2 -fomit-frame-pointer
10833721.00sclaus1024crypto_dh/sclaus1024/gmpg++ -m64 -march=nocona -O3 -fomit-frame-pointer (4.6.3)
14540441.34sclaus1024crypto_dh/sclaus1024/cryptoppg++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer
53884721.00sclaus2048crypto_dh/sclaus2048/gmpg++ -m64 -O3 -fomit-frame-pointer (4.6.3)
71740441.33sclaus2048crypto_dh/sclaus2048/cryptoppg++ -O3 -fomit-frame-pointer
9656601.00surf127epscrypto_dh/surf127eps/mpfqgcc -m64 -march=k8 -O3 -fomit-frame-pointer (4.6.3)
21394721.00surf2113crypto_dh/surf2113/mpfqgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer (4.6.3)

crypto_scalarmult

TimeRelative timePrimitiveImplementationCompiler
7297681.00curve25519crypto_scalarmult/curve25519/amd64-51gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer (4.6.3)
7709441.06curve25519crypto_scalarmult/curve25519/amd64-64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
8268401.13curve25519crypto_scalarmult/curve25519/donna_c64gcc -m64 -O3 -fomit-frame-pointer
12209641.67curve25519crypto_scalarmult/curve25519/donnagcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer
16847402.31curve25519crypto_scalarmult/curve25519/ref10gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer
2452694433.61curve25519crypto_scalarmult/curve25519/refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer
3537401.00kummercrypto_scalarmult/kummer/avxgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer (4.6.3)
11232723.18kummercrypto_scalarmult/kummer/ref5gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
11889123.36kummercrypto_scalarmult/kummer/ref5ugcc -m64 -march=k8 -O3 -fomit-frame-pointer
kummercrypto_scalarmult/kummer/avx2gcc -m64 -O3 -fomit-frame-pointer
kummercrypto_scalarmult/kummer/avx2intgcc -m64 -O3 -fomit-frame-pointer
28195361.00nistp256crypto_scalarmult/nistp256/mj32gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer (4.6.3)