The ARM Scalable Vector Extension
arXiv:1803.06185 · doi:10.1109/MM.2017.35
Abstract
This article describes the ARM Scalable Vector Extension (SVE). Several goals guided the design of the architecture. First was the need to extend the vector processing capability associated with the ARM AArch64 execution state to better address the computational requirements in domains such as high-performance computing, data analytics, computer vision, and machine learning. Second was the desire to introduce an extension that can scale across multiple implementations, both now and into the future, allowing CPU designers to choose the vector length most suitable for their power, performance, and area targets. Finally, the architecture should avoid imposing a software development cost as the vector length changes and where possible reduce it by improving the reach of compiler auto-vectorization technologies. SVE achieves these goals. It allows implementations to choose a vector register length between 128 and 2,048 bits. It supports a vector-length agnostic programming model that lets code run and scale automatically across all vector lengths without recompilation. Finally, it introduces several innovative features that begin to overcome some of the traditional barriers to autovectorization.
8 pages, 8 figures, IEEE Micro paper
Cited by in corpus (28)
- Snitch: A tiny Pseudo Dual-Issue Processor for Area and Energy Efficient Execution of Floating-Point Intensive Workloads
- A RISC-V Simulator and Benchmark Suite for Designing and Evaluating Vector Architectures
- Constantine: Automatic Side-Channel Resistance Using Efficient Control and Data Flow Linearization
- A Quantitative Analysis and Guidelines of Data Streaming Accelerator in Modern Intel Xeon Scalable Processors
- A transprecision floating-point cluster for efficient near-sensor data analytics
- Sparse Stream Semantic Registers: A Lightweight ISA Extension Accelerating General Sparse Linear Algebra
- Performance Evaluation of a Next-Generation SX-Aurora TSUBASA Vector Supercomputer
- From Merging Frameworks to Merging Stars: Experiences using HPX, Kokkos and SIMD Types
- Base64 encoding and decoding at almost the speed of a memory copy
- Approximating inverse cumulative distribution functions to produce approximate random variables
- Search-Based Regular Expression Inference on a GPU
- SVE-enabling Lattice QCD Codes
- Evaluation of the RIKEN Post-K Processor Simulator
- Application Experiences on a GPU-Accelerated Arm-based HPC Testbed
- Validating UTF-8 In Less Than One Instruction Per Byte
- A matrix math facility for Power ISA(TM) processors
- Adaptable Register File Organization for Vector Processors
- Ara: A 1 GHz+ Scalable and Energy-Efficient RISC-V Vector Processor with Multi-Precision Floating Point Support in 22 nm FD-SOI
- Performance Portable Back-projection Algorithms on CPUs: Agnostic Data Locality and Vectorization Optimizations
- kalis: A Modern Implementation of the Li & Stephens Model for Local Ancestry Inference in R
- Optimized Implementation for Calculation and Fast-Update of Pfaffians Installed to the Open-Source Fermionic Variational Solver mVMC
- Zoozve: A Strip-Mining-Free RISC-V Vector Extension with Arbitrary Register Grouping Compilation Support (WIP)
- Hierarchical Block Multi-Color Ordering: A New Parallel Ordering Method for Vectorization and Parallelization of the Sparse Triangular Solver in the ICCG Method
- Spatter: A Tool for Evaluating Gather / Scatter Performance
- CodeAPeel: An Integrated and Layered Learning Technology For Computer Architecture Courses
- IdSan: An identity-based memory sanitizer for fuzzing binaries
- Scanning HTML at Tens of Gigabytes per Second on ARM Processors
- A fast vectorized sorting implementation based on the ARM scalable vector extension (SVE)