I've run the benchmark tests after compiling Crypto++ 5.6.2 with the latest 
versions of the Intel compilers (icpc 15.0.2), GNU g++ (4.9 and 5.1), and 
Clang (Apple LLVM version 6.1.0). I'm basically interested in getting the 
best possible performance for AES in CTR mode, and the results of the 
benchmarks were surprising. In my limited understanding, use of the AES-NI 
instruction set (which I believe only the Intel compiler can utilize) is 
supposed to provide a big performance boost for AES. The results do not 
show this. For the AES mode of interest (CTR), the throughput I achieve (as 
reported by the benchmark test suite) is roughly:

Clang: ~1 GiB/second
Intel: ~1.7 GiB/second
GNU: ~4.1 GiB/second

Can someone explain why GNU has such a huge boost in performance (~2.5x) 
over Intel, when GNU can not use the AES-NI instructions (I don't care much 
about Clang)? I get the same results comparing Intel and GNU on a Linux VM. 
Let me know if you need any relevant machine specs (Intel core i7 cpu). The 
relevant compiler flags appearing on Linux vs OS X are shown below (the 
performance results are the same on either operation system and I've played 
with various optimization flags for each without much change in 
performance). Can anyone enlighten me about the lack of performance boost 
from AES-NI?

*On Linux VM:*
GNU:
$ make CXX=g++
$ g++ -DNDEBUG -g -O2 -march=native -pipe -c ...

Intel:
$ make CXX=icpc
$ icpc -DNDEBUG -g -O2 -wd68 -wd186 -wd279 -wd327 -pipe ...

*On OS X:*
GNU: (the "-Wa,-q" is to get around assembler errors)
$ make CXX="g++-5.1 -Wa,-q"
$ g++-5.1 -Wa,-q -DNDEBUG -g -O2 -arch x86_64 -DCRYPTOPP_DISABLE_ASM -pipe 
...

Intel:
$ make CXX=icpc
$ icpc -DNDEBUG -g -O2 -wd68 -wd186 -wd279 -wd327 -DCRYPTOPP_DISABLE_ASM -c 
...

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to