Rosetta2: x86-64 Translation Performance

The new Apple Silicon Macs being based on a new ISA means that the hardware isn’t capable of running existing x86-based software that has been developed over the past 15 years. At least, not without help.

Apple’s new Rosetta2 is a new ahead-of-time binary translation system which is able to translate old x86-64 software to AArch64, and then run that code on the new Apple Silicon CPUs.

So, what do you have to do to run Rosetta2 and x86 apps? The answer is pretty much nothing. As long as a given application has a x86-64 code-path with at most SSE4.2 instructions, Rosetta2 and the new macOS Big Sur will take care of everything in the background, without you noticing any difference to a native application beyond its performance.

Actually, Apple’s transparent handling of things are maybe a little too transparent, as currently there’s no way to even tell if an application on the App Store actually supports the new Apple Silicon or not. Hopefully this is something that we’ll see improved in future updates, serving also as an incentive for developers to port their applications to native code. Of course, it’s now possible for developers to target both x86-64 and AArch64 applications via “universal binaries”, essentially just glued together variants of the respective architecture binaries.

We didn’t have time to investigate what software runs well and what doesn’t, I’m sure other publications out there will do a much better job and variety of workloads out there, but I did want to post some more concrete numbers as to how the performance scales across different time of workloads by running SPEC both in native, and in x86-64 binary form through Rosetta2:

SPECint2006 - Rosetta2 vs Native Score %

In SPECint2006, there’s a wide range of performance scaling depending on the workloads, some doing quite well, while other not so much.

The workloads that do best with Rosetta2 primarily look to be those which have a more important memory footprint and interact more with memory, scaling perf even above 90% compared to the native AArch64 binaries.

The workloads that do the worst are execution and compute heavy workloads, with the absolute worst scaling in the L1 resident 456.hmmer test, followed by 464.h264ref.

SPECfp2006(C/C++) - Rosetta2 vs Native Score %

In the fp2006 workloads, things are doing relatively well except for 470.lbm which has a tight instruction loop.

SPECint2017(C/C++) - Rosetta2 vs Native Score %

In the int2017 tests, what stands out is the horrible performance of 502.gcc_r which only showcases 49.87% performance of the native workload – probably due to high code complexity and just overall uncommon code patterns.

SPECfp2017(C/C++) - Rosetta2 vs Native Score %

Finally, in fp2017, it looks like we’re again averaging in the 70-80% performance scale, depending on the workload’s code.

Generally, all of these results should be considered outstanding just given the feat that Apple is achieving here in terms of code translation technology. This is not a lacklustre emulator, but a full-fledged compatibility layer that when combined with the outstanding performance of the Apple M1, allows for very real and usable performance of the existing software application repertoire in Apple’s existing macOS ecosystem.

SPEC2017 - Multi-Core Performance Conclusion & First Impressions
Comments Locked

682 Comments

View All Comments

  • Alistair - Thursday, November 19, 2020 - link

    Yeah I don't want any more CPU cores, I want clock speed increases. I also want double the GPU. M1G with double the GPU, make it happen Apple.
  • ChrisGX - Thursday, November 19, 2020 - link

    Long ago, I was in the computer trade, for a time. People, from time to time, still ask me about product purchases and issues of the moment shaping computing products for consumers. From the information already available on the M1 I can say that, at this point, it won't be hard to recommend the MacBook Air (and MacBooks and Mac Minis more generally) to anyone who wants to know what I think. I would mention all the standard caveats, of course. The Apple bear hug is not for everyone but it is hard to miss the fact that Apple is now making better consumer computers than its competitors and, for the first time from any computer products supplier, Apple's computers for average users rate very well on both performance and energy efficiency.

    As far as I am concerned the Tiger in Tiger Lake turned out to be toothless. Meanwhile AMD has been stung but can't be counted out. If anyone wants to get a computer less expensive than a MacBook Air I would advise and ARM based Chromebook or Tablet.
  • nicball - Thursday, November 19, 2020 - link

    Is it true that the SPEC scores are run in WSL for Windows machines? Then it only makes sense if you compare them among Windows machines, not across OSes.
  • ChrisGX - Thursday, November 19, 2020 - link

    Is it true? Hmm...NO!

    SPEC isn't a secret cabal. You can look this stuff up on their website. Try here:
    https://www.spec.org/cpu2017/Docs/system-requireme...
    https://www.spec.org/cpu2017/Docs/install-guide-wi...
    https://www.spec.org/cpu2017/Docs/
    https://www.spec.org/cpu2006/Docs/system-requireme...
    https://www.spec.org/cpu2006/Docs/install-guide-wi...
    https://www.spec.org/cpu2006/Docs/
  • substance90 - Thursday, November 19, 2020 - link

    The denial of AMD fanboys is so strong.. I can't resist getting the popcorn out.
  • Spunjji - Thursday, November 19, 2020 - link

    Yeah, I've been disappointed to see a few familiar names howling with rage at this one.

    That said, the Intel shills are clearly here too - just under new aliases, as seems to be customary.
  • vaddieg - Thursday, November 19, 2020 - link

    Andrei, why haven't you used 'sudo powermetrics' for chip power introspection? AC Wall measurement doesn't seem to be very accurate
  • Spunjji - Thursday, November 19, 2020 - link

    I'd like to see that, too.
  • ricebunny - Thursday, November 19, 2020 - link

    Anandtech please clarify which compilers and platforms you are using. I do hope you are using the Intel compiler for Intel chips?

    The same Tiger Lake chip scored 20% less in this review than it did 2 months ago. This destroys the credibility of your results.
  • Spunjji - Thursday, November 19, 2020 - link

    Only in the SPEC 2017 benches, which they explicitly noted aren't running with the full suite...

Log in

Don't have an account? Sign up now