The Scalable Vector Extension: Programming Tools and Performance Analysis

The Scalable Vector Extension: Programming Tools and Performance Analysis

Exascale Systems

Information

The Scalable Vector Extension (SVE) is the next-generation SIMD instruction set for Armv8-A. SVE does not specify a vector length and it uses predicates to dynamically select vector lanes. For many developers, this presents an entirely new way of thinking about vectorization. This tutorial will introduce tools from the Arm community for SVE programming and performance analysis, i.e. compilers, scientific libraries, profilers, and debuggers. The content of this tutorial will be notably different from past SVE tutorials as this will be the first time a public SVE tutorial will be taught on SVE hardware. We plan to provide remote access to SVE-enabled CPUs for this tutorial. Hands-on exercises will explore the unique features of SVE and demonstrate their applicability to a range of common programing motifs. This tutorial will demonstrate how to capture high-utility information and present it in meaningful ways, i.e. how much time is spent in application routines, where these routines are called in the source code, and how well the routines vectorize. Attendees will complete the tutorial with a working understanding of SVE and knowledge of how SVE may be used in their applications.