]> git.baikalelectronics.ru Git - kernel.git/commit
crypto: x86/sm3 - add AVX assembly implementation
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>
Fri, 7 Jan 2022 12:06:59 +0000 (20:06 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 28 Jan 2022 05:51:11 +0000 (16:51 +1100)
commit1382e6684162e62bebe789ae40d8a8405cc77090
treee0c41fb7507428bd15bd9d17cec24770eb396cd6
parent751e11f29db860d63e626d8d2d18a6d2cbd8859f
crypto: x86/sm3 - add AVX assembly implementation

This patch adds AVX assembly accelerated implementation of SM3 secure
hash algorithm. From the benchmark data, compared to pure software
implementation sm3-generic, the performance increase is up to 38%.

The main algorithm implementation based on SM3 AES/BMI2 accelerated
work by libgcrypt at:
https://gnupg.org/software/libgcrypt/index.html

Benchmark on Intel i5-6200U 2.30GHz, performance data of two
implementations, pure software sm3-generic and sm3-avx acceleration.
The data comes from the 326 mode and 422 mode of tcrypt. The abscissas
are different lengths of per update. The data is tabulated and the
unit is Mb/s:

update-size |     16      64     256    1024    2048    4096    8192
------------+-------------------------------------------------------
sm3-generic | 105.97  129.60  182.12  189.62  188.06  193.66  194.88
sm3-avx     | 119.87  163.05  244.44  260.92  257.60  264.87  265.88

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86/crypto/Makefile
arch/x86/crypto/sm3-avx-asm_64.S [new file with mode: 0644]
arch/x86/crypto/sm3_avx_glue.c [new file with mode: 0644]
crypto/Kconfig