Announcement

Collapse
No announcement yet.

AOCC 4.0 Shows The Strong Advantages Of Compiler Optimizations With 4th Gen AMD EPYC CPUs

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

  • AOCC 4.0 Shows The Strong Advantages Of Compiler Optimizations With 4th Gen AMD EPYC CPUs

    Phoronix: AOCC 4.0 Shows The Strong Advantages Of Compiler Optimizations With 4th Gen AMD EPYC CPUs

    Last month when AMD launched the EPYC 9004 "Genoa" series they also published AOCC 4.0 as the newest version of the AMD Optimizing C/C++ Compiler derived from LLVM/Clang and tailored to their latest Zen microarchitecture. At the time I ran some AOCC 4.0 benchmarks on the Ryzen 7000 series and compared it to GCC and Clang. Since then I've had the time on my Genoa test rig to look at how well AOCC 4.0 is performing and in this article are some benchmarks with the EPYC 9374F processors between GCC and AOCC 4.0.

    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
    I'm having a hard time discerning what's what.
    How much of that is attributed to different compilers being good at different things and how much is the actual optimizations for the new arch?

    Comment


    • #3
      Originally posted by milkylainen View Post
      I'm having a hard time discerning what's what.
      How much of that is attributed to different compilers being good at different things and how much is the actual optimizations for the new arch?
      Well, as far as GCC vs. LLVM, there are these benchmarks from 1 month ago:

      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



      I guess the operative question would be how much AOCC has progressed, in the meantime. The differences in these benchmarks seem a lot more striking, but maybe that says more about the test selection?
      Last edited by coder; 16 December 2022, 08:52 AM.

      Comment


      • #4
        Originally posted by coder View Post
        Exactly.

        Michael, since AOCC is based on LLVM, how about comparing it to that, as well?
        As said in the article, will do with time... Mostly waiting to see what lands in the coming weeks for LLVM 16.0 and GCC 13 before spending a lot of time conducting tests only to then redo it in a couple weeks or so, particularly with having just one Genoa platform around and having lots of different benchmarks on my TODO list. Comparing against GCC was the first step since that's what has been used by all my prior Genoa testing so far given it's the default system compiler on Ubuntu and also afaik what all other reviewers have also been using, hence the interesting comparison point.
        Michael Larabel
        https://www.michaellarabel.com/

        Comment


        • #5
          So did they hold back upstreaming improvements to the generic compilers to make AOCC look good? At least it isn't a joke anymore.

          Comment


          • #6
            I imagine these differences in conjunction with the kernel update improvements would yield enough of a performance boost to act as though you bought a whole performance tier higher. When you're talking on the scale of tens or hundreds of thousands of cores, that's huge.

            Comment


            • #7
              Originally posted by carewolf View Post
              So did they hold back upstreaming improvements to the generic compilers to make AOCC look good? At least it isn't a joke anymore.
              AOCC is more of a testing ground for upstreaming the parts that don't come with a lot of compile time regressions or are otherwise unsuitable for upstreaming. But the upstream process seems to be rather slow and when reading some of the upstream devs past comments, it seems that the Zen scheduler model and tuning they have is still rather basic and could need some refinements.

              Comment


              • #8
                Originally posted by ms178 View Post

                AOCC is more of a testing ground for upstreaming the parts that don't come with a lot of compile time regressions or are otherwise unsuitable for upstreaming. But the upstream process seems to be rather slow and when reading some of the upstream devs past comments, it seems that the Zen scheduler model and tuning they have is still rather basic and could need some refinements.
                maybe it would violate other LLVM implementations such that other CPUs might suffer?

                Comment


                • #9
                  Originally posted by CochainComplex View Post

                  maybe it would violate other LLVM implementations such that other CPUs might suffer?
                  The scheduler model / tuning is microarchitecture-dependant, the chance for regressing other architectures fairly low. But AMD might have implemented other optimizations to the vectorizer or other parts of LLVM that might or might not work as good on other architectures. Only AMD knows.

                  Comment


                  • #10
                    Originally posted by CochainComplex View Post
                    maybe it would violate other LLVM implementations such that other CPUs might suffer?
                    This, but also getting changes up the chain and approved can be cumbersome. Having your own fork will be the most convincing method to get the job done and prove the point of your work, making it easier to get changes up the chain. People will want to see these changes land in LLVM/Clang sooner (and also GCC) when they see what AOCC can achieve.

                    Comment

                    Working...
                    X