diff options
author | Andy Polyakov <appro@openssl.org> | 2017-07-20 09:48:35 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2017-07-21 14:07:32 +0200 |
commit | 64d92d74985ebb3d0be58a9718f9e080a14a8e7f (patch) | |
tree | 036456c8d139587371300824d273d1c500411d1a /crypto/aes | |
parent | bbb4ceb86eb6ea0300f744443c36fb6e980fff9d (diff) |
x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results.
"Optimize" is in quotes because it's rather a "salvage operation"
for now. Idea is to identify processor capability flags that
drive Knights Landing to suboptimial code paths and mask them.
Two flags were identified, XSAVE and ADCX/ADOX. Former affects
choice of AES-NI code path specific for Silvermont (Knights Landing
is of Silvermont "ancestry"). And 64-bit ADCX/ADOX instructions are
effectively mishandled at decode time. In both cases we are looking
at ~2x improvement.
AVX-512 results cover even Skylake-X :-)
Hardware used for benchmarking courtesy of Atos, experiments run by
Romain Dolbeau <romain.dolbeau@atos.net>. Kudos!
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/aes')
-rw-r--r-- | crypto/aes/asm/aesni-x86_64.pl | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/aes/asm/aesni-x86_64.pl b/crypto/aes/asm/aesni-x86_64.pl index ea5dc14ae5..4c7119b224 100644 --- a/crypto/aes/asm/aesni-x86_64.pl +++ b/crypto/aes/asm/aesni-x86_64.pl @@ -179,6 +179,7 @@ # Haswell 4.44/0.63 0.63 0.73 0.63 0.70 # Skylake 2.62/0.63 0.63 0.63 0.63 # Silvermont 5.75/3.54 3.56 4.12 3.87(*) 4.11 +# Knights L 2.54/0.77 0.78 0.85 - 1.50 # Goldmont 3.82/1.26 1.26 1.29 1.29 1.50 # Bulldozer 5.77/0.70 0.72 0.90 0.70 0.95 # Ryzen 2.71/0.35 0.35 0.44 0.38 0.49 |