Benchmarking AMD's New AOCC Compiler For Ryzen

Written by Michael Larabel in Software on 19 May 2017 at 02:50 PM EDT. Page 1 of 5. 36 Comments.

This week AMD released AOCC 1.0, the AMD Optimizing C/C++ Compiler, with initial support for Ryzen/Zen CPUs. In this article are our first benchmarks of the AOCC compiler compared to the GCC 6/7/8 and LLVM Clang 4/5 compilers.

AOCC 1.0 is AMD's first release of this new compiler and marks a new journey, separate from their older AMD Open64 compiler that was based on the now-defunct Open64 code-base. AOCC is based on LLVM Clang and is basically just a fork of LLVM/Clang with various additional patches to benefit AMD's CPU architecture: even the compiler binary is still named "clang" within the AOCC binary-only package.

AMD advertises AOCC 1.0 as having improved vectorization, better optimizers, and better code generation for AMD Zen/17h processors. AOCC also includes an optimized DragonEgg plug-in for those making use of Fortran code-bases on Ryzen and still compiling them with GCC 4.8. There's also an AOCC-optimized Gold linker available too.

AMD AOCC Ryzen Compiler Tests

From my Ryzen 7 1700 test box running Ubuntu 17.04, I tried out AOCC 1.0, which is based on the Clang 4.0 code-base. I compared the AOCC performance to GCC 6.3.0 (the stock compiler on Ubuntu 17.04), GCC 7.1.0 built from source, and GCC 8.0.0 20170514 SVN snapshot. On the Clang side I tested both mainline Clang 4.0.0 and then a Clang 5.0 SVN snapshot from this week. All of the same compiler flags and other software options were maintained the same throughout the testing process. All of these AMD Linux compiler benchmarks were done in a fully-automated manner using the Phoronix Test Suite.

Related Articles