Explore the Scalable Vector Extension (SVE)

Scalable Vector Extension (SVE) is a vector extension for AArch64 execution mode for the A64 instruction set of the Armv8-A architecture. Unlike other SIMD architectures, SVE does not define the size of the vector registers, but constrains it to a range of possible values, from a minimum of 128 bits up to a maximum of 2048 in 128-bit wide units. Therefore, any CPU vendor can implement the extension by choosing the vector register size that better suits the workloads the CPU is targeting. The design of SVE guarantees that the same program can run on different implementations of the instruction set architecture without the need to recompile the code.

Many instructions of the extension use predicate registers to mask the lanes for operating on partial vectors. The SVE instruction set also provides gather loads and scatter stores, truncating stores, and signed/unsigned extended loads.

The SVE2 (Scalable Vector Extension version two) is a superset of SVE and Neon, and allows for more function domains in data-level parallelism. SVE2 inherits the concept, vector registers, and operation principles of SVE.


Port your applications to SVE

The Porting and Optimizing HPC Applications for Arm SVE guide supplements the Porting and Optimizing HPC Applications for Arm guide, as well as the other Porting and Tuning resources Arm provides to help you get started with porting your applications to Arm. The Porting and Optimizing HPC Applications for Arm SVE guide focuses on optimizing for the Arm Scalar Vector Extension (SVE).


Arm Compiler for Linux

Commercial C/C++/Fortran compiler and math libraries from Arm for Linux user-space HPC applications with complete SVE and SVE2 support.

Compile for SVE

Arm Instruction Emulator

Analyze your SVE or SVE2 code by emulating SVE (or SVE2) instructions binaries using Arm Instruction Emulator.

Learn more

Resources

Introducing SVE

Scalable Vector Extension (SVE) is the next-generation SIMD instruction set for Armv8-A (AArch64). This topic introduces the new architectural features it brings.

Learn more

A sneak peek into SVE and VLA

An overview of SVE with information on the new registers, the new instructions, and the Vector Length Agnostic (VLA) programming technique, with some examples.

Learn more

Application to Machine Learning

In this white paper, code examples are presented that show how to vectorize some of the core computational kernels that are part of machine learning system.

Learn more

SVE vs
SVE2

This topic is introduces the Scalable Vector Extension version two (SVE2) for the Arm AArch64 architecture. It describes the extension concept, main features, application domains, and how to develop programs with SVE2.

Learn more

Related information


FAQ

Information regarding SVE tools

Q: How do I get access to SVE tools?
Download Arm Compiler for Linux and Arm Instruction Emulator to compile and run SVE code on non-SVE platforms.

Q: Where can I get support when emulating SVE instructions with Arm Instruction Emulator?
Contact Arm support and we will get in touch.