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

  • thunng8 - Sunday, November 22, 2020 - link

    What are the cinebench results of the 4800u running at 15w. All I see is the 4800u running benchmark it is well over 40w.

    For example here: https://www.notebookcheck.net/The-Ryzen-7-4800U-is...

    Power usage peaks at 57w and in games the laptop maintains 49w indefinitely. That is very very far from 15w.

    Anandtech has actually test the m1 with fan in the mini and it uses 15w in cinebench and scores 7700. The non active cooled MacBook Air uses 7w when thermally throttled (this is in the 30min run) and scores approx 6000
  • BushLin - Sunday, November 22, 2020 - link

    notebookcheck are testing a 4800U in 25W mode and stressing CPU+GPU simultaneously.
    Here's accurate charts of the 4800U in 15W mode.
    https://www.anandtech.com/show/16084/intel-tiger-l...
  • thunng8 - Sunday, November 22, 2020 - link

    Here is some actual figures for a Renoir system.

    https://forums.anandtech.com/threads/new-apple-soc...

    Constrained to 25w, it score 6600.

    While m1 scores 7700 at 15w.

    https://twitter.com/i/web/status/13287773335122780...

    The 4800u would be using 40w+ to outperform the m1 at 15w.
  • BushLin - Sunday, November 22, 2020 - link

    Results are for a different, 4700U CPU, posted by some random person.
    Why not simply look at the results from the article you're leaving a comment on? Which are more likely to be taken under controlled conditions.
  • thunng8 - Sunday, November 22, 2020 - link

    I am looking for actual performance results at 15w, not boosted to 40w or higher which all 4800u seems to do.
  • BushLin - Sunday, November 22, 2020 - link

    Didn't take much effort to find the 15W M1 and 15W 4800U have very similar power draw, if that's what you're actually looking for.
    They both boost above their rated power in a similar way.

    https://images.anandtech.com/graphs/graph16252/119...

    https://images.anandtech.com/doci/16084/Power%20-%...
  • thunng8 - Sunday, November 22, 2020 - link

    I was looking for specific cinebench results which you alluded to was running faster than M1 while using the same power. The few videos I have seen shows the 4800U laptops fan spinning up to maximum over most of the entire Cinebench 10min run while the M1 fans (in the macbook pro) was not audible and the air has no fan at all.
  • BushLin - Monday, November 23, 2020 - link

    https://images.anandtech.com/graphs/graph16252/119...
  • Ppietra - Monday, November 23, 2020 - link

    BushLin
    But those aren’t the real power draw numbers for the M1 and 4800U laptops in the tests. The 4800U 15W is just a reference, no measurements were made for the power consumption during Cinebench. The 4800U can draw much more power than 15W.
    As for the Mac mini the power draw shown is for the all computer, not just the processor. If you had bothered reading thunng8 links you would see that M1 power consumption probably tops at 15W during Cinebench.
    I have seen tests where a 4800U laptop consumes almost 3 times more power than a MacBook Pro with a M1 chip, during Cinebench. It’s the power consumption of the laptops not the chips but the difference is gigantic.
  • BushLin - Tuesday, November 24, 2020 - link

    The power measurement for both systems is at the wall rather than just the SoC and the numbers available from this site, under controlled conditions, show a similar power draw under a multithreaded workload. There is a difference in depending on factors like AVX instructions but the 4800U in 15W mode is demonstrably pulling similar amounts of power to an M1 in 15W mode running a similar workload.
    The 4800U can be run in a higher, 25W power mode but not on the pages I've linked as it wasn't used to get the cinebench results on this article.

Log in

Don't have an account? Sign up now