<div dir="ltr"><div>Afternoon,</div><div><br></div><div>I have been running some speed tests of openssl 1.0.1, 1.0.2 and 1.1.0 versions against various compiler optimisations. Special interest was given to the more commonly used primitives, rsa's, aes's etc.</div><div><br></div><div>I noticed that SHA1's have some significant performance improvements. However the multiplier by which it improved by diminishes as you approach 8k/16k block sizes.</div><div><br></div><div>Any ideas why this tails off?</div><div><br></div><div>I noticed no other 'statistically significant' change in other primitives, although freely admit i have not exhaustively checked.</div><div><br></div><div>openssl-1.0.2g-native-speed.txt:Doing sha1 for 3s on 16 size blocks: 9225205 sha1's in 3.00s</div><div>openssl-1.0.2g-native-speed.txt:Doing sha1 for 3s on 64 size blocks: 7275849 sha1's in 3.00s</div><div>openssl-1.0.2g-native-speed.txt:Doing sha1 for 3s on 256 size blocks: 4821329 sha1's in 3.00s</div><div>openssl-1.0.2g-native-speed.txt:Doing sha1 for 3s on 1024 size blocks: 2059373 sha1's in 3.00s</div><div>openssl-1.0.2g-native-speed.txt:Doing sha1 for 3s on 8192 size blocks: 327032 sha1's in 3.00s</div><div>openssl-1.1.0-pre4-native-speed.txt:Doing sha1 for 3s on 16 size blocks: 23362218 sha1's in 3.00s</div><div>openssl-1.1.0-pre4-native-speed.txt:Doing sha1 for 3s on 64 size blocks: 14131714 sha1's in 2.99s</div><div>openssl-1.1.0-pre4-native-speed.txt:Doing sha1 for 3s on 256 size blocks: 7166139 sha1's in 3.00s</div><div>openssl-1.1.0-pre4-native-speed.txt:Doing sha1 for 3s on 1024 size blocks: 2413233 sha1's in 3.00s</div><div>openssl-1.1.0-pre4-native-speed.txt:Doing sha1 for 3s on 8192 size blocks: 335803 sha1's in 3.00s</div><div>openssl-1.1.0-pre4-native-speed.txt:Doing sha1 for 3s on 16384 size blocks: 169210 sha1's in 3.00s</div><div><br></div><div>I assume the positive change was part of:</div><div>  *) Extensive assembler packs updates, most notably:</div><div><br></div><div>- x86[_64]:     AES-NI, PCLMULQDQ, RDRAND support;</div><div>- x86[_64]:     SSSE3 support (SHA1, vector-permutation AES);</div><div>- x86_64:       bit-sliced AES implementation;</div><div>- ARM:          NEON support, contemporary platforms optimizations;</div><div>- s390x:        z196 support;</div><div>- *:            GHASH and GF(2^m) multiplication implementations;</div><div><br></div><div>     [Andy Polyakov]</div><div><br></div><div>Has anyone else completed any similar tests?</div><div><br></div><div>Thank you,</div><div>CraigT</div><div><br></div><div><br></div></div>