Announcement

Collapse
No announcement yet.

GCC 7.0 vs. 6.3 vs. 5.4 vs. 4.9 Compiler Benchmarks On Linux x86_64

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GCC 7.0 vs. 6.3 vs. 5.4 vs. 4.9 Compiler Benchmarks On Linux x86_64

    Phoronix: GCC 7.0 vs. 6.3 vs. 5.4 vs. 4.9 Compiler Benchmarks On Linux x86_64

    With GCC7 feature development ending, this week I conducted some benchmarks of the latest GCC 7 snapshot against that of the past three major release series of the GNU Compiler Collection: 6.3.0, 5.4.0, and 4.9.4. All tests were done on Ubuntu Linux x86_64 with an Intel Core i7 6800K processor.

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Originally posted by phoronix View Post
    The CacheBench write speeds appears to drop significantly under GCC 7.
    The graph for it seems to be missing.

    Comment


    • #3
      Originally posted by tildearrow View Post

      The graph for it seems to be missing.
      It's on the linked results page, though. Looks like a performance regression or something.

      Although in general the generated code seems to improve, it's also somewhat back-and-forth. The question is if those are chosen trade-offs due to changed priorities of use-cases, or if the generated code could be more often the best of each.

      Comment


      • #4
        Nice article!

        One thing that I think would be nice, is to include the compile time of each binaries in their runtime graph (or a separate one).
        That way we can see the relationship between optimization of runtime and compile time.

        Comment


        • #5
          Originally posted by geearf View Post
          Nice article!

          One thing that I think would be nice, is to include the compile time of each binaries in their runtime graph (or a separate one).
          That way we can see the relationship between optimization of runtime and compile time.
          There are a few 'timed compilation tests', but at the moment PTS doesn't record and report test installation times on graphs. Though would be fun addition, patches welcome or sponsorsing of said work by anyone interested.
          Michael Larabel
          https://www.michaellarabel.com/

          Comment


          • #6
            Originally posted by Michael View Post
            There are a few 'timed compilation tests', but at the moment PTS doesn't record and report test installation times on graphs. Though would be fun addition, patches welcome or sponsorsing of said work by anyone interested.
            Yes I've seen the "timed compilation tests", that's why I mentioned "in their runtime graph", those don't have one

            I haven't worked with PHP in more than a decade but it could be fun to try that.
            I don't understand though, how is PTS able to record time for the timed compilation tests and not for the runtime ones? Or did you manually create the compile time graphs?

            Thank you!

            Comment


            • #7
              Originally posted by geearf View Post
              Yes I've seen the "timed compilation tests", that's why I mentioned "in their runtime graph", those don't have one

              I haven't worked with PHP in more than a decade but it could be fun to try that.
              I don't understand though, how is PTS able to record time for the timed compilation tests and not for the runtime ones? Or did you manually create the compile time graphs?

              Thank you!
              For the timed compilation tests they are test profiles themselves, e.g. http://openbenchmarking.org/innhold/...926c4fae1c00a9 so the benchmark itself is timing the process of building that given piece of software.

              What you're after would basically be modifying PTS to record the test install time (actually I think I do have that being tracked internally already) but then the new part is basically making an option to either append it as a footnote to the graph for that test run (probably the easiest approach) or adding a new 'fake' graph following each test run with the value. Really not that big of an undertaking, particularly if going for the footnote approach, but at the moment I don't have the extra time.
              Michael Larabel
              https://www.michaellarabel.com/

              Comment


              • #8
                Originally posted by Michael View Post

                For the timed compilation tests they are test profiles themselves, e.g. http://openbenchmarking.org/innhold/...926c4fae1c00a9 so the benchmark itself is timing the process of building that given piece of software.

                What you're after would basically be modifying PTS to record the test install time (actually I think I do have that being tracked internally already) but then the new part is basically making an option to either append it as a footnote to the graph for that test run (probably the easiest approach) or adding a new 'fake' graph following each test run with the value. Really not that big of an undertaking, particularly if going for the footnote approach, but at the moment I don't have the extra time.
                Thank you for the detailed answer!

                I will look at it this week. You make it sound easy enough that I'm not too scared anymore

                Comment


                • #9
                  Originally posted by geearf View Post

                  Thank you for the detailed answer!

                  I will look at it this week. You make it sound easy enough that I'm not too scared anymore
                  May be even easier when running past some of the code today.... if you open phoronix-test-suite/pts-core/objects/client/pts_installed_test.php. The get_install_footnote() of pts_installed_test is what normally provides the compiler footnote details. If you appended the install time inside that call, you could probably get it working... Note that in that same class/file is a get_latest_install_time() function Basically you could make all the changes inside pts_installed_test's get_install_footnote().
                  Michael Larabel
                  https://www.michaellarabel.com/

                  Comment


                  • #10
                    Originally posted by Michael View Post

                    May be even easier when running past some of the code today.... if you open phoronix-test-suite/pts-core/objects/client/pts_installed_test.php. The get_install_footnote() of pts_installed_test is what normally provides the compiler footnote details. If you appended the install time inside that call, you could probably get it working... Note that in that same class/file is a get_latest_install_time() function Basically you could make all the changes inside pts_installed_test's get_install_footnote().
                    Got it thanks!

                    Comment

                    Working...
                    X