Implementation notes: amd64, pluton1mn, crypto_hash/groestl512

Computer: pluton1mn
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: groestl512
TimeImplementationCompilerBenchmark dateSUPERCOP version
54810aesni-intricc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
54866avxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
55594avxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
55944avxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
55944aesni-intricc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
56700aesni-intrgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
56980avxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
57596aesni-intrgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
58982avx-intrgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
59864avx-intrgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
60074aesni-intrgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
60242aesni-intrgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
60368avx-intrgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
60396avx-intrgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
67858avx-intricc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
69552avx-intricc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
77994aesnigcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
78680aesnigcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
79184aesnigcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
80010aesnigcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
83062opterongcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
83440opterongcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
85064opterongcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
88060core2duogcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
89698core2duogcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
89712core2duogcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
90622core2duogcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
106820sphlib-adaptedicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
108094sphlibicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
111440sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
114870sphlib-adaptedicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
115304sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
121086sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
124670sphlibicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
125888sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
130606opt64icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
135366opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
135506opt64icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
136780sphlib-smallicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
139818sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
143710opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
148834sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
152516sphlib-smallicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
153510sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
156646opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
157822sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
158634sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
159040sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
162358sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
163352opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
176848sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
256116mmxicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
258062mmxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
259420mmxicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
268072mmxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
268520mmxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
268940opt32icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
272216opt32icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
292194mmxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
386680vperm-intricc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
389606vperm-intricc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
394618vperm-intrgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
395388vperm-intrgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
395850vperm-intrgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
405580vperm-intrgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
432796opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
433888opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
435330opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
439992vpermgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
440244vpermgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
440608vpermgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
441056vpermgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
454510opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
58048232bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
70582432bit-bytesliced-c-smallicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
73280232bit-bytesliced-c-smallicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
101397832bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
106223632bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
138384432bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731

Test failure

Implementation: crypto_hash/groestl512/aesni
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer aesni avx vperm
icc -xMIC-AVX512 -O3 -fomit-frame-pointer aesni avx vperm

Compiler output

Implementation: crypto_hash/groestl512/opt64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c:194:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^~~
hash.c: hash.c:193:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^~~~
hash.c: hash.c:192:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:191:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv opt64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv opt64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv opt64

Compiler output

Implementation: crypto_hash/groestl512/opteron
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:13:0:
hash.c: hash.c: In function 'Transform':
hash.c: PQASM.h:517:3: error: 'asm' operand has impossible constraints
hash.c: asm (
hash.c: ^~~
hash.c: In file included from hash.c:13:0:
hash.c: PQASM.h:2:3: error: 'asm' operand has impossible constraints
hash.c: asm (
hash.c: ^~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv opteron

Compiler output

Implementation: crypto_hash/groestl512/opt64
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
hash.c: hash.c(194): warning #1172: a variable with static storage duration cannot be defined within an inline function
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c:
hash.c: hash.c(193): warning #1172: a variable with static storage duration cannot be defined within an inline function
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c:
hash.c: hash.c(192): warning #1172: a variable with static storage duration cannot be defined within an inline function
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c:
hash.c: hash.c(191): warning #1172: a variable with static storage duration cannot be defined within an inline function
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c:

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer opt64
icc -xMIC-AVX512 -O3 -fomit-frame-pointer opt64

Compiler output

Implementation: crypto_hash/groestl512/core2duo
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
try.c: crypto_hash_groestl512.a(hash.o): In function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `OutputTransformation':
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `crypto_hash_groestl512_core2duo':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer core2duo
icc -xMIC-AVX512 -O3 -fomit-frame-pointer core2duo

Compiler output

Implementation: crypto_hash/groestl512/opteron
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
try.c: crypto_hash_groestl512.a(hash.o): In function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `OutputTransformation':
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: crypto_hash_groestl512.a(hash.o): In function `crypto_hash_groestl512_opteron':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer opteron
icc -xMIC-AVX512 -O3 -fomit-frame-pointer opteron