Announcement

Collapse
No announcement yet.

Ampere Altra Performance Shows It Can Compete With - Or Even Outperform - AMD EPYC & Intel Xeon

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

  • Something I wrote at anandtech.

    So I'm re reviewing the results. In compiling there seems to be divergent results.

    At anand



    at phoronix (not an image graph so no linky)


    Code:
    AMD EPYC 7742 2P                200.99
    Intel Xeon Platinum 8280 2P     229.32
    Ampere Altra Q80 - 33 2P        282.64
    Yes they are compiling different versions 10 vs 11, different disks and ramdisks were used, and some NUMAs may vary, but compiling should be relatively linear per platform. Seems to be quite a contradiction.

    Edit: Distros are diff too

    Comment


    • Originally posted by PerformanceExpert View Post
      Do you have any evidence to back up that claim? AMD released an Arm server based on Arm's Cortex-A57 but there is as far as they went.
      its public knowledge that AMD was a partner that helped ARM to build ARM64,
      ARM choosed AMD because of the success of AMD with amd64 implementation experience..

      Comment


      • Originally posted by PerformanceExpert View Post
        No that's total rubbish. In both cases distros target the base architecture which is ARMv8.0-A for AArch64, so none of the many extensions are enabled.

        This is simply the way all software works (and has always worked). You cannot ship binaries that rely on the latest features since they don't work on every CPU (you can add runtime checks of course but that is only worth it in specific cases).
        I thin you misunderstood my statement..
        amd64 is very old, almost 20 years now..
        a lot of changes happened since its creation, and tons of software is not optimized for amd64 base, which is sse4.1, take the zlib as an example , at least 1 year ago it was optimized for sse2, and like this the rest, don't ask me why, but amd64 software is not optimized yet for the base of amd64.. while arm64 is!

        Comment


        • Originally posted by juanrga View Post
          Not true. AMD didn't play any role in the development of ARM64.
          AMD was a key partner for ARM, due to its successful experience in amd64..

          Comment


          • Originally posted by tuxd3v View Post

            its public knowledge that AMD was a partner that helped ARM to build ARM64,
            ARM choosed AMD because of the success of AMD with amd64 implementation experience..
            There is no evidence AMD was involved at all in the design. AMD only developed an interest in Arm servers after they acquired Seamicro in 2012, a year after AArch64 was announced.

            Comment


            • Originally posted by tuxd3v View Post

              I thin you misunderstood my statement..
              amd64 is very old, almost 20 years now..
              a lot of changes happened since its creation, and tons of software is not optimized for amd64 base, which is sse4.1, take the zlib as an example , at least 1 year ago it was optimized for sse2, and like this the rest, don't ask me why, but amd64 software is not optimized yet for the base of amd64.. while arm64 is!
              Yes x64 is very old, and that means that compilers and software have been optimized for it. AArch64 is newer and thus less mature. And Zlib was optimized for SSE2 many years ago.

              Comment


              • Originally posted by PerformanceExpert View Post
                Yes x64 is very old, and that means that compilers and software have been optimized for it.
                What does it even mean to optimize for x86-64?

                Different micro-architectures have different throughput, latency, and number of execution ports for different instructions, addressing modes, etc. If you tune a program for core2, not only does it have a smaller set of ISA extensions that it supports, it also is going to favor a different mix and arrangement of instructions than something like skylake or zenver2.

                Originally posted by PerformanceExpert View Post
                AArch64 is newer and thus less mature.
                With AArch64 being simpler and newer, there's not going to be as much variation between code optimized for one ARMv8-A core vs. another. And 9 years is definitely enough to qualify an ISA as mature. Not only that, but AArch64 has a lot in common with other RISC CPUs that've come before it.

                Also, billions of phone handsets have run AArch64 code for the past 5 years, at least. For a good bit of that time, gcc was the default Android NDK compiler. So, between all the kernels, system libraries, drivers, and natively-compiled application code, there's quite a lot of AArch64 code that's passed through GCC.

                Without some evidence to back up this claim that gcc somehow isn't as competent at AArch64 as x86-64, I think it falls pretty flat.

                Comment


                • Originally posted by schmide View Post
                  snip

                  Code:
                  AMD EPYC 7742 2P 200.99
                  Intel Xeon Platinum 8280 2P [B]229.32[/B]
                  Ampere Altra Q80 - 33 2P [B]282.64[/B]
                  So after watching serverthehome Altra Q80 - 33 2P review, I believe that the intel and ampere numbers in the phoronix review are mixed up.

                  Comment


                  • Originally posted by coder View Post
                    What does it even mean to optimize for x86-64?

                    Different micro-architectures have different throughput, latency, and number of execution ports for different instructions, addressing modes, etc. If you tune a program for core2, not only does it have a smaller set of ISA extensions that it supports, it also is going to favor a different mix and arrangement of instructions than something like skylake or zenver2.
                    It means that compilers generate code that runs well on modern x86 cores. They avoid complex instructions that tend to be slow and prefer fast instructions and addressing modes. Even in the base x86-64 mode heuristics (inlining, unrolling, etc) have been fine tuned for modern x86 cores.

                    With AArch64 being simpler and newer, there's not going to be as much variation between code optimized for one ARMv8-A core vs. another. And 9 years is definitely enough to qualify an ISA as mature. Not only that, but AArch64 has a lot in common with other RISC CPUs that've come before it.

                    Also, billions of phone handsets have run AArch64 code for the past 5 years, at least. For a good bit of that time, gcc was the default Android NDK compiler. So, between all the kernels, system libraries, drivers, and natively-compiled application code, there's quite a lot of AArch64 code that's passed through GCC.

                    Without some evidence to back up this claim that gcc somehow isn't as competent at AArch64 as x86-64, I think it falls pretty flat.
                    Almost all GCC developers work on x86, so every new feature, change or optimization has been tuned for x86, not for AArch64. As a result AArch64 is not just at a disadvantage but often losing performance due to these changes. Recent GCCs do indeed generate reasonable code for AArch64 because Arm has invested into open source compilers. But with 90% of developers optimizing for x86 it's not nearly as tuned as x86.

                    And while most open source packages support AArch64 today, they are almost exclusively being optimized and tuned for x86. A major issue is that AArch64 systems are not easily available to developers - a mobile phone or PI doesn't make a good developer box!

                    So there is no doubt x86 has a huge advantage (and we see that in many Phoronix benchmarks). This should improve as AArch64 becomes more common in laptops/desktops and servers, but that's the situation we have today.

                    Comment


                    • Originally posted by schmide View Post

                      So after watching serverthehome Altra Q80 - 33 2P review, I believe that the intel and ampere numbers in the phoronix review are mixed up.
                      It seems unlikely that the numbers are swapped given it's all automated. Since 2 reputable sites report very different results for the same benchmark it is more likely there is a difference in the setup. Phoronix didn't use the CentOS install like the others. Since that came installed, it is likely better tuned, but the difference is way too large even considering the 4 vs 64KB pages.

                      Comment

                      Working...
                      X