No announcement yet.

@Michael: A GCC developer contests your SciMark testing results

  • Filter
  • Time
  • Show
Clear All
new posts

  • @Michael: A GCC developer contests your SciMark testing results

    Phoronix SciMark benchmarking results
    Phoronix recently published an article “Ryzen Compiler Performance: Clang 4/5 vs. GCC 6/7/8 Benchmarks”, and there are many results in that article that surprises me...

    One such is the result for SciMark that shows that GCC generates much slower code than LLVM – there is a big difference in several tests, and the composite score is 25% lower. I do not have any Ryzen CPU to test on, but my testing on Broadwell shows very little difference between GCC and LLVM when SciMark is compiled with -O3 -march=x86-64 as in the article, and the Ryzen microarchitecture should not introduce that big difference. And the reported numbers seem low...

    The Phoronix testing also shows strange performance variations between different GCC versions that I don’t see in my testing – I see a performance increase for each newer version of the compiler.

    The published test results are made running scripts available at, and looking at the build script for SciMark shows that it is built as
    cc $CFLAGS -o scimark2 -O *.c -lm Note the -O – this overrides the optimization level set by $CFLAGS and explains at least some of the discrepancies in the test results.1 GCC maps -O to the -O1 optimization level that is meant to be a good choice to use while developing – it optimizes the code, but focuses as much on fast compilation time and good debug information as on producing fast code. LLVM maps -O to -O2 that is a “real” optimization level that prioritizes performance, so it is not surprising that LLVM produces faster code in this case.

    So the benchmarking result does not show what is intended, and both compilers can do better than what the test results show...

    1. I get similar results as the article when I use -O, but my result for FFT is very different...

  • #2
    Michael ping.


    • #3
      Originally posted by birdie View Post
      Michael ping.
      I had already updated the test profile when this person initially pointed out the "-O" accidentally being left in that particular test profile. It was in there unconditionally so regardless of the compiler it was always present so the results are comparable between GCC and Clang, just not at the intended optimization level for scimark2, but anyhow the updated test profile on OpenBenchmarking has it.
      Michael Larabel