Why is the Scalable Vector Extension (SVE) useful for HPC?
Using the new architectural features, SVE moves beyond Advanced SIMD’s traditional strengths in data-plane processing. SVE not only offers wider vectors, but also provides the following benefits:
- Vectorization techniques can be applied across a wider range of program loops containing complex control flows and data structures.
- Lowering the cost of development for SIMD code that might traditionally have required hand coding.
- Greater fine-grain data parallelism in real-world programs.
Why this is useful for HPC applications?
Rather than specifying a vector length, SVE allows CPU designers to choose the most appropriate vector length for their application and market, from 128 bits up to 2048 bits per vector register. SVE also supports an auto vector-length agnostic (VLA) programming model that can adapt to the available vector length. Adopting this method means you can compile or hand-code your program for SVE once, and then run it at different implementation performance points, while avoiding the need to recompile or rewrite it when longer vectors appear in the future. This reduces deployment costs over the lifetime of the architecture; a program just works 'everywhere' and executes wider and faster. Importantly, this makes programming easier when developing and porting code; ensuring better scalability and compatibility into the future.
Scientific workloads are carefully written to exploit as much data-level parallelism as possible, making careful use of OpenMP pragmas and other source code annotations. Therefore, it is relatively straightforward for a compiler to vectorize such code and make good use of a wider vector unit, should it be available. To the benefit of SVE, HPC clusters are also built with the wide, high-bandwidth memory systems that are necessary to feed a longer vector unit. Furthermore, SVE's instructions are designed to support full floating-point features that are compliant to IEEE754 standard, including half precision floating-point.
Want to evaluate SVE?
Download Arm Compiler for Linux 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.