Free Arm Performance Libraries

Arm Performance Libraries provides optimized standard core math libraries for high-performance computing applications on Arm processors. This free version of the libraries provides optimized libraries for Arm® Neoverse™ N1-based Armv8 AArch64 implementations that are compatible with various versions of GCC. You do not require a license for this version of the libraries.

Note:  A commercial version of Arm Performance Libraries is available by purchasing an Arm Allinea Studio license. Arm Allinea Studio licensees have access to technical support, additional libraries tuned for other Arm-based microarchitectures, and additional tooling (compiling, debugging, and profiling). For more information, see Arm Allinea Studio.

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 3.9.0 - a comprehensive package of higher level linear algebra routines.
  • 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 (exp, exp2), logarithm (log, log2, log10), and error functions (erf, erfc). In addition, optimized single precision sine and cosine functions are included (sinf, cosf, sincosf). 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: bcmp, memchr, memcpy, memmove, memset, strchr, strchrnul, strcmpstrcpy, strlen, strncmp, strnlen. 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 in order to maximize your performance in multi-processor environments.

Arm Performance Libraries is supported on all leading Linux distributions: RHEL, SLES, and Ubuntu.

Downloads 

Latest version: 21.0.0

Use of the free of charge version of Arm Performance Libraries is subject to the terms and conditions of the applicable End User License Agreement (“EULA”). A copy of the EULA can be found in the 'license_terms' folder of your product installation.

Install

To install Arm Performance Libraries:

  1. Extract the downloaded package and change directory into the resulting director:

    tar -xvf <package_name>.tar
    cd <package_name>

    Replace <package_name> with the full name of the downloaded package.

  2. Run the installation script as a privileged user and pass any options to configure the installation:

    ./arm-performance-libraries_<version>_*.sh <options>
    Where <options> can be one or more of:

    Option
    Description
    -a, --accept Automatically accept the EULA
    (the EULA still displays).
    -l, --list-packages List the installer packages
    -i, --install-to <location> Install to the given directory.
    Use this option if you do not have sudo rights to install to /opt/arm or another central location.
    -s, --save-packages-to <location> Save packages to given directory.
    -f, --force Force an install attempt to a non empty directory.
    -h, --help Display this table in the form of a help message in the terminal.
  3. The installer displays the EULA and prompts you to agree to the terms. Type 'yes' at the prompt to continue.

    The packages are installed to <install_dir>/<package_name>, where <install_dir> defaults to /opt/arm if not explicitly provided using the --install-to option.

Documentation