Arm Performance Libraries Release History

This page describes the changes between releases of Arm Performance Libraries (free variant).

To download and install the latest version of Arm Performance Libraries, see our downloads page.

A licensed version of Arm Performance Libraries is available as part of the Arm Allinea Studio commercial product. For more information, see the Arm Allinea Studio page. To view the release history for the version of Arm Performance Libraries in Arm Allinea Studio, see the Arm Allinea Studio release history.

Arm Performance Libraries

Version 20.2

Released: June 26, 2020

What's new in 20.2

Release summary for 20.2.0

Arm Performance Libraries 20.2.0 is available for the following versions of GCC:

  • GCC 7.1
  • GCC 8.2
  • GCC 9.3

Arm Performance Libraries 20.2.0

Additions and changes:

  • Improved BLAS level 2 performance for symmetric matrices.

  • Implemented improvements to FFT performance, including faster planning.

  • Implemented improvements to the SVE versions of libamath functions, namely
    exp, expf, log, logf, sin, sinf, cos, and cosf.

Resolved issues:

  • Fixed a bug in the LAPACK *POTRF routines that would cause a crash when
    using multiple threads, and when operating on large matrices.

Open technical issues:

There are no issues known at the time of this release.

Release Note for Release History 20.2

Each Arm Performance Libraries package contains Release Notes that refer to the version of GCC supported in that package. To save repetition, one version of the Release Notes is stated below with GCC versions references generalized to {7.1|8.2|9.3}.

To check which version of GCC your package supports, see the RELEASE_NOTES.txt file in <install-directory>/share.

 

Arm Performance Libraries 20.2.0 Release Note
=============================================

Non-Confidential
Copyright © 2015-2020, Arm Limited (or its affiliates). All rights reserved.

Non-Confidential Proprietary Notice
===================================

This document is protected by copyright and other related rights and the
practice or implementation of the information contained in this document may be
protected by one or more patents or pending patent applications. No part of this
document may be reproduced in any form by any means without the express prior
written permission of Arm. No license, express or implied, by estoppel or
otherwise to any intellectual property rights is granted by this document
unless specifically stated.

Your access to the information in this document is conditional upon your
acceptance that you will not use or permit others to use the information for
the purposes of determining whether implementations infringe any third party
patents.

THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO
WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT
OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE DOCUMENT. For the
avoidance of doubt, Arm makes no representation with respect to, and has
undertaken no analysis to identify or understand the scope and content of,
third party patents, copyrights, trade secrets, or other rights.

This document may include technical inaccuracies or typographical errors.

TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR ANY
DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS
OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS DOCUMENT, EVEN IF
ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

This document consists solely of commercial items. You shall be responsible for
ensuring that any use, duplication or disclosure of this document complies fully
with any relevant export laws and regulations to assure that this document or
any portion thereof is not exported, directly or indirectly, in violation of
such export laws. Use of the word “partner” in reference to Arm’s customers is
not intended to create or refer to any partnership relationship with any other
company. Arm may make changes to this document at any time and without notice.

If any of the provisions contained in these terms conflict with any of the
provisions of any signed written agreement covering this document with Arm, then
the signed written agreement prevails over and supersedes the conflicting
provisions of these terms. This document may be translated into other languages
for convenience, and you agree that if there is any conflict between the English
version of this document and any translation, the terms of the English version
of the Agreement shall prevail.

Words and logos marked with ® or ™ are registered trademarks or trademarks of
Arm Limited or its affiliates in the EU and/or elsewhere. All rights reserved.
Other brands and names mentioned in this document may be the trademarks of their
respective owners. Please follow Arm’s trademark usage guidelines at
http://www.arm.com/about/trademark-usage-guidelines.php

Copyright © 2015-2020, Arm Limited (or its affiliates). All rights reserved.

Arm Limited. Company 02557590 registered in England.

110 Fulbourn Road, Cambridge, England CB1 9NJ.

LES-PRE-20349

Confidentiality Status
----------------------

This document is Non-Confidential. The right to use, copy and disclose this
document may be subject to license restrictions in accordance with the terms
of the agreement entered into by Arm and the party that Arm delivered this
document to.

Unrestricted Access is an Arm internal classification.

Product Status
--------------

The information in this document is Final, that is for a developed product.

Web Address
-----------

http://www.arm.com

Contents
========

- Conventions
- Release overview
- Release contents
- Get started
- Support
- Release History

Conventions
===========

The following subsections describe conventions used in Arm documents.

Glossary
--------

The Arm Glossary is a list of terms used in Arm documentation, together with
definitions for those terms. The Arm Glossary does not contain terms that are
industry standard unless the Arm meaning differs from the generally accepted
meaning.

See the Arm Glossary for more information: https://developer.arm.com/glossary.

Release overview
================

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.

Product description
-------------------

The Arm Performance Libraries 20.2.0 package provides optimized
libraries for Arm® Neoverse™ N1-based Armv8 AArch64 implementations that are
compatible with GCC {7.1|8.2|9.3}.

Release Status
--------------

This is the 20.2.0 release of Arm Performance Libraries.

These deliverables are being released under the terms of the agreement between
Arm and each licensee (the "Agreement"). All planned verification and
validation is complete.
The release is suitable for volume production under the terms of the Agreement.

Release contents
================

The following sub-sections detail:
- The component parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations exist at the time of this release.

Deliverables
------------

- Arm Performance Libraries 20.2.0
- Release Notes (this document)

Differences from previous release
---------------------------------

Differences from the previous release of Arm Performance Libraries are detailed
in the following sub-sections.

