wolfSSL is up and running and tested on Apple’s new A12Z platform, and with the right options it is blazing fast! The key options that we benchmarked include our out of the box defaults vs some key optimizations described below. Some notes to help you decipher these benchmarks:
- SP is Single Precision Math. It is a wolfSSL developed math library that is extremely well optimized for ARM environments and cryptographic math calculations.
- SP ASM is the assembly component of the SP math library.
- ARMASM is the assembly code functionality provided by ARM. As many of our savvy readers know, we have the best support for ARMv8 cryptography extensions, and they work great!
- MB/Sec is the number of megabytes of data that you can encrypt or decrypt per second. If you have big files to encrypt/decrypt, then you will really enjoy the power of SP math and the ARMv8 cryptography extensions!
- This is our first pass of optimizations for these benchmarks. We’ll do more, and we expect that a few more passes of optimizations will yield 20% to 40% more performance on any given cipher.
See below for more details!
(Default Options, MB/sec, higher is faster)
(SP + SP ASM + ARM ASM, MB/sec, higher is faster))
(Default Options, ms/op, lower is faster)
(SP + SP ASM + ARM ASM, ms/op, lower is faster)
|RSA 2048 Pub||0.612||0.022|
|RSA 2048 Priv||6.274||0.722|
|DH 2048 Key Gen||1.339||0.338|
|DH 2048 Key Agree||2.008||0.338|
|ECC 256 Key Gen||2.554||0.022|
|ECC 256 Key Agree||2.54||0.061|
To enable SP + SP ASM + ARM ASM and achieve maximum performance on Apple’s A12Z, pass in the following options to configure:
./configure --host=aarch64-apple-darwin --enable-sp --enable-sp-asm --enable-armasm
Note that the host flag is only required if the host is not detected as aarch64 by default. Check config.log after running configure to confirm this.
If you have questions on these benchmarks, or if you would like some support to help replicate them on your system, let us know at facts at wolfSSL .com or give us a call!