Hacker News new | past | comments | ask | show | jobs | submit login
Year old iPad runs x86_64 in emulation faster than the Surface natively (twitter.com)
95 points by doener 7 days ago | hide | past | favorite | 68 comments

The headline here seems misleading:

(1) It's an iPad CPU running x86_64 code in emulation, but it's running macOS, not iPadOS. This is not an iPad, which AFAIK can't run x86_64 code in emulation.

(2) It's a two-year-old chip, not a one-year-old one. :)

The whole thing is a little weird; if I'm understanding it correctly, they ran the Windows ARM version of Geekbench natively on the Surface X, and ran the macOS x86_64 version of Geekbench on the ARM-based Developer Transition Kit hardware and it still performed competitively. So Apple's CPUs are pretty good and Rosetta 2 does really good instruction translation, but I don't think we can draw a lot of conclusions from the specific numbers either way. (Even setting aside complaints about Geekbench as a benchmark, commercially available ARM Macs when they start shipping are almost certainly not going to based on the DTK CPU/hardware, just like the original Intel DTK compared to the first Intel Macs.)

Yes, the next macbook will probably feature something faster than the 2-year old ipad chip?

Yes, all benchmarks right now are highly questionable. Still, it’s understandable everyone is curious - we’ll just have to wait and see.

It seems that there's no Geekbench for Windows ARM. So it's comparing between emulated benchmarks?


>(2) It's a two-year-old chip, not a one-year-old one. :)

The original title I put in was "2 Year old ...". Hacker News just deleted the 2 automatically after posting.

I don't understand the point of comparing an A12Z running x86-64 emulation to the Microsoft SQ1 processor which is also an ARM processor but nowhere as beefy as the A12Z. I am not familiar with the Surface Pro X but if Microsoft is doing x86-64 emulation on it I am not surprised it's not as fast as the A12Z.


It makes fans of Apple feel better about how much more superior their platform is over the others. That's mostly the gist of it in most of these debates - the comparisons are usually pretty meaningless and cherry-picked to make a writers favorite brand look better.

The more interesting comparison is just how much better the ARM macs will be from the x86 ones in comparable workloads and power consumption. Seeing the Apple ARM cores being able to show all they can with proper cooling and less power limitations is something we've been waiting for awhile.

I think what it really shows is that Microsoft hasn't put much effort into making their ARM cpu device competitive.

There will always be fanboys for Apple and anyone else, but this is effectively a 2 year old CPU winning on a benchmark where I don't think anyone thought it would. That suggests that when the real hardware comes out that it will make Microsoft's ARM efforts look downright anemic.

Of course, I might be wrong, but based on Apple's history, I think I'll be proven right by January.

This leads to the next question - why is Microsoft's device so slow? Are they doing this on purpose or due to a technical limitation? Or some other reason?

It's probably not fair to blame Microsoft for the performance of a chip developed by Qualcomm.

At one point Qualcomm developed it's own high performance custom ARM cores, but after a huge fumble on their transition to 64 bit, they just gave up and started licensing stock ARM cores.

ARM is getting ready to license a higher performance extra-big core to anyone interested, so there should be some movement there in the not too distant future.

However, you can definitely blame Microsoft for making a bad call on emulating legacy Win32 software.

They tried to transition to ARM based WindowsRT without supporting legacy x86 software at all. Even today, Windows on ARM doesn't support legacy x86 64 bit programs.

> they just gave up and started licensing stock ARM cores.

This is not correct. Their CPUs are heavily modified, just not very well executed.

The problem is that Qualcomm puts most its efforts on other parts of the soc, such as the stupid ML coprocessor. Now you have like 5-6 different DSP-like coprocessors.

Edit: oh, and 5G. They spent $$$$ to be the first with working 5G modems that nobody needs.

I don't know how tongue-in-cheek that comment is but I am curious what the performance of these new ARM-powered Macs will be. I do photography on the side and Adobe Lightroom on the iPad Pro runs just about as fast (if not faster for some rendering and processing tasks) as it does on my MacBook Pro. How the heck this is possible is beyond me but it gives me hope that photo and video editing on an ARM-powered MacBook Pro could be faster, maybe even significantly faster, than my i9-powered MacBook Pro.

See my comment at the same level as yours. 2020 iPad Pro is about the same as an i7-7700k. It’s insanely fast at a much much much lower TDP.

It's true, but for some workloads.

I wonder, and I really wish it's gonna be a game changer, how well they will behave on jobs that go on for hours or days at full CPU load.

Agreed. I’m going to wait for someone else to find out that before me. My mac is mostly a terminal emulator though so I’m quite happy to lose some watts and not gain much for it.

Yes and no. It’s a confidence builder. A better comparison is an A12Z in an iPad Pro has similar synthetic benchmark result as an i7-7700k. And it feels like it in daily use. So when Apple drop desktops out with this class of CPU we’re not going to be left SOL with something as weak as a gnat’s fart.

