Battle of Compilers: An Experimental Evaluation Using SPEC CPU2017

In order to meet growing application demands, modern processors are constantly evolving. Today they integrate multiple processor cores, an on-chip interconnect, large shared caches, specialized hardware accelerators, and memory controllers on a single die. Compilers play a key role in bridging the gap between abstract high-level source code used by software developers and the advanced hardware structures. This paper reports the results of a measurement-based study that evaluates three most prevalent compilers used in industry and academia. We compare the effectiveness of the Intel Parallel Studio XE-19 (IPS), the LLVM Compiler Infrastructure project, and the GNU Compiler Collection using the SPEC CPU2017 benchmark suite that is widely used to evaluate performance of modern computer systems. We quantitively evaluate the compilers with respect to metrics such as benchmark build times, executable code sizes, and execution times. The benchmarks are compiled using comparable optimization levels and they are run on an Intel 8th generation Core i7–8700K. The results show that LLVM creates the smallest executables, GNU has the lowest build times, and IPS has the best performance.

[1]  Reena Panda,et al.  Wait of a Decade: Did SPEC CPU 2017 Broaden the Performance Horizon? , 2018, 2018 IEEE International Symposium on High Performance Computer Architecture (HPCA).

[2]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[3]  Chris Lattner,et al.  Introduction to the LLVM Compiler System , 2008 .

[4]  Ruben Buchatskiy,et al.  Automatic Tuning of Compiler Optimizations and Analysis of their Impact , 2013, ICCS.

[6]  Tosiron Adegbija,et al.  A Workload Characterization of the SPEC CPU2017 Benchmark Suite , 2018, 2018 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[7]  T. K. Prakash,et al.  Performance Characterization of SPEC CPU 2006 Benchmarks on Intel Core 2 Duo Processor , .

[8]  Aleksandar Milenkovic,et al.  SPEC CPU2017: Performance, Event, and Energy Characterization on the Core i7-8700K , 2019, ICPE.

[9]  Arturo González-Escribano,et al.  Using SPEC CPU2006 to evaluate the sequential and parallel code generated by commercial and open-source compilers , 2010, The Journal of Supercomputing.

[10]  Gerson Geraldo H. Cavalheiro,et al.  Comparing Performance of C Compilers Optimizations on Different Multicore Architectures , 2017, 2017 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW).

[11]  Lizy K. John,et al.  Is Compiling for Performance — Compiling for Power? , 2001 .

[12]  Jichi Guo,et al.  Studying the impact of application-level optimizations on the power consumption of multi-core architectures , 2012, CF '12.

[13]  Aleksandar Milenkovic,et al.  Execution characteristics of SPEC CPU2000 benchmarks: Intel C++ vs. Microsoft VC++ , 2004, ACM-SE 42.