Test results for amd64, hertz, crypto_sign/dilithium5
[Page version: 20241013 16:34:51]
Measurements for amd64, hertz, crypto_sign
Test results for amd64, hertz, crypto_sign
Test results for crypto_sign/dilithium5
Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20241011
Operation: crypto_sign
Primitive: dilithium5
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
1018059 | 114957 64 0 | 144249 916 1832 | avx2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
1020960 | 106827 64 0 | 136009 916 1832 | avx2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
1057187 | 78254 64 0 | 103899 908 1832 | avx2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
6281983 | 70157 0 0 | 99257 844 1832 | ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
6793698 | 53021 0 0 | 81276 820 1928 | ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
6995973 | 19339 0 0 | 46107 836 1832 | ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
7034455 | 22461 0 0 | 48820 820 1928 | ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
7168937 | 35876 0 0 | 68026 844 1768 | ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
7251230 | 60304 0 0 | 89209 844 1832 | ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
7884478 | 18863 0 0 | 43611 804 1800 | ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall | 20241012 | 20241011 |
Compiler output
poly.c: poly.c:1055:52: warning: argument 'a' of type 'const uint8_t[652]' (aka 'const unsigned char[652]') with mismatched bound [-Warray-parameter]
poly.c: 1055 | void polyz_unpack(poly * restrict r, const uint8_t a[POLYZ_PACKEDBYTES+12]) {
poly.c: | ^
poly.c: ./poly.h:111:42: note: previously declared as 'const uint8_t[654]' (aka 'const unsigned char[654]') here
poly.c: 111 | void polyz_unpack(poly *r, const uint8_t a[POLYZ_PACKEDBYTES+14]);
poly.c: | ^
poly.c: poly.c:1121:26: warning: argument 'r' of type 'uint8_t[128]' (aka 'unsigned char[128]') with mismatched bound [-Warray-parameter]
poly.c: 1121 | void polyw1_pack(uint8_t r[POLYW1_PACKEDBYTES], const poly * restrict a) {
poly.c: | ^
poly.c: ./poly.h:114:26: note: previously declared as 'uint8_t[136]' (aka 'unsigned char[136]') here
poly.c: 114 | void polyw1_pack(uint8_t r[POLYW1_PACKEDBYTES+8], const poly *a);
poly.c: | ^
poly.c: 2 warnings generated.
rejsample.c: rejsample.c:316:62: warning: argument 'buf' of type 'const uint8_t[168]' (aka 'const unsigned char[168]') with mismatched bound [-Warray-parameter]
rejsample.c: 316 | unsigned int rej_eta_avx(int32_t * restrict r, const uint8_t buf[REJ_UNIFORM_ETA_BUFLEN]) {
rejsample.c: | ^
rejsample.c: ./rejsample.h:25:52: note: previously declared as 'const uint8_t[840]' (aka 'const unsigned char[840]') here
rejsample.c: 25 | unsigned int rej_eta_avx(int32_t *r, const uint8_t buf[REJ_UNIFORM_BUFLEN]);
rejsample.c: | ^
rejsample.c: 1 warning generated.
Number of similar (implementation,compiler) pairs: 3, namely:
Implementation | Compiler |
avx2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
avx2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
avx2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
Compiler output
fips202x4.c: fips202x4.c:22:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'keccakx4_absorb_once' that is compiled without support for 'avx'
fips202x4.c: 22 | s[i] = _mm256_setzero_si256();
fips202x4.c: | ^
fips202x4.c: fips202x4.c:22:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
fips202x4.c: fips202x4.c:24:9: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'keccakx4_absorb_once' that is compiled without support for 'avx'
fips202x4.c: 24 | idx = _mm256_set_epi64x((long long)in3, (long long)in2, (long long)in1, (long long)in0);
fips202x4.c: | ^
fips202x4.c: fips202x4.c:24:9: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
fips202x4.c: fips202x4.c:27:11: error: '__builtin_ia32_gatherq_q256' needs target feature avx2
fips202x4.c: 27 | t = _mm256_i64gather_epi64((long long *)pos, idx, 1);
fips202x4.c: | ^
fips202x4.c: /usr/lib/llvm-19/lib/clang/19/include/avx2intrin.h:5276:13: note: expanded from macro '_mm256_i64gather_epi64'
fips202x4.c: 5276 | ((__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_undefined_si256(), \
fips202x4.c: | ^
fips202x4.c: fips202x4.c:27:11: error: always_inline function '_mm256_undefined_si256' requires target feature 'avx', but would be inlined into function 'keccakx4_absorb_once' that is compiled without support for 'avx'
fips202x4.c: /usr/lib/llvm-19/lib/clang/19/include/avx2intrin.h:5276:49: note: expanded from macro '_mm256_i64gather_epi64'
fips202x4.c: 5276 | ((__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_undefined_si256(), \
fips202x4.c: | ^
fips202x4.c: fips202x4.c:27:11: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
fips202x4.c: /usr/lib/llvm-19/lib/clang/19/include/avx2intrin.h:5276:49: note: expanded from macro '_mm256_i64gather_epi64'
fips202x4.c: 5276 | ((__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_undefined_si256(), \
fips202x4.c: | ^
fips202x4.c: fips202x4.c:27:11: error: always_inline function '_mm256_set1_epi64x' requires target feature 'avx', but would be inlined into function 'keccakx4_absorb_once' that is compiled without support for 'avx'
fips202x4.c: /usr/lib/llvm-19/lib/clang/19/include/avx2intrin.h:5279:49: note: expanded from macro '_mm256_i64gather_epi64'
fips202x4.c: 5279 | (__v4di)_mm256_set1_epi64x(-1), (s)))
fips202x4.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
avx2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
Compiler output
poly.c: poly.c:1055:52: warning: argument 2 of type 'const uint8_t[652]' {aka 'const unsigned char[652]'} with mismatched bound [-Warray-parameter=]
poly.c: 1055 | void polyz_unpack(poly * restrict r, const uint8_t a[POLYZ_PACKEDBYTES+12]) {
poly.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
poly.c: In file included from poly.c:7:
poly.c: poly.h:111:42: note: previously declared as 'const uint8_t[654]' {aka 'const unsigned char[654]'}
poly.c: 111 | void polyz_unpack(poly *r, const uint8_t a[POLYZ_PACKEDBYTES+14]);
poly.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
poly.c: poly.c:1121:26: warning: argument 1 of type 'uint8_t[128]' {aka 'unsigned char[128]'} with mismatched bound [-Warray-parameter=]
poly.c: 1121 | void polyw1_pack(uint8_t r[POLYW1_PACKEDBYTES], const poly * restrict a) {
poly.c: | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
poly.c: poly.h:114:26: note: previously declared as 'uint8_t[136]' {aka 'unsigned char[136]'}
poly.c: 114 | void polyw1_pack(uint8_t r[POLYW1_PACKEDBYTES+8], const poly *a);
poly.c: | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
poly.c: poly.c: In function 'crypto_sign_dilithium5_avx2_constbranchindex_poly_uniform_eta_4x':
poly.c: <command-line>: warning: 'crypto_sign_dilithium5_avx2_constbranchindex_rej_eta_avx' reading 840 bytes from a region of size 768 [-Wstringop-overread]
poly.c: config.h:3:32: note: in expansion of macro 'CRYPTO_NAMESPACE'
poly.c: 3 | #define DILITHIUM_NAMESPACE(s) CRYPTO_NAMESPACE(s)
poly.c: | ^~~~~~~~~~~~~~~~
poly.c: rejsample.h:24:21: note: in expansion of macro 'DILITHIUM_NAMESPACE'
poly.c: 24 | #define rej_eta_avx DILITHIUM_NAMESPACE(rej_eta_avx)
poly.c: | ^~~~~~~~~~~~~~~~~~~
poly.c: poly.c:596:10: note: in expansion of macro 'rej_eta_avx'
poly.c: 596 | ctr0 = rej_eta_avx(a0->coeffs, buf[0].coeffs);
poly.c: | ^~~~~~~~~~~
poly.c: <command-line>: note: referencing argument 2 of type 'const uint8_t[840]' {aka 'const unsigned char[840]'}
poly.c: ...
Number of similar (implementation,compiler) pairs: 3, namely:
Implementation | Compiler |
avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
avx2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
Compiler output
polyvec.c: polyvec.c: In function 'crypto_sign_dilithium5_ref_constbranchindex_polyvecl_uniform_gamma1':
polyvec.c: <command-line>: warning: 'crypto_sign_dilithium5_ref_constbranchindex_poly_uniform_gamma1' reading 48 bytes from a region of size 32 [-Wstringop-overread]
polyvec.c: config.h:3:32: note: in expansion of macro 'CRYPTO_NAMESPACE'
polyvec.c: 3 | #define DILITHIUM_NAMESPACE(s) CRYPTO_NAMESPACE(s)
polyvec.c: | ^~~~~~~~~~~~~~~~
polyvec.c: poly.h:51:29: note: in expansion of macro 'DILITHIUM_NAMESPACE'
polyvec.c: 51 | #define poly_uniform_gamma1 DILITHIUM_NAMESPACE(poly_uniform_gamma1)
polyvec.c: | ^~~~~~~~~~~~~~~~~~~
polyvec.c: polyvec.c:47:5: note: in expansion of macro 'poly_uniform_gamma1'
polyvec.c: 47 | poly_uniform_gamma1(&v->vec[i], seed, L*nonce + i);
polyvec.c: | ^~~~~~~~~~~~~~~~~~~
polyvec.c: <command-line>: note: referencing argument 2 of type 'const uint8_t[48]' {aka 'const unsigned char[48]'}
polyvec.c: config.h:3:32: note: in expansion of macro 'CRYPTO_NAMESPACE'
polyvec.c: 3 | #define DILITHIUM_NAMESPACE(s) CRYPTO_NAMESPACE(s)
polyvec.c: | ^~~~~~~~~~~~~~~~
polyvec.c: poly.h:51:29: note: in expansion of macro 'DILITHIUM_NAMESPACE'
polyvec.c: 51 | #define poly_uniform_gamma1 DILITHIUM_NAMESPACE(poly_uniform_gamma1)
polyvec.c: | ^~~~~~~~~~~~~~~~~~~
polyvec.c: polyvec.c:47:5: note: in expansion of macro 'poly_uniform_gamma1'
polyvec.c: 47 | poly_uniform_gamma1(&v->vec[i], seed, L*nonce + i);
polyvec.c: | ^~~~~~~~~~~~~~~~~~~
polyvec.c: <command-line>: note: in a call to function 'crypto_sign_dilithium5_ref_constbranchindex_poly_uniform_gamma1'
polyvec.c: config.h:3:32: note: in expansion of macro 'CRYPTO_NAMESPACE'
polyvec.c: 3 | #define DILITHIUM_NAMESPACE(s) CRYPTO_NAMESPACE(s)
polyvec.c: | ^~~~~~~~~~~~~~~~
polyvec.c: ...
Number of similar (implementation,compiler) pairs: 3, namely:
Implementation | Compiler |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x10A9CA
at 0x...: core (try-anything.c:61)
by 0x...: salsa20 (try-anything.c:101)
by 0x...: testvector (try-anything.c:124)
by 0x...: myrandom (try-anything.c:132)
by 0x...: test (try.c:124)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
avx2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x10B4A4
at 0x...: salsa20 (try-anything.c:90)
by 0x...: canary (try-anything.c:148)
by 0x...: output_prepare (try-anything.c:178)
by 0x...: test (try.c:126)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
avx2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x10A22E
at 0x...: core (try-anything.c:64)
by 0x...: salsa20 (try-anything.c:101)
by 0x...: testvector (try-anything.c:124)
by 0x...: myrandom (try-anything.c:132)
by 0x...: test (try.c:124)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
avx2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x11353F
at 0x...: _mm512_set1_epi32 (avx512fintrin.h:7325)
by 0x...: crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex_ECRYPT_encrypt_bytes (u16mask.h:114)
by 0x...: crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex (estream-convert-api.h:83)
by 0x...: crypto_rng_chacha20_ref_constbranchindex (rng.c:23)
by 0x...: randombytes_internal (knownrandombytes.c:37)
by 0x...: randombytes (knownrandombytes.c:56)
by 0x...: crypto_sign_dilithium5_ref_constbranchindex_keypair (sign.c:32)
by 0x...: test (try.c:128)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_19.1.1_(1ubuntu1)) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x10A273
at 0x...: core (try-anything.c:64)
by 0x...: salsa20.part.0 (try-anything.c:101)
by 0x...: salsa20 (try-anything.c:129)
by 0x...: testvector (try-anything.c:124)
by 0x...: myrandom (try-anything.c:132)
by 0x...: test (try.c:124)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x10A48B
at 0x...: st32 (try-anything.c:47)
by 0x...: core (try-anything.c:78)
by 0x...: salsa20 (try-anything.c:101)
by 0x...: salsa20 (try-anything.c:81)
by 0x...: testvector (try-anything.c:124)
by 0x...: myrandom (try-anything.c:132)
by 0x...: test (try.c:124)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |
TIMECOP error (can be valgrind bug)
error 111
Process terminating with default action of signal 4 (SIGILL)
Illegal opcode at address 0x10A050
at 0x...: core (try-anything.c:64)
by 0x...: salsa20.part.0 (try-anything.c:101)
by 0x...: salsa20 (try-anything.c:129)
by 0x...: testvector (try-anything.c:124)
by 0x...: myrandom (try-anything.c:132)
by 0x...: test (try.c:124)
by 0x...: main (try-anything.c:345)
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (14.2.0) |