Preliminary cryptographic benchmarks on new Apple A12Z Bionic Platform

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:

  1. SP is Single Precision Math. It is a wolfSSL developed math library that is extremely well optimized for ARM environments and cryptographic math calculations.
  2. SP ASM is the assembly component of the SP math library.
  3. 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!
  4. 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!
  5. 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!

AlgorithmThroughput
(Default Options, MB/sec, higher is faster)
Throughput
(SP + SP ASM + ARM ASM, MB/sec, higher is faster))
RNG69.21512.621
AES-128-CBC-enc228.031102.22
AES-128-CBC-dec255.756407.078
AES-256-CBC-enc171.38848.61
AES-256-CBC-dec185.674103.814
AES-GCM-128-enc55.0671344.808
AES-GCM-128-dec55.04729.65
AES-256-GCM-enc511350.216
AES-256-GCM-dec50.967708.081
CHACHA305.3581284.298
CHA-POLY256.692907.553
MD5405.448405.685
POLY13051616.6583099.69
SHA453.143587.883
SHA-256151.6011831.661
HMAC-MD5405.415405.678
HMAC-SHA452.972576.566
HMAC-SHA256151.5561831.624
HMAC-SHA512302.308367.16
AlgorithmThroughput
(Default Options, ms/op, lower is faster)
Throughput
(SP + SP ASM + ARM ASM, ms/op, lower is faster)
RSA 2048 Pub0.6120.022
RSA 2048 Priv6.2740.722
DH 2048 Key Gen1.3390.338
DH 2048 Key Agree2.0080.338
ECC 256 Key Gen2.5540.022
ECC 256 Key Agree2.540.061
EC-DSA Sign2.6530.034
EC-DSA Verify1.760.073

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!