4 ms·
I think the "in emulation" bit uncertain. I think this got AOT translated to armv8. Also not very apples-to-apples comparison.
by kissiel 6y ago
I think the "in emulation" bit uncertain. I think this got AOT translated to armv8. Also not very apples-to-apples comparison.
- NobodyNada 6y agoI’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?
- qayxc 6y ago> 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-transition-to-apple-silicon/ https://www.apple.com/newsroom/2020/06/apple-announces-mac-t...
- olliej 6y agoHonestly 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?
- kissiel 6y agoWith 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.
- ch_sm 6y ago"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.
- kissiel 6y agoNot 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.