GCC performance - Closing the Performance Gap with an SPECint_rate_base2006 publish
Bill_Buros 270000QDEP Comments (2) Visits (3510)
By: Bill Buros.
In the continuing journey of performance improvements with GCC, numerous development and performance teams recently hit an interesting milestone with results taking advantage of GCC compilers. The bottom-line difference between similar publishes of SPEC
We regularly use SPECint_rate_2006 (both base and peak) to measure and assess performance of the Power7 servers across the POWER line. These results are externally submitted, reviewed, and approved by SPEC.org. The summary of results are posted to the applicable "perfdata" pages on the IBM web sites. For example, many of the performance data results for the Power 730 Express server are consolidated on this page:
Over the years, the performance teams have taken advantage of the IBM XL compilers which are specially tuned for Power systems. The IBM XL compilers generally provided significant performance advantages over compilations and builds using GCC.
In parallel to the IBM XL teams, the Linux community has continued to make good strides with open-source compiler technology, and teams from IBM's Linux Technology Center have been focusing on continued Power tunings for GCC and the tuned libraries which are available for the operating systems.
With the latest Advance Toolchain 5.0 (with GCC 4.6.1), the "bottom-line" performance gap between the compilers has passed the 10% difference level as measured by SPEC
We take the "base" values of the runs and calculate the percentage differences. It's important to recognize that a "base" run means common compiler options are used across all of the components, which tends to mimic the more common customer usage of a standard set of compilation options.
What's noteworthy in the results is that it shows how much of a difference a compiler can really make. In several of the programs used, the IBM XL C/C++ compilers made a significant difference in the results (see 429.mcf - 44% slower with GCC and 462.libquantum - 47% slower with GCC). But across the other results, the compilers were fairly close in their results.
As usual with performance, your mileage will vary. Your results are dependent on a large number of variables. But here we have data that says for many customers, the GCC compilers available through the Advance Toolchain on RHEL and SLES can provide very good performance for Power servers.
In a future post, we'll discuss the process of closing this performance gap on the "peak metrics", which allow specialized compilation and build tunings for each individual program.
(edit'ed 11/08/2011 to highlight GCC 4.6.1 as the level used)