[openssl/openssl] b1b214: Acceleration of chacha20 on aarch64 by SVE
pauli
noreply at reply.github.openssl.org
Tue May 3 04:39:57 UTC 2022
Branch: refs/heads/master
Home: https://github.openssl.org/openssl/openssl
Commit: b1b2146ded9ce5a84c62f30c6c4a922b449f6c90
https://github.openssl.org/openssl/openssl/commit/b1b2146ded9ce5a84c62f30c6c4a922b449f6c90
Author: Daniel Hu <Daniel.Hu at arm.com>
Date: 2022-05-03 (Tue, 03 May 2022)
Changed paths:
M crypto/arm64cpuid.pl
M crypto/arm_arch.h
M crypto/armcap.c
A crypto/chacha/asm/chacha-armv8-sve.pl
M crypto/chacha/asm/chacha-armv8.pl
M crypto/chacha/build.info
Log Message:
-----------
Acceleration of chacha20 on aarch64 by SVE
This patch accelerates chacha20 on aarch64 when Scalable Vector Extension
(SVE) is supported by CPU. Tested on modern micro-architecture with
256-bit SVE, it has the potential to improve performance up to 20%
The solution takes a hybrid approach. SVE will handle multi-blocks that fit
the SVE vector length, with Neon/Scalar to process any tail data
Test result:
With SVE
type 1024 bytes 8192 bytes 16384 bytes
ChaCha20 1596208.13k 1650010.79k 1653151.06k
Without SVE (by Neon/Scalar)
type 1024 bytes 8192 bytes 16384 bytes
chacha20 1355487.91k 1372678.83k 1372662.44k
The assembly code has been reviewed internally by
ARM engineer Fangming.Fang at arm.com
Signed-off-by: Daniel Hu <Daniel.Hu at arm.com>
Reviewed-by: Tomas Mraz <tomas at openssl.org>
Reviewed-by: Paul Dale <pauli at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17916)
More information about the openssl-commits
mailing list