Announcement

Collapse
No announcement yet.

GCC 11 PGO With The AMD Ryzen 9 5950X For Faster Performance

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

  • GCC 11 PGO With The AMD Ryzen 9 5950X For Faster Performance

    Phoronix: GCC 11 PGO With The AMD Ryzen 9 5950X For Faster Performance

    It's been a while since last running benchmarks evaluating the performance of GCC's profile guided optimizations (PGO) for helping to optimize the performance. But stemming from the discussions around PGO'ing the Linux kernel (though that effort is stalled for now), several Phoronix readers inquired about seeing some fresh PGO figures with GCC 11. So here are such benchmarks of GCC 11 with the upcoming Ubuntu 21.10 running on an AMD Ryzen 9 5950X desktop.

    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
    Pretty significant improvements there. That's like buying an entire performance tier higher (if there was one).

    Comment


    • #3
      Originally posted by schmidtbag View Post
      Pretty significant improvements there. That's like buying an entire performance tier higher (if there was one).

      It is just parly "decripples" AMD CPUs



      5 March 2020 at 08:18 AM EDT.


      Stemming from Glibc semantics that effectively "cripple AMD" in just checking for Intel CPUs while AMD CPUs with Glibc are not even taking advantage of Haswell era CPU features,
      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


      Nov 18th, 2019 10:53

      MATLAB is a popular math computing environment in use by engineering firms, universities, and other research institutes. Some of its operations can be made to leverage Intel MKL (Math Kernel Library), which is poorly optimized for, and notoriously slow on AMD Ryzen processors. Reddit user Nedflanders1976 devised a way to restore anywhere between 20 to 300 percent performance on Ryzen and Ryzen Threadripper processors, by forcing MATLAB to use advanced instruction-sets such as AVX2.
      MATLAB is a popular math computing environment in use by engineering firms, universities, and other research institutes. Some of its operations can be made to leverage Intel MKL (Math Kernel Library), which is poorly optimized for, and notoriously slow on AMD Ryzen processors. Reddit user Nedflander...



      Comment


      • #4
        Originally posted by Peter Fodrek View Post
        It is just parly "decripples" AMD CPUs
        Profile-guided optimization does not enable modern CPU instructions like AVX2. Mostly it adds hints to branch instructions, something that does not require special instructions, CPU detection, or AMD support in the compiler or libraries.

        Profile-guided optimization has absolutely nothing to do with the issues you reference or with AMD in particular. If you run profile-guided optimization with an Intel CPU, you should see equally impressive performance gains.

        Comment


        • #5
          Originally posted by foobaz View Post

          Profile-guided optimization does not enable modern CPU instructions like AVX2. Mostly it adds hints to branch instructions, something that does not require special instructions, CPU detection, or AMD support in the compiler or libraries.

          Profile-guided optimization has absolutely nothing to do with the issues you reference or with AMD in particular. If you run profile-guided optimization with an Intel CPU, you should see equally impressive performance gains.

          Ok. It is different case but performance increase is similiar. I mention that manipulating branch prediction may cause even higher level of performance increase on CPUs from all vendors (not only two main x86 CPU vendors)

          Comment


          • #6
            as expected, best results on normal software

            Comment


            • #7
              So building gcc with pgo is speeding up applications build with this gcc? This doesn't make sense. Enabling pgo should (must) not impact binaries build with this version of gcc.

              Comment


              • #8
                I know you don't report every result in the article pages Michael, but it was a bit of a shock to see PGO beating non-PGO in everything except SVT-VP9 then come to the last page and see non-PGO pick up nearly 15% of the wins...

                I guess it's time I should do a compare and contrast gcc builds of some of my daily use code again, as I wouldn't say no to a 10% speed bump for what is essentially "free".

                Comment


                • #9
                  Originally posted by Paradigm Shifter View Post
                  as I wouldn't say no to a 10% speed bump for what is essentially "free".
                  Well, the problem is it's not exactly 'free', as you first need to compile once, then run the program in a typical fashion, and then compile it again.

                  Some software automates this in the build, Firefox, x264 among others, but in 99% of software you need to do this manually or automate it yourself.

                  There's certainly a lot of performance to be had, for cpu intensive stuff you can expect 5-20% improvements unless the software does a ton of hand-optimized assembly, which of course the compiler can't improve upon.

                  Comment


                  • #10
                    Originally posted by Grinch View Post
                    Well, the problem is it's not exactly 'free', as you first need to compile once, then run the program in a typical fashion, and then compile it again.

                    Some software automates this in the build, Firefox, x264 among others, but in 99% of software you need to do this manually or automate it yourself.

                    There's certainly a lot of performance to be had, for cpu intensive stuff you can expect 5-20% improvements unless the software does a ton of hand-optimized assembly, which of course the compiler can't improve upon.
                    Yeah, I understand that. But compiling twice (something which takes about 10 minutes) is definitely worth it if it shaves 10% of the runtime off a program for which a single run will often be weeks.

                    Comment

                    Working...
                    X