Additions and changes:
~~~~~~~~~~~~~~~~~~~~~~

Details any new features or components added, or any technical changes to
features or components, in this release.

- Improved BLAS level 2 performance for symmetric matrices.

- Implemented improvements to FFT performance, including faster planning.

- Implemented improvements to the SVE versions of libamath functions, namely
  exp, expf, log, logf, sin, sinf, cos, and cosf.

Resolved issues:
~~~~~~~~~~~~~~~~

Details any technical issues resolved in this release.

- Fixed a bug in the LAPACK *POTRF routines that would cause a crash when
  using multiple threads, and when operating on large matrices.

Known limitations
-----------------

Any issues known at the time of this release are detailed in the following
sub-section.

Open technical issues:
~~~~~~~~~~~~~~~~~~~~~~

There are no issues known at the time of this release.

Get started
===========

For information on how to get started with accessing, setting up, and using Arm
Performance Libraries, see the Arm Developer website:

  https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries

Licensing information
---------------------

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.

You do not require a license to use this Arm Performance Libraries package.

Prerequisites
-------------

If any of the following tools are not already installed by your Linux
distribution, you must install them before installing Arm Performance Libraries:

- Python (version 2.7 or later)
- C Libraries:
   - SUSE and RHEL: glibc-devel
   - Ubuntu:        libc6-dev

Download the product
--------------------

Arm delivers the files through the Arm Developer website:

  https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries

Unpack the product
------------------

The following steps describe how to unpack each constituent part delivered in
this bundle:

1. Relocate the bundle file. Move the .tar files to the directory you want to
   install the product in.

2. Extract the tar file contents using a tar utility:

     tar -xvf <package_name>.tar

Directory structure:
--------------------

The principal directory structure of this release created after unpacking the
bundle, is:

  license_terms/
  arm-performance-libraries_<version>_*.sh
  RELEASE_NOTES.txt

Install the product
-------------------

To install Arm Performance Libraries, run the installation script as a
privileged user and pass any options to configure the installation:

  ./arm-performance-libraries_<version>_*.sh <option> <option>

Some common installation options are:

- For a headless installation and to automatically accept the EULA, use
  the '--accept' option.
- To perform a local install, use the '--install-to <dir>' option.

For a full list of supported installation options, see:

  https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries

The installer displays the EULA and prompts you to agree to the terms. Type
'yes' at the prompt to continue.

All the packages are unpacked to <install_location>/<package_name> with
environment modulefiles available under <install_location>/modulefiles.
The default installation location is /opt/arm/. Local installs have the
same directory structure starting from your chosen installation root.

RPMs
----

The installed packages are shipped as RPMs for RPM based Linux distributions.
These RPMs are signed by Arm's HPC GPG key. The public key can be downloaded
from:

  https://developer.arm.com/-/media/files/keys/GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB

This key can be imported by running:

  rpm --import GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB

More information about Environment Modules can be found at:

http://modules.sourceforge.net

Run the product
---------------

1. Load the environment module.

     module load <install_location>/modulefiles/armpl/20.2.0_gcc-{7.1|8.2|9.3}

2. To generate an executable binary with GCC, compile your program with Arm
   Performance Libraries. Use:

     gcc -I<install_dir>/include -L<install_dir>/lib <-larmpl> -lgfortran -lm [options] -o <binary> <input>

   or

     gfortran -I<install_dir>/include -L<install_dir>/lib <-larmpl> -lm [options] -o <binary> <input>

   where:

   - <-larmpl> is one of: -larmpl, -larmpl_lp64, -larmpl_ilp64, -larmpl_lp64_mp,
     or -larmpl_ilp64_mp.
   - [options] denotes any other GCC compiler options
   - <input> is the source file (or files)
   - <binary> is the application executable to build

3. Run the generated binary <binary>:

     ./<binary>

Examples
--------

Example code can be found at:

<install_location>/armpl_20.2.0_gcc-{7.1|8.2|9.3}/examples

You need to copy this code to a writeable directory and load Arm Performance
Libraries environment module for the examples to build.

For example:

1. Copy the examples somewhere writeable:

     cp -r <install_location>/armpl_20.2.0_gcc-{7.1|8.2|9.3}/examples ./
     cd examples

2. Load the correct environment modules:

     module load <install_location>/modulefiles/armpl/20.2.0_gcc-{7.1|8.2|9.3}

3. Build the examples:

     make

Uninstall
---------

To uninstall Arm Performance Libraries, use your system package management tool
(for example, rpm or yum).

Support
=======

Documentation for using this Arm Performance Libraries package is available on
the Arm Developer website at:

  https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries

Reference documentation for the supported routines in Arm Performance Libraries
is available at:

  https://developer.arm.com/docs/101004/latest

If you have any issues with the installation, content or use of this release,
please create a ticket on https://support.developer.arm.com. Arm will respond
as soon as possible.

These deliverables are being released under the terms of the agreement between
Arm and each licensee (the “Agreement”). All planned verification and
validation is complete. The release is suitable for volume production under
the terms of the Agreement.

Note: Support for this release of the product is only provided by Arm to
partners who have a current support and maintenance contract for the product.

OS
--

This suite is supported on the following Linux platforms:

- AArch64 Redhat 7 and 8
- AArch64 SUSE 12 and 15
- AArch64 Ubuntu 16.04+

Full information about the platforms supported by Arm Performance Libraries is
available on the Arm Developer website:

  https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries

Release history
===============

A full release history (with release notes) for Arm Performance Libraries is
available on the Arm Developer website:

  https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries/release-history