Repolode
aws

aws/aws-graviton-getting-started

A technical guide for running and optimizing software on AWS Graviton (Arm64) EC2 instances, covering migration, builds, languages and managed services.

Stars
1,064
Forks
232
Open issues
4
Last commit
4 days ago

What is it?

This repository is a technical guide for developers and operators running workloads on Amazon EC2 instances powered by AWS Graviton processors, from Graviton2 through Graviton5. It covers how to plan a transition from x86, how to build code for the Arm64 architecture (including recommended compiler flags and feature sets for each Graviton generation), and how to check for runtime CPU features.

The guide is organized by topic. It includes language-specific notes for C/C++, Go, Java, .NET, Node.js, Python, Rust and others, plus sections on containers, AWS Lambda, Linux kernels, operating systems, machine learning frameworks such as PyTorch, llama.cpp and vLLM, HPC, and Spark. A table lists minimum software versions that include Arm64 performance improvements, and a section on known issues describes workarounds such as LSE atomics for PostgreSQL and zlib-ng for compression.

The material is also useful for anyone running code on Arm-based systems in general. It links to a performance runbook, a monitoring tools page, and agent skills that assist with x86-to-Graviton migrations for Java, Python and .NET.

Key features

  • 01Transition guide for moving workloads from x86 to Graviton instances
  • 02Comparison of Graviton2, 3, 4 and 5 core, SIMD, cache and memory specs with recommended compiler flags
  • 03Language-specific build and tuning notes for C/C++, Go, Java, Python, Rust, .NET and more
  • 04Guidance on Lambda arm64 functions, containers, and machine learning frameworks on Graviton
  • 05Known issues with workarounds, such as PostgreSQL LSE atomics and zlib-ng

Use cases

  • Planning and executing a migration of an x86 service to AWS Graviton instances
  • Building and tuning Arm64 binaries for a specific Graviton generation
  • Checking whether a Python, Java or .NET dependency has aarch64 support before migrating
  • Running LLM inference or PyTorch workloads on CPU-based Graviton instances

Things to know

  • The license is unclear (listed as NOASSERTION), so check the repository's license before reusing its content.

Topics

#arm64#aws#cloud#performance-tuning#migration#compilers#ec2#arm#graviton#graviton2

FAQ

What is aws-graviton-getting-started?
A technical guide for running and optimizing software on AWS Graviton (Arm64) EC2 instances, covering migration, builds, languages and managed services. This repository is a technical guide for developers and operators running workloads on Amazon EC2 instances powered by AWS Graviton processors, from Graviton2 through Graviton5. It covers how to plan a transition from x86, how to build code for the Arm64 architecture (including recommended compiler flags and feature sets for each Graviton generation), and how to check for runtime CPU features.
Is aws-graviton-getting-started free to use? What license does it have?
aws-graviton-getting-started is open source under the Other license. Check the license terms before using it in commercial products.
Is aws-graviton-getting-started still maintained?
Actively maintained. The last commit to aws-graviton-getting-started was on Nov 3, 2026.
What can I use aws-graviton-getting-started for?
Planning and executing a migration of an x86 service to AWS Graviton instances Building and tuning Arm64 binaries for a specific Graviton generation Checking whether a Python, Java or .NET dependency has aarch64 support before migrating Running LLM inference or PyTorch workloads on CPU-based Graviton instances
Where can I get aws-graviton-getting-started?
The source code and installation instructions are on GitHub: https://github.com/aws/aws-graviton-getting-started

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects