diff options
author | Paul Duncan <pabs@pablotron.org> | 2024-05-26 17:36:43 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2024-05-26 17:36:43 -0400 |
commit | 4966bb76000bd53e9c7712b17ff951ee931381d6 (patch) | |
tree | 329f903422b22008d27b1cce75b06ef4dc4d4246 /sha3.h | |
parent | 7ff09dc9e75b38c6e4eb3157218b43fc92323d5f (diff) | |
download | sha3-4966bb76000bd53e9c7712b17ff951ee931381d6.tar.bz2 sha3-4966bb76000bd53e9c7712b17ff951ee931381d6.zip |
sha3.c: permute_n_avx2(): pi: remove gather (better, but still slower than scalar)
bench results
-------------
scalar (gcc):
> make clean all BACKEND=1 CC=gcc && ./bench
info: cpucycles: version=20240318 implementation=amd64-pmc persecond=4800000000
info: backend=scalar num_trials=2000 src_lens=64,256,1024,4096,16384 dst_lens=32
function,dst_len,64,256,1024,4096,16384
sha3_224,28,19.7,10.1,10.0,9.0,8.8
sha3_256,32,20.0,10.1,9.9,9.6,9.3
sha3_384,48,20.0,14.9,12.3,12.2,12.0
sha3_512,64,20.0,19.5,18.3,17.2,17.1
shake128,32,20.2,10.1,8.7,7.8,7.6
shake256,32,20.3,10.1,10.0,9.6,9.3
scalar (clang):
> make clean all BACKEND=1 CC=clang && ./bench
info: cpucycles: version=20240318 implementation=amd64-pmc persecond=4800000000
info: backend=scalar num_trials=2000 src_lens=64,256,1024,4096,16384 dst_lens=32
function,dst_len,64,256,1024,4096,16384
sha3_224,28,19.7,9.9,9.8,8.8,8.7
sha3_256,32,19.6,9.8,9.8,9.4,9.2
sha3_384,48,19.8,14.6,12.1,12.0,11.8
sha3_512,64,19.6,19.3,17.9,16.9,16.9
shake128,32,19.7,9.9,8.6,7.7,7.5
shake256,32,19.7,9.9,9.8,9.4,9.2
avx2 (gcc):
> make clean all BACKEND=6 CC=gcc && ./bench
info: cpucycles: version=20240318 implementation=amd64-pmc persecond=4800000000
info: backend=avx2 num_trials=2000 src_lens=64,256,1024,4096,16384 dst_lens=32
function,dst_len,64,256,1024,4096,16384
sha3_224,28,29.7,14.9,15.0,13.6,13.4
sha3_256,32,30.0,14.9,15.0,14.6,14.2
sha3_384,48,29.8,22.4,18.7,18.7,18.5
sha3_512,64,29.8,29.8,28.0,26.6,26.6
shake128,32,29.9,15.0,13.2,11.8,11.6
shake256,32,30.0,14.9,15.0,14.6,14.2
avx2 (clang):
> make clean all BACKEND=6 CC=clang && ./bench
info: cpucycles: version=20240318 implementation=amd64-pmc persecond=4800000000
info: backend=avx2 num_trials=2000 src_lens=64,256,1024,4096,16384 dst_lens=32
function,dst_len,64,256,1024,4096,16384
sha3_224,28,23.8,11.6,11.3,10.3,10.1
sha3_256,32,23.7,11.6,11.3,10.9,10.7
sha3_384,48,23.8,17.2,14.1,14.1,13.9
sha3_512,64,23.8,22.8,21.1,20.0,20.0
shake128,32,22.8,11.2,9.8,8.8,8.6
shake256,32,22.9,11.2,11.1,10.8,10.5
chi appears to be the culprit now; look at replacing mask/and/or with blend
Diffstat (limited to 'sha3.h')
0 files changed, 0 insertions, 0 deletions