Phoronix GCC Graphite and LTO Benchmarks

Jul 08 2013

GCC Graphite and Link Time Optimization are new features that many Gentoo users do not enable because they have not been proven to improve performance. I recently did a fresh install of Funtoo optimized for Core i7 and a recompile of the system to run Phoronix benchmarks. Before we look at the benchmarks, it is imperative to note that Phoronix is not intended to test the performance of programs compiled with certain sets of GCC flags. The test suite documentation states,

… for the software being tested that may be installed already on the system by the user, the Phoronix Test Suite will ignore those installations. The Phoronix Test Suite installs all tests within its configured environment to improve the reliability of the testing process.

which means the test suite disables system-wide GCC flags for test packages. So out of the tests I ran, only the ones that tested the packages compiled with Graphite and LTO enabled are worth looking at, and these are PyBench and gzip compression. Of the other tests, video and audio encoding as well as the lzma compression are built using the make command, which bypasses the Gentoo build system. If we look at the individual test packages, the lzma package downloads the lzma source

<?xml version="1.0"?>
<!--Phoronix Test Suite v3.0.0a3 (Iveland) [ http://www.phoronix-test-suite.com/ ]-->
<PhoronixTestSuite>
  <Downloads>
    <Package>
      <URL>http://mirror.internode.on.net/pub/gentoo-portage/distfiles/lzma-4.32.6.tar.gz, http://buildroot.uclibc.org/downloads/sources/lzma-4.32.6.tar.gz</URL>
      <MD5>211d6207fdd7f20eaaae1bbdeb357d3a</MD5>
      <FileSize>478661</FileSize>
    </Package>
  </Downloads>
</PhoronixTestSuite>

and builds it without using Gentoo’s package manager. That means it doesn’t use the GCC optimization flags.

#!/bin/sh

mkdir $HOME/lzma_

tar -zxvf lzma-4.32.6.tar.gz
cd lzma-4.32.6
./configure --prefix=$HOME/lzma_
make -j $NUM_CPU_JOBS
echo $? > ~/install-exit-status
make install
cd ..
rm -rf lzma-4.32.6

cat > compress-lzma <<EOT
#!/bin/sh
./lzma_/bin/lzma -q -c ./compressfile > /dev/null 2>&1
EOT

chmod +x compress-lzma

On the other hand, the gzip package doesn’t require any downloads and uses the system’s gzip

#!/bin/sh

cat > compress-gzip <<EOT
#!/bin/sh
cat compressfile | gzip -c > /dev/null 2>&1
EOT

chmod +x compress-gzip

At last, we are ready to understand the results, which do indicate that these new GCC features improve performance.
http://openbenchmarking.org/result/1307063-UT-GCCOPTIMI03

No responses yet