Explore the Scalable Vector Extention (SVE)

Scalable Vector Extension (SVE) is a vector extension for AArch64 execution mode for the A64 instruction set of the Armv8 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.

More about SVE
Why is SVE is useful for HPC?

Arm C/C++/Fortran Compiler

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

Tutorial

Arm Instruction Emulator

Run SVE binaries on existing Armv8-A hardware.

Learn more »

Arm Code Advisor

Simple, actionable advice to tune your HPC application on Arm. Combines static and dynamic information to produce actionable insights.

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

Arm ARM SVE Supplement

This supplement describes the Scalable Vector Extension to the Armv8-A architecture profile.

Learn more



FAQ

Information regarding SVE tools

Q: How do I get access to SVE tools?
Download Arm Compiler for HPC and Arm Instruction Emulator to compile and run SVE code on non-SVE platforms. Get Arm Code Advisor to see actionable insights and advice for how to optimize your code.

Q: Does my current installation of Arm Compiler support SVE instructions?
Arm C Language extensions for SVE are implemented in Arm Compiler versions 1.2 and later.

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