Home GnuPG

SHA512: Add AVX512 implementation

Description

SHA512: Add AVX512 implementation

* LICENSES: Add 'cipher/sha512-avx512-amd64.S'.
* cipher/Makefile.am: Add 'sha512-avx512-amd64.S'.
* cipher/sha512-avx512-amd64.S: New.
* cipher/sha512.c (USE_AVX512): New.
(do_sha512_transform_amd64_ssse3, do_sha512_transform_amd64_avx)
(do_sha512_transform_amd64_avx2): Add ASM_EXTRA_STACK to return value
only if assembly routine returned non-zero value.
[USE_AVX512] (_gcry_sha512_transform_amd64_avx512)
(do_sha512_transform_amd64_avx512): New.
(sha512_init_common) [USE_AVX512]: Use AVX512 implementation if HW
feature supported.
---

Benchmark on Intel Core i3-1115G4 (tigerlake):

Before:

|  nanosecs/byte   mebibytes/sec   cycles/byte  auto Mhz

SHA512 | 1.51 ns/B 631.6 MiB/s 6.17 c/B 4089

After (~29% faster):

|  nanosecs/byte   mebibytes/sec   cycles/byte  auto Mhz

SHA512 | 1.16 ns/B 819.0 MiB/s 4.76 c/B 4090

  • GnuPG-bug-id: T4460
  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Mar 10 2022, 8:36 PM
Parents
rCd820d27a3bce: rijndael-vaes-avx2: perform checksumming inline
Branches
Unknown
Tags
Unknown
Tasks
T4460: libgcrypt performance TODOs