Implementation notes: amd64, genji262, crypto_dh

Computer: genji262
Architecture: amd64
CPU ID: AuthenticAMD-00800f12-178bfbff
CPU cycles/second: 2200000000...2200000000 (amd64cpuinfo)
SUPERCOP version: 20171020
Benchmark dates: 20171108...20171109

crypto_dh

TimeRelative timePrimitiveImplementationCompiler
36862321.00clauscrypto_dh/claus/opensslicc -xCORE-AVX-I -O3 -fomit-frame-pointer (18.0.20170811)
38101141.03clauscrypto_dh/claus/gmpicpc -xCORE-AVX-I -O3 -fomit-frame-pointer
42799681.16clauscrypto_dh/claus/cryptoppg++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer
46257641.25clauscrypto_dh/claus/ntlg++ -fno-schedule-insns -O -fomit-frame-pointer
2756601.00curve2251crypto_dh/curve2251/relic/amd64-avxgcc -fno-schedule-insns -O2 -fomit-frame-pointer
2778821.01curve2251crypto_dh/curve2251/relic/amd64-clmulgcc -m64 -march=corei7 -O2 -fomit-frame-pointer
8015262.91curve2251crypto_dh/curve2251/relic/amd64-ssse3gcc -m64 -march=corei7 -O3 -fomit-frame-pointer
20212067.33curve2251crypto_dh/curve2251/mpfqgcc -march=barcelona -O3 -fomit-frame-pointer
4148981.00curve25519crypto_dh/curve25519/refgcc -m64 -O2 -fomit-frame-pointer
6225561.50curve25519crypto_dh/curve25519/mpfqgcc -m64 -march=barcelona -O2 -fomit-frame-pointer
2900921.00ecfp256ecrypto_dh/ecfp256e/v01/w8s8gcc -march=k8 -O3 -fomit-frame-pointer
2929521.01ecfp256ecrypto_dh/ecfp256e/v01/w8s4gcc -march=k8 -O3 -fomit-frame-pointer
2986281.03ecfp256ecrypto_dh/ecfp256e/v01/w8s2gcc -m64 -march=k8 -O3 -fomit-frame-pointer
3109481.07ecfp256ecrypto_dh/ecfp256e/v01/w8s1gcc -march=k8 -O3 -fomit-frame-pointer
4798641.65ecfp256ecrypto_dh/ecfp256e/v01/vargcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer
3508341.00ecfp256hcrypto_dh/ecfp256h/v01/w8s8gcc -m64 -march=k8 -O3 -fomit-frame-pointer
3541561.01ecfp256hcrypto_dh/ecfp256h/v01/w8s4gcc -march=k8 -O3 -fomit-frame-pointer
3601401.03ecfp256hcrypto_dh/ecfp256h/v01/w8s2gcc -m64 -march=k8 -O3 -fomit-frame-pointer
3733621.06ecfp256hcrypto_dh/ecfp256h/v01/w8s1gcc -m64 -march=k8 -O3 -fomit-frame-pointer
5926141.69ecfp256hcrypto_dh/ecfp256h/v01/vargcc -m64 -march=k8 -O3 -fomit-frame-pointer
4975301.00ecfp256icrypto_dh/ecfp256i/v01/vargcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
ecfp256icrypto_dh/ecfp256i/v01/w8s1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
ecfp256icrypto_dh/ecfp256i/v01/w8s2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
ecfp256icrypto_dh/ecfp256i/v01/w8s4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
ecfp256icrypto_dh/ecfp256i/v01/w8s8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
3115861.00ecfp256qcrypto_dh/ecfp256q/v01/w8s8gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer
3138301.01ecfp256qcrypto_dh/ecfp256q/v01/w8s4gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer
3197261.03ecfp256qcrypto_dh/ecfp256q/v01/w8s2gcc -march=k8 -O3 -fomit-frame-pointer
3314301.06ecfp256qcrypto_dh/ecfp256q/v01/w8s1gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer
5018421.61ecfp256qcrypto_dh/ecfp256q/v01/vargcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer
3808641.00ecfp256scrypto_dh/ecfp256s/v01/w8s8gcc -march=k8 -O3 -fomit-frame-pointer
3839001.01ecfp256scrypto_dh/ecfp256s/v01/w8s4gcc -march=k8 -O3 -fomit-frame-pointer
3903241.02ecfp256scrypto_dh/ecfp256s/v01/w8s2gcc -march=k8 -O3 -fomit-frame-pointer
4050201.06ecfp256scrypto_dh/ecfp256s/v01/w8s1gcc -m64 -march=core2 -O3 -fomit-frame-pointer
6490221.70ecfp256scrypto_dh/ecfp256s/v01/vargcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer
11152901.00ed448goldilockscrypto_dh/ed448goldilocks/amd64 (2014-10-12)icc (18.0.20170811)
12322861.10ed448goldilockscrypto_dh/ed448goldilocks/64icc -xCORE-AVX-I -O2 -fomit-frame-pointer
26057902.34ed448goldilockscrypto_dh/ed448goldilocks/32gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer
ed448goldilockscrypto_dh/ed448goldilocks/arm32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
27920861.00ed521gscrypto_dh/ed521gs/ref (1.0)gcc -march=barcelona -Os -fomit-frame-pointer
3254461.00gls1271crypto_dh/gls1271/ref4gcc -O3 -fomit-frame-pointer
1233101.00gls254crypto_dh/gls254/optgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer
1261041.02gls254crypto_dh/gls254/reficc -xCORE-AVX2 -O2 -fomit-frame-pointer (18.0.20170811)
1593021.29gls254crypto_dh/gls254/proticc -xCORE-AVX2 -O3 -fomit-frame-pointer
1303281.00gls254protcrypto_dh/gls254prot/opticc -xCORE-AVX-I -O2 -fomit-frame-pointer (18.0.20170811)
1596101.22gls254protcrypto_dh/gls254prot/proticc -xCORE-AVX-I -O2 -fomit-frame-pointer (18.0.20170811)
3441681.00hecfp127icrypto_dh/hecfp127i/v02/w8s16cc
3461261.01hecfp127icrypto_dh/hecfp127i/v02/w8s08cc
3479961.01hecfp127icrypto_dh/hecfp127i/v02/w8s04cc
3548601.03hecfp127icrypto_dh/hecfp127i/v02/w8s02cc
3800061.10hecfp127icrypto_dh/hecfp127i/v02/w8s01cc
4135561.20hecfp127icrypto_dh/hecfp127i/v02/w8s32cc
7097862.06hecfp127icrypto_dh/hecfp127i/v02/varcc
2616461.00hecfp128bkcrypto_dh/hecfp128bk/v02/w8s08glv4cc
2625041.00hecfp128bkcrypto_dh/hecfp128bk/v02/w8s16glv4cc
2673221.02hecfp128bkcrypto_dh/hecfp128bk/v02/w8s04glv4cc
2750661.05hecfp128bkcrypto_dh/hecfp128bk/v02/w8s02glv4cc
2946461.13hecfp128bkcrypto_dh/hecfp128bk/v02/w8s01glv4cc
3112121.19hecfp128bkcrypto_dh/hecfp128bk/v02/w8s32glv4cc
4027101.54hecfp128bkcrypto_dh/hecfp128bk/v02/varglv4cc
2599081.00hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s16glv4cc
2601281.00hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s32glv4cc
2621521.01hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s08glv4cc
2663981.02hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s04glv4cc
2940741.13hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s01glv4cc
3267221.26hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s02glv4cc
4025341.55hecfp128fktcrypto_dh/hecfp128fkt/v02/varglv4cc
4642441.00hecfp128icrypto_dh/hecfp128i/v02/w8s32cc
4645081.00hecfp128icrypto_dh/hecfp128i/v02/w8s16cc
4686221.01hecfp128icrypto_dh/hecfp128i/v02/w8s08cc
4824381.04hecfp128icrypto_dh/hecfp128i/v02/w8s02cc
5006981.08hecfp128icrypto_dh/hecfp128i/v02/w8s01cc
5657521.22hecfp128icrypto_dh/hecfp128i/v02/w8s04cc
8169261.76hecfp128icrypto_dh/hecfp128i/v02/varcc
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/varglv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s01glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s02glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s04glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s08glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s16glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s32glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/vargcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s08gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s16gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/varglv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s01glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s02glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s04glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s08glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s16glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s32glv8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/vargcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s08gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s16gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
57977921.00hectorcrypto_dh/hector/refcc
2763201.00jacfp127icrypto_dh/jacfp127i/v01/w8s32cc
2772441.00jacfp127icrypto_dh/jacfp127i/v01/w8s16cc
2778821.01jacfp127icrypto_dh/jacfp127i/v01/w8s08cc
2814681.02jacfp127icrypto_dh/jacfp127i/v01/w8s04cc
2991121.08jacfp127icrypto_dh/jacfp127i/v01/w4s32cc
2999701.09jacfp127icrypto_dh/jacfp127i/v01/w8s01cc
3007621.09jacfp127icrypto_dh/jacfp127i/v01/w4s16cc
3055141.11jacfp127icrypto_dh/jacfp127i/v01/w4s08cc
3203641.16jacfp127icrypto_dh/jacfp127i/v01/w4s02cc
3443221.25jacfp127icrypto_dh/jacfp127i/v01/w4s01cc
3458841.25jacfp127icrypto_dh/jacfp127i/v01/w8s02cc
3747921.36jacfp127icrypto_dh/jacfp127i/v01/w4s04cc
4809861.74jacfp127icrypto_dh/jacfp127i/v01/varcc
2138841.00jacfp128bkcrypto_dh/jacfp128bk/v01/w8s32glv4cc
2154241.01jacfp128bkcrypto_dh/jacfp128bk/v01/w8s16glv4cc
2167881.01jacfp128bkcrypto_dh/jacfp128bk/v01/w8s08glv4cc
2198021.03jacfp128bkcrypto_dh/jacfp128bk/v01/w8s04glv4cc
2265341.06jacfp128bkcrypto_dh/jacfp128bk/v01/w8s02glv4cc
2411201.13jacfp128bkcrypto_dh/jacfp128bk/v01/w8s01glv4cc
2434301.14jacfp128bkcrypto_dh/jacfp128bk/v01/w4s32glv4cc
2455641.15jacfp128bkcrypto_dh/jacfp128bk/v01/w4s16glv4cc
2489081.16jacfp128bkcrypto_dh/jacfp128bk/v01/w4s08glv4cc
2556181.20jacfp128bkcrypto_dh/jacfp128bk/v01/w4s04glv4cc
2706881.27jacfp128bkcrypto_dh/jacfp128bk/v01/w4s02glv4cc
2982321.39jacfp128bkcrypto_dh/jacfp128bk/v01/w4s01glv4cc
3296041.54jacfp128bkcrypto_dh/jacfp128bk/v01/varglv4cc
2368521.00k277moncrypto_dh/k277mon/reficc -xCORE-AVX2 -O2 -fomit-frame-pointer (18.0.20170811)
1616121.00k277taacrypto_dh/k277taa/reficc -xCORE-AVX2 -O2 -fomit-frame-pointer (18.0.20170811)
1813241.00k298crypto_dh/k298/reficc -xCORE-AVX-I -O3 -fomit-frame-pointer (18.0.20170811)
2877381.00kumfp127gcrypto_dh/kumfp127g/v02/varcc
4324321.00kumfp128gcrypto_dh/kumfp128g/v02/varcc
kumfp61e2gcrypto_dh/kumfp61e2g/v01/vargcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
kumfp64e2gcrypto_dh/kumfp64e2g/v01/vargcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
1842501.00kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s32cc
1848661.00kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s16cc
1865381.01kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s08cc
1894641.03kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s04cc
1947001.06kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s02cc
2063381.12kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s01cc
2068881.12kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s32cc
2084941.13kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s16cc
2116181.15kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s08cc
2171841.18kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s04cc
2283601.24kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s02cc
2522301.37kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s01cc
3870242.10kumjacfp127gcrypto_dh/kumjacfp127g/v01/varcc
3036661.00kummercrypto_dh/kummer/refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer
32939941.00nist521gscrypto_dh/nist521gs/ref (1.0)gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
13060081.00nistp256crypto_dh/nistp256/wbl (0.0.1)icc -xCORE-AVX2 -O3 -fomit-frame-pointer (18.0.20170811)
17203561.32nistp256crypto_dh/nistp256/refgcc -m64 -march=k8 -O2 -fomit-frame-pointer
3364461.00prjfp127icrypto_dh/prjfp127i/v01/w8s16cc
3381401.01prjfp127icrypto_dh/prjfp127i/v01/w8s32cc
3388881.01prjfp127icrypto_dh/prjfp127i/v01/w8s08cc
3420781.02prjfp127icrypto_dh/prjfp127i/v01/w8s04cc
3489641.04prjfp127icrypto_dh/prjfp127i/v01/w8s02cc
3633301.08prjfp127icrypto_dh/prjfp127i/v01/w8s01cc
3634181.08prjfp127icrypto_dh/prjfp127i/v01/w4s32cc
3652661.09prjfp127icrypto_dh/prjfp127i/v01/w4s16cc
3688081.10prjfp127icrypto_dh/prjfp127i/v01/w4s08cc
3767501.12prjfp127icrypto_dh/prjfp127i/v01/w4s04cc
3900161.16prjfp127icrypto_dh/prjfp127i/v01/w4s02cc
4179341.24prjfp127icrypto_dh/prjfp127i/v01/w4s01cc
5876641.75prjfp127icrypto_dh/prjfp127i/v01/varcc
2562341.00prjfp128bkcrypto_dh/prjfp128bk/v01/w8s16glv4cc
2581921.01prjfp128bkcrypto_dh/prjfp128bk/v01/w8s08glv4cc
2621521.02prjfp128bkcrypto_dh/prjfp128bk/v01/w8s04glv4cc
2712381.06prjfp128bkcrypto_dh/prjfp128bk/v01/w8s02glv4cc
2884201.13prjfp128bkcrypto_dh/prjfp128bk/v01/w8s01glv4cc
2901581.13prjfp128bkcrypto_dh/prjfp128bk/v01/w4s32glv4cc
2947781.15prjfp128bkcrypto_dh/prjfp128bk/v01/w4s16glv4cc
2990901.17prjfp128bkcrypto_dh/prjfp128bk/v01/w4s08glv4cc
3064821.20prjfp128bkcrypto_dh/prjfp128bk/v01/w4s04glv4cc
3098261.21prjfp128bkcrypto_dh/prjfp128bk/v01/w8s32glv4cc
3252481.27prjfp128bkcrypto_dh/prjfp128bk/v01/w4s02glv4cc
3606241.41prjfp128bkcrypto_dh/prjfp128bk/v01/w4s01glv4cc
3931181.53prjfp128bkcrypto_dh/prjfp128bk/v01/varglv4cc
6439841.00sclaus1024crypto_dh/sclaus1024/gmpg++ -m64 -march=corei7 -O3 -fomit-frame-pointer
7674921.19sclaus1024crypto_dh/sclaus1024/cryptoppg++ -m64 -march=core-avx-i -O -fomit-frame-pointer
32951821.00sclaus2048crypto_dh/sclaus2048/gmpg++ -m64 -march=core2 -Os -fomit-frame-pointer
37816901.15sclaus2048crypto_dh/sclaus2048/cryptoppg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
5234021.00surf127epscrypto_dh/surf127eps/mpfqgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
14161401.00surf2113crypto_dh/surf2113/mpfqgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv

