Implementation notes: amd64, cannon, crypto_dh

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
CPU cycles/second: 2200000000...2200000000 (amd64cpuinfo)
SUPERCOP version: 20190110
Benchmark dates: 20190129...20190208

crypto_dh

TimeRelative timePrimitiveImplementationCompiler
51853541.00clauscrypto_dh/claus/cryptoppclang++ -march=native -O3 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
53912221.04clauscrypto_dh/claus/gmpclang++ -funroll-loops -march=native -O2
66089761.27clauscrypto_dh/claus/ntlg++ -funroll-loops -march=native -O2
clauscrypto_dh/claus/opensslgcc -march=native -O3
3678741.00curve2251crypto_dh/curve2251/relic/amd64-avxgcc -funroll-loops -march=native -O3 (8.2.1 20181127)
3709041.01curve2251crypto_dh/curve2251/relic/amd64-clmulgcc -march=native -O3
10510322.86curve2251crypto_dh/curve2251/relic/amd64-ssse3gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
25274226.87curve2251crypto_dh/curve2251/mpfqgcc -march=native -Os
6096601.00curve25519crypto_dh/curve25519/refclang -funroll-loops -march=native -Os (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
8395701.38curve25519crypto_dh/curve25519/mpfqgcc -funroll-loops -march=native -O2
4353401.00ecfp256ecrypto_dh/ecfp256e/v01/w8s8gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
4362821.00ecfp256ecrypto_dh/ecfp256e/v01/w8s4gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
4516561.04ecfp256ecrypto_dh/ecfp256e/v01/w8s2gcc -march=native -O3
4610461.06ecfp256ecrypto_dh/ecfp256e/v01/w8s1gcc -march=native -O3
7139141.64ecfp256ecrypto_dh/ecfp256e/v01/vargcc -march=native -O3
5211921.00ecfp256hcrypto_dh/ecfp256h/v01/w8s8gcc -march=native -O2 (8.2.1 20181127)
5250601.01ecfp256hcrypto_dh/ecfp256h/v01/w8s4gcc -funroll-loops -march=native -O3
5350721.03ecfp256hcrypto_dh/ecfp256h/v01/w8s2gcc -march=native -O2 (8.2.1 20181127)
5534721.06ecfp256hcrypto_dh/ecfp256h/v01/w8s1gcc -march=native -O3
8820861.69ecfp256hcrypto_dh/ecfp256h/v01/vargcc -march=native -O3
7539321.00ecfp256icrypto_dh/ecfp256i/v01/vargcc -funroll-loops -march=native -O3 (8.2.1 20181127)
ecfp256icrypto_dh/ecfp256i/v01/w8s1gcc -march=native -O3
ecfp256icrypto_dh/ecfp256i/v01/w8s2gcc -march=native -O3
ecfp256icrypto_dh/ecfp256i/v01/w8s4gcc -march=native -O3
ecfp256icrypto_dh/ecfp256i/v01/w8s8gcc -march=native -O3
4646241.00ecfp256qcrypto_dh/ecfp256q/v01/w8s4gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
4653461.00ecfp256qcrypto_dh/ecfp256q/v01/w8s8gcc -march=native -O2
4778581.03ecfp256qcrypto_dh/ecfp256q/v01/w8s2gcc -march=native -O3
4905441.06ecfp256qcrypto_dh/ecfp256q/v01/w8s1gcc -march=native -O3
7469081.61ecfp256qcrypto_dh/ecfp256q/v01/vargcc -funroll-loops -march=native -O3 (8.2.1 20181127)
5616081.00ecfp256scrypto_dh/ecfp256s/v01/w8s8gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
5727441.02ecfp256scrypto_dh/ecfp256s/v01/w8s4gcc -march=native -O2
5828481.04ecfp256scrypto_dh/ecfp256s/v01/w8s2gcc -march=native -O2
5968801.06ecfp256scrypto_dh/ecfp256s/v01/w8s1gcc -march=native -O3
9623341.71ecfp256scrypto_dh/ecfp256s/v01/vargcc -funroll-loops -march=native -O3 (8.2.1 20181127)
12239861.00ed448goldilockscrypto_dh/ed448goldilocks/amd64 (2014-10-12)clang -march=native -O2 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
14687961.20ed448goldilockscrypto_dh/ed448goldilocks/64gcc -funroll-loops -march=native -O2
30878962.52ed448goldilockscrypto_dh/ed448goldilocks/arm32clang -funroll-loops -march=native -O2
38010603.11ed448goldilockscrypto_dh/ed448goldilocks/32gcc -funroll-loops -march=native -O2
33349061.00ed521gscrypto_dh/ed521gs/ref (1.0)clang -funroll-loops -march=native -O2 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
gls1271crypto_dh/gls1271/ref4gcc -march=native -O3
1420701.00gls254crypto_dh/gls254/optclang -march=native -O2 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
1660581.17gls254crypto_dh/gls254/refclang -funroll-loops -march=native -O3
2125721.50gls254crypto_dh/gls254/protgcc -march=native -O3
1521181.00gls254protcrypto_dh/gls254prot/optclang -funroll-loops -march=native -O2 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
2124761.40gls254protcrypto_dh/gls254prot/protgcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/vargcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/w8s01gcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/w8s02gcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/w8s04gcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/w8s08gcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/w8s16gcc -march=native -O3
hecfp127icrypto_dh/hecfp127i/v02/w8s32gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/varglv4gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/w8s01glv4gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/w8s02glv4gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/w8s04glv4gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/w8s08glv4gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/w8s16glv4gcc -march=native -O3
hecfp128bkcrypto_dh/hecfp128bk/v02/w8s32glv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/varglv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s01glv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s02glv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s04glv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s08glv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s16glv4gcc -march=native -O3
hecfp128fktcrypto_dh/hecfp128fkt/v02/w8s32glv4gcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/vargcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/w8s01gcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/w8s02gcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/w8s04gcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/w8s08gcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/w8s16gcc -march=native -O3
hecfp128icrypto_dh/hecfp128i/v02/w8s32gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/varglv8gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s01glv8gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s02glv8gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s04glv8gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s08glv8gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s16glv8gcc -march=native -O3
hecfp61e2bkcrypto_dh/hecfp61e2bk/v01/w8s32glv8gcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/vargcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s01gcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s02gcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s04gcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s08gcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s16gcc -march=native -O3
hecfp61e2icrypto_dh/hecfp61e2i/v01/w8s32gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/varglv8gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s01glv8gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s02glv8gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s04glv8gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s08glv8gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s16glv8gcc -march=native -O3
hecfp64e2bkcrypto_dh/hecfp64e2bk/v01/w8s32glv8gcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/vargcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s01gcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s02gcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s04gcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s08gcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s16gcc -march=native -O3
hecfp64e2icrypto_dh/hecfp64e2i/v01/w8s32gcc -march=native -O3
hectorcrypto_dh/hector/refgcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/vargcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w4s01gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w4s02gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w4s04gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w4s08gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w4s16gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w4s32gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w8s01gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w8s02gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w8s04gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w8s08gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w8s16gcc -march=native -O3
jacfp127icrypto_dh/jacfp127i/v01/w8s32gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/varglv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w4s01glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w4s02glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w4s04glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w4s08glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w4s16glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w4s32glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w8s01glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w8s02glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w8s04glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w8s08glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w8s16glv4gcc -march=native -O3
jacfp128bkcrypto_dh/jacfp128bk/v01/w8s32glv4gcc -march=native -O3
2815601.00k277moncrypto_dh/k277mon/refclang -march=native -O3 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
1812461.00k277taacrypto_dh/k277taa/refclang -funroll-loops -march=native -O2 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
k298crypto_dh/k298/refgcc -march=native -O3
kumfp127gcrypto_dh/kumfp127g/v02/vargcc -march=native -O3
kumfp128gcrypto_dh/kumfp128g/v02/vargcc -march=native -O3
kumfp61e2gcrypto_dh/kumfp61e2g/v01/vargcc -march=native -O3
kumfp64e2gcrypto_dh/kumfp64e2g/v01/vargcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/vargcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s01gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s02gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s04gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s08gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s16gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w4s32gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s01gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s02gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s04gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s08gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s16gcc -march=native -O3
kumjacfp127gcrypto_dh/kumjacfp127g/v01/w8s32gcc -march=native -O3
1923521.00kummercrypto_dh/kummer/refclang -funroll-loops -march=native -O3 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
38545921.00nist521gscrypto_dh/nist521gs/ref (1.0)gcc -march=native -Os (8.2.1 20181127)
16241221.00nistp256crypto_dh/nistp256/wbl (0.0.1)clang -funroll-loops -march=native -O3 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
26724901.65nistp256crypto_dh/nistp256/refclang -funroll-loops -march=native -O2
prjfp127icrypto_dh/prjfp127i/v01/vargcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w4s01gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w4s02gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w4s04gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w4s08gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w4s16gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w4s32gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w8s01gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w8s02gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w8s04gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w8s08gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w8s16gcc -march=native -O3
prjfp127icrypto_dh/prjfp127i/v01/w8s32gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/varglv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w4s01glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w4s02glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w4s04glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w4s08glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w4s16glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w4s32glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w8s01glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w8s02glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w8s04glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w8s08glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w8s16glv4gcc -march=native -O3
prjfp128bkcrypto_dh/prjfp128bk/v01/w8s32glv4gcc -march=native -O3
9112861.00sclaus1024crypto_dh/sclaus1024/gmpclang++ -march=native -O3 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
9426881.03sclaus1024crypto_dh/sclaus1024/cryptoppg++ -march=native -O3
44947141.00sclaus2048crypto_dh/sclaus2048/gmpclang++ -march=native -O3 (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
46760141.04sclaus2048crypto_dh/sclaus2048/cryptoppg++ -funroll-loops -march=native -O2
7381341.00surf127epscrypto_dh/surf127eps/mpfqclang -funroll-loops -march=native -Os (4.2.1 Compatible Clang 7.0.1 (tags/RELEASE 701/final))
20223921.00surf2113crypto_dh/surf2113/mpfqgcc -funroll-loops -march=native -Os (8.2.1 20181127)

crypto_scalarmult

TimeRelative timePrimitiveImplementationCompiler
6085481.00curve25519crypto_scalarmult/curve25519/donna_c64 (2.0)gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
10175221.67curve25519crypto_scalarmult/curve25519/donnagcc -march=native -O3
12569042.07curve25519crypto_scalarmult/curve25519/ref10gcc -funroll-loops -march=native -O3 (8.2.1 20181127)
1534708625.22curve25519crypto_scalarmult/curve25519/refgcc -funroll-loops -march=native -O3 (8.2.1 20181127)
curve25519crypto_scalarmult/curve25519/amd64-51gcc -march=native -O3
curve25519crypto_scalarmult/curve25519/amd64-64gcc -march=native -O3
curve25519crypto_scalarmult/curve25519/sandy2xgcc -march=native -O3
1921221.00kummercrypto_scalarmult/kummer/avx2intgcc -march=native -O3 (8.2.1 20181127)
8515644.43kummercrypto_scalarmult/kummer/ref5uclang -march=native -O3
8616744.49kummercrypto_scalarmult/kummer/ref5gcc -funroll-loops -march=native -O2
kummercrypto_scalarmult/kummer/avxgcc -march=native -O3 (8.2.1 20181127)
kummercrypto_scalarmult/kummer/avx2gcc -march=native -O3 (8.2.1 20181127)
26750721.00nistp256crypto_scalarmult/nistp256/mj32gcc -funroll-loops -march=native -O2 (8.2.1 20181127)