diff options
author | Andrey Matyukov <andrey.matyukov@intel.com> | 2021-06-09 14:38:40 -0700 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-11-11 10:04:05 +0100 |
commit | 0a23b2b53084c41026349aaf8adf2884fcc8468d (patch) | |
tree | e8876844e25163e31acda2fa84e4718b84a43d91 /crypto/modes/build.info | |
parent | af84bf2d52d250d716f4f58834b5603001d45f80 (diff) |
AES-GCM enabled with AVX512 vAES and vPCLMULQDQ.
Vectorized 'stitched' encrypt + ghash implementation of AES-GCM enabled
with AVX512 vAES and vPCLMULQDQ instructions (available starting Intel's
IceLake micro-architecture).
The performance details for representative IceLake Server and Client
platforms are shown below
Performance data:
OpenSSL Speed KBs/Sec
Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz (1Core/1Thread)
Payload in Bytes 16 64 256 1024 8192 16384
AES-128-GCM
Baseline 478708.27 1118296.96 2428092.52 3518199.4 4172355.99 4235762.07
Patched 534613.95 2009345.55 3775588.15 5059517.64 8476794.88 8941541.79
Speedup 1.12 1.80 1.55 1.44 2.03 2.11
AES-256-GCM
Baseline 399237.27 961699.9 2136377.65 2979889.15 3554823.37 3617757.5
Patched 475948.13 1720128.51 3462407.12 4696832.2 7532013.16 7924953.91
Speedup 1.19 1.79 1.62 1.58 2.12 2.19
Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz (1Core/1Thread)
Payload in Bytes 16 64 256 1024 8192 16384
AES-128-GCM
Baseline 259128.54 570756.43 1362554.16 1990654.57 2359128.88 2401671.58
Patched 292139.47 1079320.95 2001974.63 2829007.46 4510318.59 4705314.41
Speedup 1.13 1.89 1.47 1.42 1.91 1.96
AES-256-GCM
Baseline 236000.34 550506.76 1234638.08 1716734.57 2011255.6 2028099.99
Patched 247256.32 919731.34 1773270.43 2553239.55 3953115.14 4111227.29
Speedup 1.05 1.67 1.44 1.49 1.97 2.03
Reviewed-by: TJ O'Dwyer, Marcel Cornu, Pablo de Lara
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17239)
(cherry picked from commit 63b996e752ac698186c38177232280e6515d571b)
Diffstat (limited to 'crypto/modes/build.info')
-rw-r--r-- | crypto/modes/build.info | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/modes/build.info b/crypto/modes/build.info index a66c6357e8..0c0c9c3b80 100644 --- a/crypto/modes/build.info +++ b/crypto/modes/build.info @@ -4,7 +4,7 @@ $MODESASM= IF[{- !$disabled{asm} -}] $MODESASM_x86=ghash-x86.S $MODESDEF_x86=GHASH_ASM - $MODESASM_x86_64=ghash-x86_64.s aesni-gcm-x86_64.s + $MODESASM_x86_64=ghash-x86_64.s aesni-gcm-x86_64.s aes-gcm-avx512.s $MODESDEF_x86_64=GHASH_ASM # ghash-ia64.s doesn't work on VMS @@ -66,6 +66,7 @@ GENERATE[ghash-ia64.s]=asm/ghash-ia64.pl GENERATE[ghash-x86.S]=asm/ghash-x86.pl GENERATE[ghash-x86_64.s]=asm/ghash-x86_64.pl GENERATE[aesni-gcm-x86_64.s]=asm/aesni-gcm-x86_64.pl +GENERATE[aes-gcm-avx512.s]=asm/aes-gcm-avx512.pl GENERATE[ghash-sparcv9.S]=asm/ghash-sparcv9.pl INCLUDE[ghash-sparcv9.o]=.. GENERATE[ghash-alpha.S]=asm/ghash-alpha.pl |