Is there any part of OSX that gets a significant speed boost from Intel AES instructions?
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 :-)
Solution 1:
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.