I've been comparing some specs between Mac Pro models, specifically with the jump from Harpertown (a.k.a. Core 2) to Gulftown/Westmere (a.k.a. Core i7).

While there were expected incremental performance increases across the board, the most significant jump benchmarked is for the AES instruction set that were introduced in the later generation; on the order of 24x faster. I've understood enough of it to gather that it is used for encryption and that things like BitLocker and SSH would see improvements, but it almost feels like those would go unnoticed in typical use.

My question is, is there any part of OSX that benefits from AES that results in noticeable performance improvements? Perhaps at a minimum would HTTPS connections in a web browser see an improvement? I know it is a bit of a stretch, but worth asking :-)

  • 1
    This is a great question. – agentroadkill May 18 '16 at 17:57
  • FileVault may get a boost. – At0mic May 18 '16 at 21:09

So... A bit of poking lead me to a simple conclusion: it's unlikely Apple will tell you where they use AES-NI instructions within Mac OS or the rest of their software, but they are definitely present and available.

Firstly, Intel talks a bit about AES-NI and where it is used. Some of the comments talk about its presence or lack there-of in the comments. Given that I have homebrew and wine installed on my Mac, I followed the interesting instructions here to test if the openssl dependency of wine is able to use AES:

$ openssl speed aes-256-c
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256 cbc      69308.49k    74198.23k    75165.95k    74875.63k    76098.51k

$ openssl speed -evp aes-256-cbc
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256-cbc     421057.71k   432531.16k   447445.08k   450021.03k   444866.56k

These numbers broadly agree with cyberciti's quote about 6x performance improvement using AES-NI.

Finally, we have some actual evidence in the SE community itself: https://stackoverflow.com/questions/12634305/.

Apparently, Apple used to provide an API for Mac OS which would not allow direct use of AES-NI instructions. The work-around used to be using Intel's compiler or building gcc from source. It appears that since 4.6.3, this is no longer the case, and developers can make use of AES-NI if they so choose. The performance improvements are then a function of the developers, not the OS.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .