Remix.run Logo
Aissen 5 hours ago

Spoiler is in the conclusion:

> Yes, it is absolutely key to build your app as ARM, not to rely on Windows ARM emulation.

okanat 4 hours ago | parent | next [-]

Is this actually surprising? Once you use stuff like vectorization you want to get as much performance out of a system. If you're not natively compiling for a system, you won't get any performance.

Using AVX2 and using an emulator have contradictory goals. Of course there can be a better emulator or actually matching hardware design (since both Apple and Microsoft actually exploit the similar register structure between ARM64 and x86_64). However, this means you have increased complexity and reduced reliability / predictability.

vintagedave 4 hours ago | parent | prev | next [-]

Author here - have to say, thanks for reading all the way to the end, you don't always see people do that ;)

I put a spoiler at the top too, to avoid trying to make people read the whole thing. The real bit is that chart, which I think is quite an amazing result.

You're right re building. We're a compiler vendor, so we have a natural interest in what people should be targeting. But even for us the results here were not what we expected ahead of time.

Aissen 3 hours ago | parent [-]

Having written an emulator, the conclusion was a bit less surprising. It's also probably not definitive, as it might depend on the specific hardware (and future emulator optimizations); you even say in your blog that the hardware you use is not the hardware Microsoft targeted.

qingcharles 2 hours ago | parent | prev [-]

Is Chrome for Windows compiled in ARM too or does it use the Windows under emulation?

The reason I ask is that I believe Windows Chrome is (like many Windows binaries) compiled with lots of the advanced CPU features disabled (e.g. AVX512) because they're not available on older PCs. Is that true?