At AWS re:Invent‘s “Monday Night Live” presentation, Amazon unveiled AWS Graviton, the name of Amazon’s custom Arm-based processors which can be deployed by users in EC2 instances.
Amazon acquired semiconductor development startup Annapurna Labs in 2015, after working with the company to develop AWS Nitro System. This offloaded EC2 system tasks from the main CPU to external chips, to allow the main CPU to be used for client computing. Amazon started considering a custom CPU offering after the acquisition, AWS global infrastructure vice president Peter DeSantis said during the presentation.
Amazon EC2 A1 instances, which are powered by Graviton processors, are available immediately in the US East (N. Virginia), US East (Ohio), US West (Oregon), and Europe (Ireland) regions. Of the five instance sizes presently on offer, users can select 1 to 16 vCPUs, with each vCPU paired with 2GB of RAM, for up to 32GB. (Despite the naming convention, there is no SMT on A1 instances, therefore, these are physical CPU cores.) On-demand pricing starts at $0.0255 for a1.medium. Amazon touts A1 instances as providing “up to 45% cost savings for scale-out and Arm-based workloads.”
How do I get started with Arm on AWS?
Because of the architectural differences between Arm and x86-64, some adjustments may need to be made to get your existing workloads to operate on A1 instances. At launch, Amazon Linux 2, Red Hat Enterprise Linux (RHEL), Ubuntu, and ECS optimized machine images are available, with additional distributions forthcoming. As Amazon notes, “Most applications that make use of open source software like Apache HTTP Server, Perl, PHP, Ruby, Python, NodeJS, and Java easily run on multiple processor architectures due to the support of Linux based operating systems.”
As such, if you use primarily open source packages, use applications in scripted languages, or compile your own applications from source, getting started on A1 should be easy. Anything outside of those three categories is unlikely to be as easy, as there is no binary compatibility between x86-64 and Arm.
SEE: FAQ: What Arm servers on AWS mean for your cloud and data center strategy (TechRepublic)
Likewise, while there is every reason to believe Graviton is as performant–in terms of raw computational ability–as Intel’s Xeon processors, there may be some encumbrances to attaining that level of performance right out of the gate. Both JIT and traditional (ahead-of-time) compilers on Arm may not yet be fully optimized, which can lead to bottlenecks.
CloudFlare, which uses Qualcomm Centriq Arm processors, published their experiences earlier this year optimizing jpegtran for use on that platform. Because of problems with how gcc handles intrinsics on ARM, the unoptimized program was running at about half the speed compared to a Xeon Silver 4116 CPU. However, after optimization it found that jpegtran was about 1.3 times faster and 6.5 times more power efficient.
For Python, moving your workloads to Arm may be challenging if your workloads rely extensively on libraries which are wrappers for C code, as these will require recompilation, and may need retooling.
The end of Intel’s dominance of the server market
Earlier this month, Amazon announced EC2 instances powered by AMD EPYC processors, positioned as a lower-cost alternative to Intel Xeon-powered instances. With AMD’s new Zen microarchitecture, the company has become competitive in the server market for the first time in years. The availability of this option, as well as Amazon’s Arm CPUs, brings more choice to AWS than previously available, and threatens Intel’s hegemony in the server market.
The big takeaways for tech leaders:
- Amazon announced AWS Graviton, a custom Arm-based CPU which is used for Amazon EC2 A1 instances. This is the second non-Intel CPU offering in EC2 this month.
- Migrating to Arm-powered servers is easier if you use common open-source software packages, though as the platform is not as mature, programs may require optimization for comparable levels of performance.