This seems to be a misunderstanding. Microsoft isn’t doing emulation. The iPad emulation of x86 on arm is faster than the surface arm without emulation.

This is a demonstration of how powerful Apple’s current silicon is in absolute terms, and it also shows that it can run x86 code at more than adequate speed for many use cases.

Not necessarily. The DTK is in a Mac Mini chassis so perhaps it simply has better cooling than the passively-cooled Surface X and therefore can run at higher power?

Other articles have shown that it is in fact under-clocked compared to the iPad.

You're still ignoring the cooling factor

Even if present, how much do you think that affects it, and how does it change the outcome?

I’d say not much, and not at all. Even if cooling is a factor the outcome still has the same meaning.

Apple silicon is way ahead, and emulation is excellent to the point of being a non-issue.

Cooling and power+thermal throttling are the limiting factor in many devices. A look at the overclocking tools for your platform will usually show what the limiting factor on clock speed is at a given moment, and it's usually either power or thermal in my experience.

A devkit that can supply more watts of electricity and remove more watts of heat would definitely have an advantage.

A most fair comparison would require using the same type of case, power, and cooling for both CPUs.

Sure but you are ignoring the disadvantage that the dev kit isn’t running native code.

And unfortunately we can't quantify that disadvantage without controlling for all the other variables.

Sure we can’t produce a precise number yet.

But we can clearly see the order of magnitude, and it is quite obviously impressive in both of the ways already stated.

iPads are faster than Mac mini’s even with the same thermal differential.

The thermal issue does nothing to dismiss this truth.

That Apple silicon is way ahead isn’t new: https://twitter.com/elkmovie/status/1174003718188142592

No. Apple’s SoC is far superior to whatever is in the Surface.

For those interested in how Apple's current iPhone chip fares against Qualcomm without the active cooling found in the Dev Kit:

A13 Big Cores:

>In the mobile space, there’s really no competition as the A13 posts almost double the performance of the next best non-Apple SoC.

Last year I’ve noted that the A12 was margins off the best desktop CPU cores. This year, the A13 has essentially matched best that AMD and Intel have to offer – in SPECint2006 at least. In SPECfp2006 the A13 is still roughly 15% behind.


A13 Little Cores:

>In the face-off against a Cortex-A55 implementation such as on the Snapdragon 855, the new Thunder cores represent a 2.5-3x performance lead while at the same time using less than half the energy.


A13 GPU:

The differences to Qualcomm’s Adreno architecture are now so big that even the newest Snapdragon 865 peak performance isn’t able to match Apple’s sustained performance figures. It’s no longer that Apple just leads in CPU, they are now also massively leading in GPU.


I don't understand all the hype here. It did better on one half of the test by way less than 100 points, and got beat on the other half by over 300.

Not that impressive.

To be fair they're both 8 core big.LITTLE processors but the Apple chip is running the benchmark under x86 emulation and thus isn't able to use asymmetric cores, only the four performance ones.

I was under the impression that Rosetta 2 is install-time translation and thus not emulation at all...

Even if you ignore the problem of self-modifying code, a completely static translation of x86 binaries is impossible. Things get hard real quick when indirect branches are involved, so you have to rely on a runtime solution when ahead of time solutions won’t work.

It's both. Install-time translation, plus runtime emulation for code that the system didn't get to translate (JIT, newly compiled applications, runtime loaded or obfuscated code, applications running from non-local storage, etc).

What is the difference supposed to be anyway?

It's user-mode emulation of x86_64 whether the translation happens just-in-time or ahead-of-time. AOT just can afford to spend more time optimizing out redundant emulation operations in each basic block.

It's not emulating privileged modes or devices, but neither is Microsoft's emulation (or user-mode QEMU for that matter.)

I was under the impression that the said system works more like a compiler than a interpreter.

Sure, no emulator serious about performance uses an interpreter these days. Even full-system emulators.

I think it does both, but I'm not familiar with what Geekbench 5 actually does and whether it can be fully translated ahead of time. Regardless the translation doesn’t seem to be able to make use of both sets of cores.

Maybe Apple will release more detailed information in the near future. I'm curious to learn what the differences between Rosetta 2 and Microsoft's emulation technique are.

Yeah. Presumably more information will also trickle out from the developers who are using the DTKs.

Trickle, of course. The details are still under NDA.

It's more a lesson that just because someone has 74K Twitter followers because they were an early Twitter adopter and got pulled into the default onboarding suggestion algorithm years ago doesn't mean they actually know what they're talking about.

I see 25% reduction in single core performance, 45% on multicore performance, according to ipad pro benchmarks [1]

Nothing to be too happy about

[1] https://www.macrumors.com/2020/03/23/ipad-pro-2020-a12z-benc...

For emulation of x86.. that's not too shabby at all seeing as the Surface Pro X emulation is a much harder hit. Keep in mind that the iPad result is based on use of 8 total asymmetric cores, which is kind-of an issue for apps like these so it only uses the 4 high-power cores.

