7 ms·
Have been waiting for years for an ARM-based laptop, I wouldn't have ever thought that the x86 emulation would be this good though. Apple seriously deserves hu
by neilsense 6y ago
Have been waiting for years for an ARM-based laptop, I wouldn't have ever thought that the x86 emulation would be this good though.
Apple seriously deserves huge credit for this, after both Microsoft and Google were screwing around on arm for years doing nothing useful.
I do hope both Microsoft and Google come out with competitors, though, because it'll help the market massively.
- Rillen 6y agoWhat specifically made you wish for ARM? Is there something specific with ARM which is not possible in X86? I personally looking for factors like: low Power, high Performance, snappiness and 4k display support. I have no real wish for ARM because it doesn't matter what architecture i use if it is compatible to what i need. If Apple would have brought out M1 x86, it would also have helped the market.
- bayindirh 6y agoIt broadens people's mind. Especially software designers and low-level programmers. There's a lot of software (esp. low level libraries, scientific applications, etc.) which is optimized (sometimes hand-optimized) for a specific architecture. Not every software is released with "compile -> test -> release" cycle. Some resources on a CPU is extremely limited (e.g. dividers) and using them is expensive. Alternative architectures changing these balances or being more efficient in some workloads is game-changing. This is what GPUs did for AI, ML, Simulation and Maths domains. e.g.: Eigen's speed increases 300% when compiled with optimizations enabled. Especially its solvers show this performance shift. So, if ARM can change these balances and be more efficient under some workloads, it can carve a space for itself besides x86 and GPUs. This is why Apple's efforts and M1 is so important. When there's only one architecture (x86, CUDA, etc.), innovation stagnates, people's imagination shrinks.
- swiley 6y agoThe M1 mac isn't the first ARM based PC, and it's not the first popular one. Most Linux users have had plenty of ARM based PCs for a while now, often (at least for me) they've outnumbered the x86 based ones. Most distros and OSS have dealt with the issues on arm already.
- bayindirh 6y ago> The M1 mac isn't the first ARM based PC, and it's not the first popular one... However, it's the first popular and heavily backed ARM CPU which can compete with high end x86. > Most distros and OSS have dealt with the issues on arm already. I also use a lot of ARM based SBCs for a long time but, running a scientific application fast is not the same thing as booting Linux or making it reasonably performant/stable. My day job and personal research is involved with supercomputers a lot. So I live in parallel applications / architectures. There are certain scientific applications which run considerably faster in previous generation hardware when compared to current-gen ones, because they're heavily tuned for that generation's memory subsystem latencies and IPC characteristics (fetch, retire capacities and pipeline latencies to be exact). This sometimes implies that the code contains proper hints or hand-tuned asm for speed-critical sections. Eigen is a very good example of this optimization. It optimizes itself during compilation by compiling the architecture optimized paths with hints in the code and help of the compiler. So, having an ARM CPU which can surpass x86 will make these communities to take note of it. I'm not sure how Eigen performs on M1 for example (will see soon enough), or other software packages which are optimized for x86 extensively. These software packages will start to get optimizations for M1 or Apple silicon since it's pretty popular amongst scientists due to its POSIX nature and hardware quality. At the end of the day; yes, it's a glorified Raspberry Pi, but with looks and performance of a supercar, so it'll attract a different kind of user base and development effort.
- kube-system 6y agoThere's 'popular', and then there's mainstream. It looks like AS is set to become mainstream. A mainstream ARM desktop platform is going to be revolutionary in that it will force mainstream commercial developers to include ARM compatibility.
- socialdemocrat 6y agoI always wanted ARM too because x86 is of no interest to hobbyist using e.g. microcontrollers. I like learning low level stuff but never felt like it was worth the investment to properly learn the oddball x86 assembly code. I have an Amiga background where I did some assembly coding on Motorola 68000. I absolutely hated the x86 hardware platform when O switched over. It felt like everything was a kludge. Too few registers. Weird segment registers etc. ARM looks much nicer and you can use same instruction set on tiny micro Controllers.
- tachyonbeam 6y agox86-64 is much nicer to work with than 32-bit x86, but I agree. I hope that AMD comes out with an ARM offering. I would love to see ARM PCs.
- Rillen 6y agoSo the assembly code is different? Is it easier, more logical?
- socialdemocrat 6y agoIt is useful to differentiate between easy and hard as well as simple and complex. x86 has instructions which can make many thing “easy” But they are not simple. ARM is far more logically consistent. x86 is really messy and complex but often have lots of convenient instructions. So I would say ARM is easier to learn and it is easier to learn ARM code as everything by is more logical, regularized and consistent.
- jug 6y agoMicrosoft's x86 emulation on ARM is nothing like this, which is what is so surprising.
- m_mueller 6y agoNote: It's not emulation but ahead-of-time cross-compilation. This has some limitations, most notably x86 VMs are not possible. From my POV, the future of business laptops could be such powerful ARM macs around 1000-1300$ (i.e. quite low priced) coupled with cloud based Windows 10 instances to get all software running. This would then create some pressure on software developers to port over their software at least to Windows-on-ARM which could feasibly run in a local VM.
- varispeed 6y agoI wonder if this ahead-of-time cross-compilation is a way of avoiding licensing issues? It seems like one cannot just make x86 CPU without Intel's agreement, but I couldn't find a source explaining this well. I also can't see why someone cannot do a clean room implementation of the instruction set. Some people wrote to me that it may be to do with patents on some instructions, but I wonder how valid such patents are if they describe an obvious way to do a certain thing (I have not seen the patents, so this is my speculation only).
- justincormack 6y agoI think its just that it works better for most applications, where you run them multiple times. JIT is going to be slower under emulation anyway. Also note that Rosetta uses the native libraries where available, so as soon as you call into say graphics libraries that is running native, not emulating. (I believe most of the relevant patents just expired; they don't emulate the vector instructions that are newer).
- deleted 6y ago[deleted]
- Tagbert 6y agoRosetta 2 is not emulating an Intel CPU. It recompiles the binary to ARM when you run the app for the first time. It also does on-the-fly compilation of JITed code, too. Actual emulation would be much slower.
- samfisher83 6y ago
- perardi 6y ago“Binary translation” to be pedantic, but, I agree. I was an Adobe user through the PPC->Intel transition, and that worked OK, though my subjective remembered experience says non-x86 apps felt a bit pokey. (This was a while ago, and I could very well be wrong, but we had PPC and Intel iMacs at my college newspaper, and the G5 felt faster in my memory.) But that was also a transition to a dual-core Core 2 Duo machine, which was obviously unambiguously faster than a single-core G5, so there was computational room to spare to deal with the translation. It was not a done deal that x86->ARM would as smooth of a transition, as we figured ARM would be a bit faster, but not a generational leap. But here we are, Apple really managed to make binary translation work well this time, and Intel applications are plenty snappy. Which is impressive. (I also wonder how much of that is having a really fast SSD so the translation of the app is not as I/O bound.) And I don’t think legacy x86 apps will be as much of a thing this time around. Back in the PPC days, lots of applications were built using Metrowerks CodeWarrior toolchain, which didn’t come across the divide, so big applications had to scramble to get everything into Xcode. This time, if an application made it past the evolutionary bottleneck of needing to be 64-bit only for Catalina, it’s probably close to ready to go for ARM.
- spijdar 6y agoI wonder if this is actually new technology at all, or if it is literally Rosetta 2. QuickTransit, the technology behind Rosetta (1), was also licensed to many vendors for <x arch> -> <y arch> translation. The POWER version was called "PowerVM Lx86". It seems to have achieved similar performance to Rosetta 2, but was discontinued in the early 2010s. The wikipedia page for QuickTransit has, since at least 2015, had a totally unsubstantiated claim that "most" of the original QuickTransit team now works for Apple (and ARM)[0]. Makes me wonder. [0] https://en.wikipedia.org/w/index.php?title=QuickTransit&oldid=664532833 https://en.wikipedia.org/w/index.php?title=QuickTransit&oldi...
- Cu3PO42 6y agoThis time around it’s not a pure software solution. ARM has a significantly weaker memory model than x86, which makes translation generally difficult and/or slow. It appears the M1 natively supports the x86 memory model which makes the rest of the task substantially easier.
- spijdar 6y agoThis actually isn't new -- POWER processors have this exact same hardware support for emulating x86. It was even present until (the unreleased) POWER10. POWER chips up to and including 9 support "SAO", Strong Access Ordering mode. It is mentioned in exactly one sentence in the CPU manual: "The POWER9 core supports the SAO mode defined in Power ISA." This feature appears to solely have existed for QuickTransit's translation software, as POWER has a weaker memory model than x86. Linux briefly mentions this in the man (2) page for mprotect, stating: PROT_SAO (since Linux 2.6.26) The memory should have strong access ordering. This feature is specific to the PowerPC architecture (version 2.06 of the architecture specification adds the SAO CPU feature, and it is available on POWER 7 or PowerPC A2, for example).
- Causality1 6y agoIndeed. I'd happily buy an ARM based laptop but I just can't get go of my legacy software.