Home GnuPG

Improve performance of SHA-512/ARM/NEON implementation
df629ba53a66Unpublished

Unpublished Commit ยท Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

Improve performance of SHA-512/ARM/NEON implementation

* cipher/sha512-armv7-neon.S (RT01q, RT23q, RT45q, RT67q): New.
(round_0_63, round_64_79): Remove.
(rounds2_0_63, rounds2_64_79): New.
(_gcry_sha512_transform_armv7_neon): Add 'nblks' input; Handle multiple
input blocks; Use new round macros.
* cipher/sha512.c [USE_ARM_NEON_ASM]
(_gcry_sha512_transform_armv7_neon): Add 'num_blks'.
(transform) [USE_ARM_NEON_ASM]: Pass nblks to assembly.

Benchmarks on ARM Cortex-A8:

C-language: 139.1 c/B
Old ARM/NEON: 34.30 c/B
New ARM/NEON: 24.46 c/B

New vs C: 5.68x
New vs Old: 1.40x

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

Details

Provenance
jukiviliAuthored on Dec 17 2013, 2:35 PM
Parents
rCa5c2bbfe0db5: Add AVX and AVX2/BMI implementations for SHA-256
Branches
Unknown
Tags
Unknown

Event Timeline

Jussi Kivilinna <jussi.kivilinna@iki.fi> committed rCdf629ba53a66: Improve performance of SHA-512/ARM/NEON implementation (authored by Jussi Kivilinna <jussi.kivilinna@iki.fi>).Dec 18 2013, 4:00 PM