Arm Performance Libraries

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

Note:  Arm Performance Libraries is also available in Arm Compiler for Linux.

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.11.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 - Linux

Latest version: 23.10

Use of the standalone 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.

Download - Apple MacOS

Latest version: 23.10

Download - Windows

Latest version: 23.10

Windows 11

Tested with Microsoft compiler version 19.36

arm-performance-libraries_23.10_Windows.zip 218.52 MB

Install - Linux

To install Arm Performance Libraries:

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

    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.

Install - Apple MacOS

To install Arm Performance Libraries:

  1. Mount the disk image by double clicking the icon of the downloaded package, or by running from a terminal:

    hdiutil attach <package_name>.dmg

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

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

    /Volumes/<package_name>_installer/<package_name>_install.sh <options>
    <options> can be one or more of:

    Option
    Description
    -y Automatically accept the EULA
    (the EULA does not display).
    --install_dir=<location> Install to the given directory.
    Use this option if you do not have required privileges.
    -h 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 'y' 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_dir option.

    in case you selected -y and want to read the EULA later, it is available at:
    <install_dir>/arm-performance-libraries_<version>/license_terms/license_agreement.txt

Install - Windows

To install Arm Performance Libraries:

  1. Unpack and extract the zip file:

    • Locate the downloaded zip file in the Windows File Explorer.

    • Double click on the file, and then click on the "Extract all" button at the top of the File Explorer.

    • In the pop-up window, select a location to unpack Arm Performance Libraries into on your system, and click on Extract.

  2. Update your environment variables:

    • Using the Windows Search feature, search for "System Properties". Click on "Best Match".

    • In the System Properties window click on "Environment Variables".

    • Add a new environment variable called ARMPL_DIR, which should have the value

      <install location>\arm-performance-libraries_23.10\armpl_23.10
      where <install location> is the location in which you unpacked Arm Performance Libraries in step 1 above.

    • Next, add  %ARMPL_DIR%\bin  to the list of directories in the PATH environment variable.

    • Read the enclosed Release Notes and examples to find out how to link your application to the library in a command terminal. Users wishing to use Arm PL from within MSVC are referred to Microsoft's online documentation.

Documentation