As far as computer architectures go, ARM doesn’t have anything to be ashamed of. Since nearly every mobile device on the planet is powered by some member of the reduced instruction set computer (RISC) family, there’s an excellent chance these words are currently making their way to your eyes courtesy of an ARM chip. A userbase of several billion is certainly nothing to sneeze at, and that’s before we even take into account the myriad of other devices which ARM processors find their way into: from kid’s toys to smart TVs.
ARM is also the de facto architecture for the single-board computers which have dominated the hacking and making scene for the last several years. Raspberry Pi, BeagleBone, ODROID, Tinker Board, etc. If it’s a small computer that runs Linux or Android, it will almost certainly be powered by some ARM variant; another market all but completely dominated.
It would be a fair to say that small devices, from set top boxes down to smartwatches, are today the domain of ARM processors. But if we’re talking about what one might consider “traditional” computers, such as desktops, laptops, or servers, ARM is essentially a non-starter. There are a handful of ARM Chromebooks on the market, but effectively everything else is running on x86 processors built by Intel or AMD. You can’t walk into a store and purchase an ARM desktop, and beyond the hackers who are using Raspberry Pis to host their personal sites, ARM servers are an exceptional rarity.
Or at least, they were until very recently. At the re:Invent 2018 conference, Amazon announced the immediate availability of their own internally developed ARM servers for their Amazon Web Services (AWS) customers. For many developers this will be the first time they’ve written code for a non-x86 processor, and while some growing pains are to be expected, the lower cost of the ARM instances compared to the standard x86 options seems likely to drive adoption. Will this be the push ARM needs to finally break into the server and potentially even desktop markets? Let’s take a look at what ARM is up against.
A Double Edged Sword
At the risk of oversimplifying the situation, ARM has become the go-to for small devices due to the inherent efficiency of the architecture. ARM chips consume much less energy, and in turn don’t get nearly as hot, as their x86 peers. This is a perfect combination for small, battery-powered devices as the increased energy efficiency not only allows for longer run times, but means the processor usually doesn’t need anything more than a passive heat spreader to keep cool (if even that).
But the efficiency of ARM processors isn’t as compelling in the performance driven world of desktop and server computing. In these applications, energy consumption has generally not been a deciding factor when selecting hardware. Modern desktop processors can consume nearly 100 watts at load, even higher for server chips. Nobody denies this is an enormous amount of power to consume, but it’s largely seen as a necessary evil.
That being said, one might wonder why ARM laptops haven’t become popular at this point. Unfortunately there’s another factor at work: software compiled for x86 won’t run on ARM hardware. Under Linux this isn’t much of a problem; there are several distributions which have been adapted and recompiled for ARM processors, thanks in no small part to the popularity of devices like the Raspberry Pi. But under Windows, the situation is very different. While Microsoft introduced ARM-compatible versions of Windows a few years back, it doesn’t change the fact that the decades of Windows software that’s already on the market can’t be used without resorting to emulation.
The AWS Opportunity
Issues with legacy software support may be keeping ARM out of the general purpose computing market, but it wasn’t a problem for mobile operating systems like Android or iOS which launched with ARM processors and had no back catalog of software to worry about. This software “clean slate” might not be possible within the Windows-dominated desktop and laptop markets, but that’s not the case for AWS customers.
For developers who have been using Linux AWS instances (which the vast majority are), the ARM environment will not be significantly different from what they’re used to. In fact, if their software is written in an interpreted language like Python they should be able to move their existing code over to the ARM servers as-is. If it’s written in C or another compiled language it will need to rebuilt from source due to the architecture change, but in most cases will require little to no modification.
In short, moving AWS customers from x86 to ARM won’t cause the same “culture shock” as it would on other platforms. In exchange for lower operating costs, customers will likely be willing to make whatever minimal changes may be required when moving from x86 Linux to ARM Linux.
Of course, from Amazon’s perspective getting more customers onto ARM servers means reduced energy consumption in their data centers. It’s a win-win for everyone involved, and provides a fantastic opportunity to show ARM has earned its place in the server market.
Amazon’s Own Hardware
While there are already a few ARM servers on the market, Amazon decided to go with their own in-house custom silicon for their AWS implementation. Called Graviton, the system is the end result of Amazon’s purchase of Israeli chip manufacturer Annapurna Labs in 2015. It utilizes the now several year old Cortex-A72 microarchitecture, and features 16 cores clocked at 2.3GHz.
Early benchmarks for Graviton indicate that performance is about on par with Intel’s low-end server processors, and that it specifically struggles with single-threaded tasks. This isn’t terribly surprising considering the age of the Cortex-A72 and the fact that Amazon is careful not to promise there’s actually any performance gains to be had when switching to ARM. Of course, benchmarks can be misleading and we’ll need to wait until more developers get experience with Graviton to see what its real-world performance is like.
It should also be said that the first generation of Graviton is really just to test the waters. Subsequent generations of the hardware, with a potential upgrade to a more modern ARM microarchitecture, would have a huge impact on performance. For example the Cortex-A76 is designed for laptop applications and offers over twice the performance of the older A72.
One Small Step
With Amazon’s introduction of ARM servers, a whole new generation of developers are going to get first hand experience with a non-x86 architecture in arguably the most seamless way possible. Nuances will be learned, limits will be pushed, and shortcomings will be overcome. In time these brand-new ARM developers may want to get a laptop or even desktop machine that has the same architecture as the platform they’re deploying their code on. With any luck, that’s when the free market will kick in and start offering them at competitive prices.
Or not. It could be that the hit in performance when switching to ARM isn’t enough to make up for the price reduction, and AWS customers don’t bite. No matter which way it goes, it’s going to be interesting to watch. The results of Amazon’s ARM experiment could end up determining if the ubiquitous chip that powers our myriad of gadgets stays firmly in our pockets or ascends into the cloud.