Arm Performance Libraries

Arm Performance Libraries provide optimized standard core math libraries for high-performance computing applications on Arm 64-bit AArch64-based processors.

A commercial version of Arm Performance Libraries is available as part of Arm Allinea Studio. The commercial version is compatible with Arm Compiler for Linux and GCC compilers, comes with technical support from Arm, and includes optimized libraries for multiple Arm-based micro-architectures.

Commercial (Arm Allinea Studio) version:
Evaluate  Buy  Download

A free, GCC-built version of Arm Performance Libraries is available for Neoverse-based servers.

Free GCC build of ArmPL for Neoverse:

Routines and benchmarks

BLAS, LAPACK, FFT, and Math and String routines

The library routines, which are available through both Fortran and C interfaces, include:

  • BLAS:  Basic Linear Algebra Subprograms (including XBLAS, the extended precision BLAS).
  • LAPACK: A comprehensive package of higher level linear algebra routines. LAPACK 3.10.0 is supported in the latest version of Arm Performance Libraries.
  • FFT functions: A set of Fast Fourier Transform routines for real and complex data using the FFTW interface.
  • Sparse linear algebra.
  • libamath - libamath contains AArch64-optimized versions of the following scalar functions, in both single and double precision: exponential (expexp2), logarithm (loglog2log10), and error functions (erferfc). In addition, optimized single precision sine and cosine functions are included (sinfcosfsincosf). Linking to libamath ahead of libm will ensure use of these optimized functions.

    libamath also contains vectorized versions (Neon and SVE) of all of the common math.h functions in libm. These functions are used by Arm C/C++ Compiler whenever possible.
  • libastring - libastring provides a set of replacement string.h functions which are optimized for AArch64: bcmpmemchrmemcpymemmovememsetstrchrstrchrnulstrcmpstrcpystrlenstrncmpstrnlen. Linking to libastring ahead of libc will ensure use of these optimized functions.

Arm Performance Libraries are built with OpenMP across many BLAS, LAPACK, FFT, and sparse routines to maximize your performance in multi-processor environments.


User tasks

Port your applications to Arm

Arm provides two porting guides that describe how to port and optimize your applications for Arm (and Arm SVE), in the context of High Performance Computing (HPC):

Find community-ported applications

Application, mini-application, and benchmark porting recipes are available in the Arm GitLab repository.

The Arm GitLab repository is maintained by Arm, but it is community driven so anyone can join and contribute.

Arm GitLab repository

Get support

  • Square with an ellipses in (speech bubble).
  • Arm server and HPC community

    Join the Arm Developer community to ask questions, get answers, share ideas, and read the latest blogs.

    Server and HPC community
  • The top half of a human.
  • Get support

    The support team are ready to help if you have any questions or problems using Arm Performance Libraries.

    Contact support