crypto_scalarmult

TimeRelative timePrimitiveImplementationCompiler
4133361.00curve25519crypto_scalarmult/curve25519/sandy2x (1.0)gcc -m64 -march=core2 -O3 -fomit-frame-pointer
4284941.04curve25519crypto_scalarmult/curve25519/amd64-64gcc -march=nocona -O3 -fomit-frame-pointer
5069901.23curve25519crypto_scalarmult/curve25519/donna_c64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer
5295621.28curve25519crypto_scalarmult/curve25519/amd64-51gcc -march=k8 -O3 -fomit-frame-pointer
7438201.80curve25519crypto_scalarmult/curve25519/donnagcc -m64 -march=nocona -O2 -fomit-frame-pointer
9718282.35curve25519crypto_scalarmult/curve25519/ref10gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer
1327810032.12curve25519crypto_scalarmult/curve25519/refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer
2778601.00kummercrypto_scalarmult/kummer/avx2intgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer
3036221.09kummercrypto_scalarmult/kummer/avx2icc -xCORE-AVX-I -O2 -fomit-frame-pointer (18.0.20170811)
3217281.16kummercrypto_scalarmult/kummer/avxicc -xCORE-AVX2 -O2 -fomit-frame-pointer
6480982.33kummercrypto_scalarmult/kummer/ref5uicc -xCORE-AVX-I -O3 -fomit-frame-pointer
6629482.39kummercrypto_scalarmult/kummer/ref5icc -xCORE-AVX-I -O3 -fomit-frame-pointer
17192121.00nistp256crypto_scalarmult/nistp256/mj32icc -xCORE-AVX-I -O2 -fomit-frame-pointer (18.0.20170811)