In either case, this system in emulated state will out-perform a number of laptops they have sold like the 12 inch MacBook, with emulation. Thats impressive. The Rumored machines they will ship add two more high performance cores and likely eat way more power. I wouldn't be shocked to see it be as fast as current macs in emulation.

(Under emulation.)

Isn't the first rule of access to developer toolkits "thou shall not benchmark, and thou shall not publish benchmarks"?

Although, granted, I'd imagine the new Macbooks having newer, faster chips than the developer toolkits once they finally launch.

Yes, and Apple was very explicit about not benchmarking this machine.

*2 year old iPad; HN ate the beginning of the title

2 year old iPad chip running inside a development kit with proper cooling, compared against a Surface Pro X which is essentially a fanless tablet

yeah, agreed, it's a weird cherry-picked comparison. Smells like marketing.

It's a weird comparison, but I don't think it's "cherry-picked" as much as sort of general "this is an interesting if fuzzy data point about Apple CPU performance." It's not too likely Apple is secretly feeding numbers to Steve Troughton-Smith. He's a somewhat (in)famous developer known for picking apart Apple OS releases and documenting the undocumented -- I suspect he's probably not on Apple PR's Christmas card list. :)

I think the "in emulation" bit uncertain. I think this got AOT translated to armv8. Also not very apples-to-apples comparison.

I’m not sure what you mean; could you clarify?

> I think the “in emulation” bit uncertain. I think this got AOT translated to armv8.

The benchmark is measuring the performance of Geekbench running in Rosetta, which is the emulation layer allowing x86_64 code to run under Apple’s ARM chip. Are you saying you don’t trust that the benchmark is actually running under Rosetta, or are you claiming that Rosetta doesn’t count as “true” emulation because it performs some translation AOT?

> Also not very apples-to-apples comparison.

How so? The benchmark is between Apple’s flagship tablet CPU and Microsoft’s flagship tablet CPU, with the additional handicap that Apple’s chip is running the code through an emulation layer in order to demonstrate the impressive performance of Rosetta. How is the comparison unfair?

> The benchmark is measuring the performance of Geekbench running in Rosetta, which is the emulation layer allowing x86_64 code to run under Apple’s ARM chip

According to Apple it's not an emulation layer at all, though.

They themselves call it "translation technology" [1] and the term "emulation" is nowhere to be found.

I'm not sure why tech outlets insist on calling it an emulation layer, was it called that in the WWDC presentation?

[1] https://www.apple.com/newsroom/2020/06/apple-announces-mac-t...

Honestly at this point I don’t even really understand the difference between emulation and translation at the app level.

My intuition is that “emulation” generally means an entire system rather than individual apps running on a system?

With translation the cod will be translated before it starts running. With emulation it's more like a VM, where each instruction run is translated to the other archs counterpart. In other words, consider an imaginary program that has one big loop. Let's say it has 100 instructions. With translation you get another program with some instructions of the similar size (same order of magnitude). With emulation you interpret each instruction as it goes, so if your loop has 1B iterations you pay the penalty of emulating (converting on the fly) 1B times (very simplified). So translation is better for performance.

"Emulation" usually means reconstructing the hardware of a specific architecture in software (See BSNES for a good example).

Rosetta translates binary code of an app from one instruction set to another.

Not apple to apple because we're still comparing binaries for different architectures. Apple kit is running x86_64 binary and Surface is running an arm binary. The hardware comparison should be done once geekbench is recompiled to armv8.

Hows it compare with a real world example like Cinebench rather than "Geekbench" scores which never seems to actually correlate to the real world?

One question I have, is: couldn't they get the IOS geekbench to work on the Developer kit?

Hmmm... these are two different benchmarks.

A sign of things to come…

But my Surface Pro X can run Linux inside WSL2. Apps made arm32, arm64, and x86 32bits just works, both Windows and Linux terminal apps, or GUIs if I install an X11 Server.

And I can install whatever application I want, and not what Apple allows me to. It might be a bit slower, but it is more flexible.

Uhhh... how is this any different? Thy have stated that the download options on these macs will be any source you want, ARM and Intel Mac apps, plus docker support for linux and etc. It's the same stack.

These ARM Macs will also run iOS apps too.

While the DTK can't, Apple has announced that they will be offering virtualization on Apple silicon, and Rosetta 2 will take care of the Intel binaries. And they have affirmed that you can always run whatever you like, as the switches to do so are there if you want them.

> And they have affirmed that you can always run whatever you like, as the switches to do so are there if you want them.

I've heard this repeated elsewhere as well, and I'm quite confused about it. Because, Apple also shared this weird screenshot:


The most permissive option is "Reduced Security: Allows any version of signed operating system software ever trusted by Apple to run."

How do you run an OS that Apple never explicitly trusted?

You can turn off secure boot.

True but it's still an iPad. It still feels like you're working with one hand tied behind your back.

It runs macOS.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact