Release History

This page lists the Arm Allinea Studio release history.

To download and install the latest version of Arm Allinea Studio, see our downloads page and follow the installation steps given on the download page.

Details on Release versions and links to the Release Notes and Documentation of Arm C/C++ Compiler, Arm Fortran Compiler, and Arm Performance Libraries are provided below.

Arm Allinea Studio also includes Arm Forge (Release History) and Arm Performance Reports (Release History). 

For more compatibility information, see our supported platforms topic.

Arm Allinea Studio

Version 19.2

Released: June 07, 2019

What's new in 19.2

Arm C/C++/Fortran Compiler 19.2

New features and enhancements:

  • D-866 : The -insights flag is no longer supported.
  • D-771 : Added experimental scheduler improvements that can give performance benefits on large processors, such as ThunderX2.  By default, the scheduler improvements are disabled. To enable them, include the "-mllvm -misched-favour-latency=true" option at compile time.
  • D-612 : The Fortran 2008 {{ERROR STOP}} statement is now supported.

Bug fixes:

  • H-629 : Fixes a problem where -armpl did not locate the correct include directory.
  • H-585 : Fixes a problem that caused images that were compiled on ThunderX2 platforms but that targeted other platforms to fail when run on those other platforms.
  • H-538 : Fixes a problem that caused a compiler error when using OpenMP Taskloop.
  • H-536 : The performance of the Fortran BACKSPACE statement has been improved.
  • H-527 : Issues using Fortran ISO C-bindings and Arm Fortran Compiler are now resolved.
  • H-525 : Performance of OpenMP ATOMIC in Fortran has been enhanced by using native atomic load/store instructions where possible.
  • H-508 : armflang now correctly displays the source location for vectorisation reports generated by -Rpass, when compiling without using the -g option.
  • H-401 : The compiler now correctly infers template types for SVE datatypes like 'svfloat32_t'.

Arm Performance Libraries 19.2.0

New features and enhancements:

  • D-746 : A new library, libastring, is included by Arm Compiler by default. This library provides optimized versions of a number of common string functions, such as memcpy and memset. libastring is also provided for the GCC compiler, and can be found in $ARMPL_DIR/lib.
  • D-676 : A number of FFT performance improvements have been implemented, especially in single-precision.
  • D-673 : libamath performance improvements including vectorized versions of sin, cos, exp, and log, in both single and double precision.
  • D-671 : Half precision interfaces have been added to libarmpl for matrix-matrix multiplication and FFTs.

    The half precision matrix-matrix multiplication function is called hgemm_. This interface follows the usual *GEMM interface with half precision matrices and floating point scalars.

    The naming scheme for the FFTW interfaces has been extended, such that all functions are prefixed fftwh_. An example of how to use these functions would be based upon:
            /* Include Arm Performance Libraries FFT interface. Make sure you include the header file provided by Arm PL and not the header provided by FFTW3.*/
            #include "fftw3.h"
            /* Declare half-precision arrays to be used */
            __fp16 *in;             fftwh_complex *out;             fftwh_plan plan;
            /* Plan, execute and destroy */
            plan =             fftwh_plan_many_dft_r2c(...);             fftwh_execute(plan);             fftwh_destroy_plan(plan);
Bug fixes:
  • None in this release.

Arm Forge 19.1

Arm DDT new features and enhancements:

  • Support for Arm C/C++/Fortran Compiler up to version 19.2.
  • Fixed an issue where GDB 8.1 would not start on an Ubuntu 16.04 system without libmpfr installed.
  • Support for debugging of IBM Spectrum MPI jobs launched with Spindle.
  • GDB 8.1 is now the default DDT debugger.
  • Support for the GDB 7.10.1 debugger has been removed.
  • Memory Debugging support for PMDK.
  • Support for debugging CUDA 10.0 and 10.1 binaries.
  • Remote connect network traffic is now compressed by default so some actions will now be faster when using this feature.

Arm DDT bug fixes:

  • [FOR-7342] Fixed an issue with memory debugging aligned allocations.
  • [FOR-6659] Clarified information in the user guide about startup issues with OpenMPI 3.0 and 3.1.
  • [FOR-6503] Fixed an issue where variables named "array" in a struct were not evaluated.
  • [FOR-6142] Fixed an issue with memory debug, where the total number of free calls were double counted when using memkind_realloc.
  • [FOR-6049] Fixed an issue with remote client messages when X11 is not available.
  • [FOR-7236] Fixed an issue where MPI auto-detection did not work with HPE MPT 2.18+.
  • [FOR-7195] Fixed an issue that occurs when output brackets are present in the output file argument.

Arm MAP new features and enhancements:

  • Support for Arm C/C++/Fortran Compiler up to version 19.2.
  • Improved GUI performance and reduced memory consumption when viewing large .map files.
  • New CPU metrics for Armv8-A platforms.
  • New CPU metrics for IBM Power9 platforms.
  • MAP now displays stacks from Python code on non-main threads.
  • Architecture information is now stored to the generated .map file.
  • CPU metrics on Power and Armv8-A are now available with a standard Arm Forge license.
  • Support for displaying Caliper instrumented regions (https://github.com/LLNL/Caliper) to Arm MAP. Refer to section 32, 'Performance Analysis with Caliper Instrumentation', in the Arm Forge user guide.
  • Section 24.1 in the Arm Forge user guide has been updated to better describe the CPU instruction metrics available on x86_64, Armv8-A and IBM Power 8 and Power 9 platforms.
  • Remote connect network traffic is now compressed by default so some actions will now be faster when using this feature.

Arm MAP bug fixes:

  • [FOR-6642] Improved unwinding for PGI-compiled binaries on IBM Power systems.
  • [FOR-6414] Fixed an issue that occurs when profiling applications that were statically compiled by the PGI compiler.
  • [FOR-6659] Clarified information in the user guide about startup issues with OpenMPI 3.0 and 3.1.
  • [FOR-5518] Fixed an issue that caused a slowdown of the analysis phase when profiling Python scripts.
  • [FOR-7236] Fixed an issue where MPI auto-detection did not work with HPE MPT 2.18+.
  • [FOR-7195] Fixed an issue that occurs when output brackets are present in the output file argument.

Arm Performance Reports 19.1

New features and enhancements:

  • Support for Arm C/C++/Fortran Compiler up to version 19.2.
  • Architecture information is now stored to the generated .map file.
  • New CPU metrics for IBM Power9 and Armv8-A platforms.

Bug fixes:

  • [FOR-6642] Improved unwinding for PGI-compiled binaries on IBM Power systems.
  • [FOR-6414] Fixed an issue that occurs when profiling applications that were statically compiled by the PGI compiler.
  • [FOR-6659] Clarified information in the user guide about startup issues with OpenMPI 3.0 and 3.1.
  • [FOR-7236] Fixed an issue where MPI auto-detection did not work with HPE MPT 2.18+.
  • [FOR-7195] Fixed an issue that occurs when output brackets are present in the output file argument.

Release Note for Release History 19.2

Arm Compiler for HPC 19.2
=========================
Arm Compiler for HPC 19.2 suite provides a complete compiling environment, with
Arm C/C++/Fortran Compiler and Arm Performance Libraries, to develop and tune
your HPC applications on Armv8-A based platforms. This release includes version
19.2.0 of the Arm Performance Libraries which provides Fortran compatibility
with the Arm C/C++/Fortran Compiler. This release also includes GNU GCC 8.2.0 to
provide the optimal experience on the latest Arm HPC systems when using the Arm
Performance Libraries and GCC.

It contains the following packages:

- Arm C/C++/Fortran Compiler 19.2

  Arm Compiler is a Linux user-space C/C++/Fortran compiler tailored for
  scientific computing, HPC and enterprise workloads. This release includes a
  number of enhancements and bug fixes.

- Arm Performance Libraries 19.2.0

  This release includes multiple Arm Performance Libraries packages, each of which
  are optimized for individual Armv8 AArch64 implementations (Cortex-A72 and
  ThunderX2CN99). Libraries tuned for Kunpeng 920 are no longer provided. This
  release includes builds of the libraries which are compatible with GNU GCC 8.2.0
  as well as the Arm Compiler. We recommend you use the version that matches your
  platform for the best performance. You can also use the generic AArch64
  implementation by running:

  GCC 8.2.0 version:
  % module load Generic-AArch64/Ubuntu/16.04/gcc-8.2.0/armpl/19.2.0

  Arm Compiler version:
  % module load Generic-AArch64/Ubuntu/16.04/arm-hpc-compiler-19.2/armpl/19.2

- GNU GCC 8.2.0

  A build of GNU's GCC 8.2.0 release is provided for convenience and for
  OpenMP/libgfortran compatibility with the Arm Performance Libraries. As a GNU
  tool suite, the GPL-licensed source code can be downloaded separately.

Changes in this Release
=======================
New features and enhancements:

- Arm C/C++/Fortran Compiler 19.2:
  - D-866 : The -insights flag is no longer supported.

  - D-771 : Added experimental scheduler improvements that can give performance benefits on
            large processors, such as ThunderX2.  By default, the scheduler improvements are
            disabled. To enable them, include the "-mllvm -misched-favour-latency=true"
            option at compile time.

  - D-612 : The Fortran 2008 {{ERROR STOP}} statement is now supported.


- Arm Performance Libraries 19.2.0:
  - D-746 : A new library, libastring, is included by Arm Compiler by default. This library
            provides optimized versions of a number of common string functions, such as
            memcpy and memset. libastring is also provided for the GCC compiler, and can be
            found in $ARMPL_DIR/lib.

  - D-676 : A number of FFT performance improvements have been implemented, especially in
            single-precision.

  - D-673 : libamath performance improvements including vectorized versions of sin, cos,
            exp, and log, in both single and double precision.

  - D-671 : Half precision interfaces have been added to libarmpl for matrix-matrix
            multiplication and FFTs.

            - The half precision matrix-matrix multiplication function is called hgemm_.
            This interface follows the usual *GEMM interface with half precision matrices
            and floating point scalars.

            - The naming scheme for the FFTW interfaces has been extended, such that all
            functions are prefixed fftwh_. An example of how to use these functions would be
            based upon:

            /* Include Arm Performance Libraries FFT interface. Make sure you include the
               header file provided by Arm PL and not the header provided by FFTW3.*/

            #include "fftw3.h"
            /* Declare half-precision arrays to be used */
            __fp16 *in;
            fftwh_complex *out;
            fftwh_plan plan;

            /* Plan, execute and destroy */
            plan =
            fftwh_plan_many_dft_r2c(...);
            fftwh_execute(plan);
            fftwh_destroy_plan(plan);


Bug fixes:

- Arm C/C++/Fortran Compiler 19.2:
  - H-629 : Fixes a problem where -armpl did not locate the correct include directory.

  - H-585 : Fixes a problem that caused images that were compiled on ThunderX2 platforms but
            that targeted other platforms to fail when run on those other platforms.

  - H-538 : Fixes a problem that caused a compiler error when using OpenMP Taskloop.

  - H-536 : The performance of the Fortran BACKSPACE statement has been improved.

  - H-527 : Issues using Fortran ISO C-bindings and Arm Fortran Compiler are now resolved.

  - H-525 : Performance of OpenMP ATOMIC in Fortran has been enhanced by using native atomic
            load/store instructions where possible.

  - H-508 : armflang now correctly displays the source location for vectorisation reports
            generated by -Rpass, when compiling without using the -g option.

  - H-401 : The compiler now correctly infers template types for SVE datatypes like
            'svfloat32_t'.


- Arm Performance Libraries 19.2.0:
  - No fixed issues

System Requirements
===================
This suite is supported on the following Linux platforms:

- AArch64 Redhat 7
- AArch64 SUSE 12
- AArch64 Ubuntu 16.04

Installation Instructions
=========================
To install the Arm Compiler for HPC suite, run the installation script as a
privileged user:

% ./arm-compiler-for-hpc-19.2*.sh

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

For headless installation, run the installer with the '--accept' command-line
parameter to automatically accept the EULA.

To perform a local install, run the installer with the '--install-to <dir>'
option.

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

Licensing
=========
Arm Compiler for HPC requires a valid license in order to run. To request a
license, go to:

https://hpc-buy.arm.com/

Once you have obtained a license file from Arm, follow these steps to make it
available for use:

1. Create a directory called 'licenses' within the /opt/arm directory and copy
   your client license file to it.
2. If you are using Arm Forge or Arm Performance Reports, and you don't have a
   separate license for these tools, set the ALLINEA_LICENSE_DIR environment
   variable to point to /opt/arm/licenses.
3. If you have a floating license, add the server license file to the machine
   where Arm Licence Server is installed. Create a directory called 'licenses'
   within the /opt/arm/licenceserver directory and copy your license file to it.
   Restart Arm Licence Server to pick up the new floating license.

Please refer to the Arm Allinea Studio licensing page on the Arm Developer
website for more information about licensing:

https://developer.arm.com/products/software-development-tools/hpc/arm-allinea-studio/licensing

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

Environment Modules
===================
Each installed package has an Environment Module file installed under
/opt/arm/modulefiles. You can add this directory to your
${MODULESHOME}/init/.modulespath file or to your $MODULEPATH environment
variable. For example:

% # For SH or BASH shells:
% export MODULEPATH=$MODULEPATH:/opt/arm/modulefiles


Alternatively you can use the 'module use' command:

% module use /opt/arm/modulefiles

Once your environment has been configured to use the module files, use the
'module avail' command to list the available modules and the 'module load'
command to set up your environment to use them.

The main module file for this release is loaded by running:

% module load Generic-AArch64/Ubuntu/16.04/suites/arm-compiler-for-hpc/19.2

This will load all of the modules belonging to the packages included with this
product with the exception of the Arm Performance Libraries. You can also
module load the individual components:

- Arm C/C++/Fortran Compiler 19.2

  Generic-AArch64/Ubuntu/16.04/arm-hpc-compiler/19.2

- Arm Performance Libraries 19.2.0

  GCC 8.2.0 version:
  <Specific_Core>/Ubuntu/16.04/gcc-8.2.0/armpl/19.2.0

  Arm C/C++/Fortran Compiler version:
  <Specific_Core>/Ubuntu/16.04/arm-hpc-compiler-19.2.0/armpl/19.2.0

- GNU GCC 8.2.0

  Generic-AArch64/Ubuntu/16.04/gcc/8.2.0

More information about Environment Modules can be found at:
  http://modules.sourceforge.net

C Libraries
===========
The compilers included with this suite are built to use the C Libraries
provided by your Linux distribution. If errors such as "ld: cannot find crt1.o"
are reported, you will need to install the libraries on your system.

The package names for these libraries are:

SUSE and RHEL: glibc-devel
Ubuntu:        libc6-dev

Known Issues
============
- Arm C/C++/Fortran Compiler 19.2:
  - H-587 : Non-root installation of Arm Compiler for HPC using the '--install-to' option
            may fail if the 'psmisc' package is not installed. This will be fixed in a
            future release.

  - H-571 : If you have multiple versions of Arm Compiler for HPC installed that depend on
            the same GCC version, running the uninstall.sh script will fail. Instead, remove
            the packages manually, using the Package Manager, or modify the uninstall.sh
            script to prevent removal of the GCC package.

  - H-456 : When using the --install-to option, the installer no longer appends /opt/arm to
            the user-specified path.

  - H-421 : When the uninstaller is run, it does not remove all of the files. It is safe to
            remove the remaining files manually.

  - H-310 : -fsimdmath is incompatible with a dynamic linker optimization known as 'lazy
            binding'.  When using -fsimdmath, Arm recommends that you also add '-z now' to
            the compile/link flags, in order to disable this optimization during linking.
            For more information, see https://developer.arm.com/products/software-
            development-tools/hpc/documentation/vector-math-routines.


- Arm Performance Libraries 19.2.0:
  - No known issues

Documentation and Support
=========================
Refer to the following topics to get started with Arm Compiler for HPC and Arm
Performance Libraries:

Arm C/C++ Compiler:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-cpp-compiler/getting-started

Arm Fortran Compiler:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-fortran-compiler/getting-started

Arm Performance Libraries:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-performance-libraries/getting-started

Refer to the Release History to see the changes between releases:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-compiler-for-hpc/release-history

Access the Arm Fortran Compiler reference manual in /opt/arm/<package_name>/share or online at:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-fortran-compiler/language-reference

Access the Arm C/C++ Compiler reference manual in /opt/arm/<package_name>/share or online at:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-cpp-compiler

Detailed instructions for building many common scientific applications,
benchmarks and libraries using Arm HPC tools are available on the Arm Developer
website:
  - https://developer.arm.com/products/software-development-tools/hpc/resources/porting-and-tuning

Further documentation about all the components can be found online at:
  - https://developer.arm.com/products/software-development-tools/hpc/documentation

If you require support, contact support-hpc-sw@arm.com

Example Code
============
Example code is included in this suite as part of the Arm Performance
Libraries. This code can be found at:

/opt/arm/armpl*19.2.0*/examples

You will need to copy this to a writeable directory and load both the Arm
Compiler and Arm Performance Libraries environment modules for the examples to
build.

EG:

# Copy the examples somewhere writeable:
% cp -r /opt/arm/armpl-19.2.0_*arm-hpc-compiler*/examples ./
% cd examples

# Load the correct environment modules:
% module load Generic-AArch64/Ubuntu/16.04/suites/arm-compiler-for-hpc/19.2
% module load Generic-AArch64/Ubuntu/16.04/arm-hpc-compiler-19.2/armpl/19.2.0

# Build it:
% make

Uninstalling
============
For convenience, this package includes an "uninstall.sh" script at:

/opt/arm/arm-compiler-for-hpc-19.2*/uninstall.sh

This script attempts to uninstall all the packages supplied as part of this
suite. Note that this may not be possible if other packages, outside of this
suite, depend on them. You will need to uninstall the dependant packages as
well.

Please note that, if you use the --install-to option provided by the installer,
you will need to uninstall the packages by manually removing their directories.