Originally published at: https://tidbits.com/2020/06/09/the-case-for-arm-based-macs/
Rumors of ARM-based Macs continue to appear. Lower power and longer battery life are always cited. But even more important are the business advantages Apple would reap from switching from Intel to ARM. Former Apple engineer David Shayer explains what would be behind such a processor transition.
Originally published at: https://tidbits.com/2020/06/09/the-case-for-arm-based-macs/
A few things:
Apple doesn’t use ARM processor designs. They only license the instruction set; the A-series chips are from-scratch Apple designs. This is what makes it possible for iPhones to so completely outperform contemporary Android phones.
One possibility I haven’t seen mentioned anywhere in the backward compatibility department is that early ARM Macs could include an X86 processor to handle running software written for the old system. This could be built in, or it could be in an external peripheral, functioning in much the way an eGPU does. The Mac Pro could even have such a thing on a PCI Express card or MPX module.
In the past fifteen years, a lot of developers have moved to Mac because it provides an X86+unix environment, which is a huge boon when developing software which will eventually deploy to a cloud environment, where Linux on X86 is king. The differences between BSD and Linux notwithstanding, this has made the Mac the machine of choice for a huge community of web and open source developers. We can even use tools like VMware, Virtualbox, Docker, and Kubernetes to mimic our target deployment environments. Windows has only fairly recently gotten similarly good at this stuff, with the addition of WSL. I have significant concerns that those tools will take quite some time to migrate to and mature on ARM, and any period of time where you can’t do that on the latest and greatest Macs is going to send many devs running to Windows, Ubuntu, or some other Linux.
Well, it’s one reason. Another is that all Android apps execute via a Java-like virtual machine. This has the benefit of allowing apps to run on phones with very different CPU architectures, but that comes with a substantial performance penalty.
I think @JakeRobb makes a very good point about Windows Subsystem for Linux becoming a factor for certain kinds of users leaving macOS behind.
However, Linux for ARM has also improved a lot, the cloud providers (Amazon in particular) have started to support more workloads on ARM targets, and hence support for ARM-based containerisation might improve, but might still be problematic if x86 is still the de facto standard.
Maybe hybrid designs are in the way, with ARM as extension cards… or Intel! (Intel outside ). We’ll see!
Or a hybrid approach, where a handful of custom instructions are added to the ARM core to facilitate efficient emulation. When writing emulators (in the 1980’s, so I’m not sure how relevant these observations are to the modern x86 instruction set) I was often struck by how much of a bottleneck could be created by having to perform just one or two primitives in software that weren’t well-supported by the host instruction set.
Couldn’t agree more.
The article just grazes that point here
While there may be a vocal minority of Mac Windows users, they are probably too few for Apple to care about.
And IMHO that sentence (along with the preceding paragraph) misses the point entirely. It’s not about Windows users with Mac hardware.
It’s about the Mac in general transitioning from being an very open and versatile platform adaptable to in principle almost any use (yep, that’s where we ended up once we had left Classic and PPC behind) to a closed platform more and more locked down to a decreasing number of allowed apps by registered and pre-approved developers, tailored to scenarios that have increasingly more to do with entertainment and for-sale media, than with actual work as in the creation of original hardware and software, scientific endeavor, engineering, etc.
That flexible and versatile Mac came with things like out of the box X11 compatibility, GNU tools (incl. absolute essentials like gcc et al.), easy dual-boot capabilities for Linux and Windows, EFI support, virtualization to allow for essentially anything you could desire, being able to recompile and run a myriad of open source tools from the *nix world. That Mac offered tons of stuff that didn’t directly have anything to do with Apple. But Apple realized there was value in allowing for industry standards. Those that were interested loved that you could do all of that on your Mac. And they gave up having to operate three separate boxes. After all, they had a Mac that did all of it. OTOH, those that didn’t care never had to notice it was there in the first place.
It’s not about Windows. It’s about becoming less of a tool to do “computing” and more of a locked down gadget tailored to do exactly what Apple thinks we ought to be doing with the tools Apple thinks we ought to be using. I was hoping the Mac would stay this versatile tool and Apple could have the iPhone be the gadget it totally controls. Those happy to lead their lives on a phone could happily continue to do that, while those of us who need a real computer to get our work done could continue to use a Mac to do just that. But so far, and to my surprise considering the volume of these rumors lately, I have really seen almost nothing related to the ARM transition to indicate that this level of openness and versatility on the Mac will be preserved. There could well be such a route. But so far hardly any words have been spent on that aspect. Because, again, it’s about far more than just Windows on Mac. I’m hoping we’ll soon learn more about that important aspect of such a transition.
Well said, @Simon. Obviously, we don’t know even if Apple is going to move to ARM, much as it seems likely, much less how this will affect the open-source underpinnings of macOS and the Mac experience. It’s unlikely to affect my personal use of the Mac, but I’m already seeing how Apple’s focus on certain markets to the exclusion of others is driving certain customers away.
My son Tristan is a rising senior at Cornell University, majoring in computer science with a focus on machine learning. The problem he faces is that the systems he needs to use rely on Nvidia GPUs, which aren’t compatible with the Mac basically at all anymore. He’s been trying to figure out how get the GPU he needs for ML work on a Mac, and basically just gave up. Now he’s speccing out what is essentially a gaming PC desktop with an Nvidia GPU (assuming he can ever buy one given that they’re always out of stock, and apparently Nvidia will be releasing a new generation in September anyway). He’ll keep using a Mac for everyday stuff, but he’s already thinking about downgrading his 2017 13-inch MacBook Pro to a new 2020 13-inch MacBook Air since the Mac’s performance is irrelevant if he’s mostly SSHing into a PC anyway.
What I also don’t know is if scientific and engineering groups that have historically relied on the Mac are making a stink about this sort of problem to Apple. We got the Mac Pro only because the high-end video and creative professional worlds made a big deal about how they could no longer use the Mac. And it certainly didn’t hurt that celebrities started to mock the butterfly keyboard. Apple does respond to pressure, albeit slowly and usually without any indication that changes are being made in advance.
I’m looking at this from a strictly business standpoint. Apple has always been an “if you build it, they will come” kind of company. The App Store and Services have been an increasingly successful and significant revenue stream since Steve Jobs first announced it.
Microsoft started selling ARM Surface machines about two years or so ago, and convinced some hardware manufacturers to build them too. And every one of these machines has been a disaster because MS decided that a major selling point would be that the ARM Surfaces would run existing Windows software and apps. They did not optimize their products to run on 64k machines, and did not encourage or incentivize developers to do so. So although the ARM Windows stuff has better battery life, is lighter weight, quieter, etc., everything runs significantly slower, is buggier and more likely to crash on them. So they weren’t, and aren’t, selling.
For years, Apple has been very vocal about wanting to integrate Mac and iOS more closely. I am sure that they have been, and are working with developers to make this transition work. Apple did so when they ditched RISC for Intel. I mentioned in another thread about how p.o.ed I was when it was announced that the brand new 9600, tan version, would not run OSX about a month after I bought it. And that a much cooler looking blue and white new version would have a G5 chip that could run it. I missed out on a lot of upgrades and new products. But I understood why Apple needed to make a change, and why backward compatibility would not be a primary concern for them.
Apple needs developers, especially since revenue from services are increasingly important to their bottom line:
“Apple’s services revenue in fiscal 2019 was $46.3 billion – up from $39.8 billion in fiscal 2018. This segment fared much better than Apple’s products revenue, which was dragged down by a slump in iPhone sales. Total products revenue fell from $226 billion in fiscal 2018 to $214 billion in fiscal 2019.”
And developers need Apple.
With all due respect, Apple could do this at any time, with or without changing CPU architectures.
It is definitely a concern - Apple has been locking down various parts of macOS for several years now - but I wouldn’t assume that using an ARM processor means Macs will just become a desktop iOS platform.
I think it is more likely that Apple will ship a large-format iPad if they want to sell that kind of a product.
I agree with you, @shamino.
Apple probably could do it at any time. But I would claim it would also be much more difficult to do that with the current Intel chipset. The current Mac is at its core still a “PC” based on Intel ISA despite added value from extras like T2. My actual concern here is that moving to a proprietary chipset makes it easier to lock down and rope off. And I’m afraid I would go so far as to say it in fact makes it more likely. I’d be overjoyed to eventually see that I was wrong here, but right now, judging by how Apple has acted these last few years I’m skeptical.
I just stumbled upon Steve Jobs’ WWDC 2005 explanation to developers of the transition process from Power PC chips to Intel. It took Apple five years, and he emphasized this was because they wanted developers to be confident that the process would be seamless for them, that their current apps would run on Intel chips. He stressed how critical power consumption would be to delivering more advanced products. Most important, he stressed that the transition would be gradual and would be phased in over two years. And he revealed that the new system was compiled to be “cross platform by design,” so that OS X apps could work seamlessly between Power PC and Intel Macs.
Tim Cook joined Apple in 1998 as Senior VP Of Worldwide Operations, and oversaw the entire seven year transition process. I’ll bet the farm that he’ll try to make the transition to ARM as seamless as possible as well.
And of course, Steve did his usual outstanding job with the presentation:
The tendency in every article or discussion about Apple switching to ARM is to look at the A series SoC designs. The A13 Bionic is the latest where you’ve got a processor that includes 2 high performance cores, 4 efficiency cores, 4 GPU cores, an 8 core neural engine for ML, an Apple Image processor (HW accelerated H.264/H.265), an LTE modem and the Secure Enclave, plus audio processing. Not to mention the highly advanced power management where each section can be powered down and up but also individual transistors as well. All this on a chip the size of your fingernail. Built from 7nm+ from TSMC.
TSMC is readying 5nm production in 2021. Both AMD and Apple are going to be releasing chips made in those TSMC fabs in the next year or two. Intel is nowhere near ready for 5nm they can barely produce 10nm.
Designing a laptop / desktop SoC is going to be considerably different than designing a mobile device SoC. Apple has the expertise and the ability to do it. But don’t base things on what they have done with the A series chips. But rather look at how fast they advanced creating those A series chips. The radical leaps in capabilities. The constraints on a laptop or desktop SoC are going to be far less difficult. There’s more power and more physical space at the least. The cores are going to be very small. Smaller than AMD / Intel because they don’t need to support all that extraneous legacy x86 junk.
Whatever Apple does, hold onto your seats because it’s going to blow you away when they announce it. They have an amazing opportunity to leap ahead in ways not seen before. If the results are stupendous there won’t be much complaining about ARM compatibility as everyone gleefully scrambles to port their stuff to the new normal.
I don’t know about engineering, but a lot of science has switched from powerful desktops to big or huge linux clusters. The profs in our theory group have gone from maxed out Mac Pros running huge Mathematica and Matlab models to MacBook Airs that talk to the clusters and are easier to carry around.
Interesting article, but one thing I wanted to bring up is that I think the point @das makes about switching foundries is over-simplified:
Sometimes production problems are technical, like Intel’s were. But they can also be political, like tariffs applied to Chinese goods, or natural disasters like the floods that closed Thai hard disk factories in 2011 and caused worldwide shortages. Multiple sources mean that problems with one vendor won’t halt production.
I certainly agree that flexibility in terms of sourcing chip production is something Apple would like. But moving from one chip manufacturer to another cannot quickly happen in response to a flood. As @stottm has pointed out, TSMC is world-leading in terms of its factories. And if something happened to one producing Apple’s chips, it’s not just a case of sending design files to another supplier. It’s unlikely that anyone else would have the capability.
That’s not so say supplier diversification wouldn’t be a benefit if Apple moves away from Intel. But it would be over a longer timescale. If Apple was unhappy with TSMC, for instance, they could invest in some other foundry and hope they can bring them up to a level suitable for manufacturing their chips. But this would likely take months/years.
I’m curious about this part of the article:
The App Store accepts apps encoded in the LLVM intermediate language […] But the LLVM intermediate language isn’t robust enough to translate an Intel app into an ARM app.
While I’m not well-versed in LLVM, I would be very curious about this. After all, Apple hired the creator of LLVM and has heavily invested in it. The ‘intermediate language’ is partially compiled but independent of the processor target.
There are even tools like McSema capable of “lifting” final binaries into the LLVM IR. (I’ve only used that for testing binaries, not re-targeting which seems possible.)
In short, I wonder if it’s technically possible to do exactly that - make many apps on the Mac App Store immediately available on ARM. (Or whatever Apple calls their new chip… maybe A14M for Mac?)
I am going to be (partially) generous to Apple here.
Apple could and indeed may make it possible to have the same apps and OS run on a ‘Mac’ with an ARM chip and a Mac with an Intel chip. Apple have managed such a transition before as others have referred to and Apple therefore have lots of experience doing this including ‘fat binaries’ and CPU translation engines and so on.
I will also say that such an ARM based Mac will have acceptable if not superior performance.
ARM systems are able to run Linux and will be able to run what looks like macOS and hence Unix. What is likely to be sacrificed is true Windows ala Boot Camp compatiblity although there might be virtualisation options.
I cannot see for other than a transition period Apple producing a Mac with both full-blown ARM and Intel chips. Apple might do this for one generation but not I feel for longer than that. Apple or someone might create a PCIe card with an Intel CPU with the ability to boot and run Windows, this would hark back to ancient times like when the Apple II had the option of a Z-80 CPU card.
What I do feel is that this will indeed be yet another step on the iOS-ification of the Mac and the further lock down of what you can do.
Whilst there is some argument supporting this in terms of enhancing security I feel it is the wrong direction for the wrong reasons. Linux and even gasp Windows has managed to improve security without going this route and arguably iOS still has plenty of security flaws despite being extremely locked down in comparison.
Sadly I feel it is more down to laziness and penny pinching. Apple have ‘in the name of security’ over the last few years increasingly been stripping out capabilities and especially ‘foreign’ code i.e. open source. This has been instead of using up-to-date releases of said open source projects. Indeed one could and should expect a company of Apple’s size and alleged abilities to be contributing fixes back to the open source community - a community Apple hugely benefited from for many, many years. Google a ‘smaller’ company do this, in fact we currently have the absurd solution that Google do a significant amount of bug finding for Apple.
Yes from Apple’s perspective your ‘average’ home user is not going to know what they are missing. Yes there are plenty of these types of customers. However whilst I am now long distant in time from the education world I feel that increasingly Macs and Apple devices are becoming less and less suitable for at least the higher education market and also for similar reasons business.
It is definitely becoming less and and less pleasant managing Macs.
It would be ironic in the extreme if ‘just’ after releasing the new Mac Pro 2019 it like the previous Mac Pro 2013 becomes the only iteration of its generation because it is obsoleted by the move to ARM.
No one else seems to mentioned the possibility and rumours do not suggest it but a different route Apple could have taken would have been to add an ARM chip as a co-processor to an Intel based Mac. Not purely for performance reasons but more like the T2 chip to add new capabilities. In particular this approach could have been used to add machine learning cores to the Mac and other similar Apple A series chip capabilities. This approach would have ‘enhanced’ the Mac rather than obsoleting it.
The T1 and T2 chips are in fact ARM chips: https://en.wikipedia.org/wiki/Apple-designed_processors#Apple_T2
Beyond that, I wait to see what’s announced at WWDC.
Regarding ARM based Mac Pros. The volume issue is real - cost is one thing, dedication of engineering resource another - but why would a Mac Pro need to use an Apple ARM chip? Why not “just” replace the Xeon with something like Fujitsu X64FX? It’s good enough for CRAY.