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 18.0

Released: November 09, 2017

What's new in 18.0

Arm Compiler for HPC contains the following packages:

  • Arm Compiler v18.0
  • Arm Performance Libraries v18.0
  • GNU GCC 7.1

New features and enhancements

=============================

Arm Compiler 18.0

  • Increased coverage for Fortran 2003 and Fortran 2008. Please see the following page for more details:
     https://developer.arm.com/products/software-development-tools/hpc/arm-fortran-compiler
  • Runtime performance and stability improvements.
  • Tuning for the host platform is now easily done using '-mcpu=native'.
  • Improved user documentation. The Arm Compiler now includes a man-page and has a more accurate and descriptive '--help' command line option.
  • Added support for vector math routines using -fsimdmath.
  • Implemented more features to improve debugging of Fortran applications.
  •  -ffp-contract=fast is now the default behavior for Fortran workloads.  This allows FP instructions to be fused (eg. into FMA instructions), and makes Arm Compiler consistent with other Fortran compilers (e.g. gfortran). In order to maintain consistency with most C/C++ compilers (e.g. Clang and gcc), C/C++ workloads have a more restrictive default of -ffp-contract=on and only perform this operation in the presence of an FP_CONTRACT pragma.

Arm Performance Libraries 18.0

  • The Qualcomm Falkor core is added as a new microarchitecture target with specific tunings.
  • New support for the following BLAS extension routines, see the Arm Performance Libraries Reference manual for details:
    • *AXPBY and cblas_*axpby for single and double precision real and complex data.
    • *GEMM_BATCH and cblas_*gemm_batch for single and double precision real and complex data. Examples for SGEMM_BATCH and cblas_zgemm batch are provided.
    • *GEMM3M and cblas_*gemm3m for single and double precision complex data.
      Note that these *GEMM3M and cblas_*gemm3m routines are included in the API, but currently offer no performance advantages over the regular *GEMM and cblas*gemm  routines.
  • Support for LAPACK version 3.7.1.
  • A change has been made to C prototypes for Fortran BLAS routines in armpl.h. Where strings are passed as arguments it is no longer a requirement in the interface to pass string lengths after the standard options to the BLAS routines. Note we recommend that users include these string lengths in their calls from C directly to the Fortran interface.
  • Various performance improvements.

Release Note for Arm Allinea Studio - Release History 18.0

Arm Compiler for HPC 18.0
=========================

Arm Compiler for HPC 18.0 suite provides a complete compiling environment, with
Arm Compiler with C/C++/Fortran support and Arm Performance Libraries, to
develop and tune your HPC applications on server-class Armv8-A based platforms.

It contains the following packages:

- Arm Compiler 18.0

  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 18.0

  The Arm Performance Libraries are optimized for AArch64 and for specific
  AArch64 implementations. These provide BLAS, LAPACK and FFT routines
  optimized for execution on 64-bit Arm. Please note that there are multiple
  libraries and module files available for this package. The user should load
  the most optimal library for their platform.

  This release includes multiple Arm Performance Libraries packages, each of
  which are optimized for individual Armv8 AArch64 implementations (Cortex-A57,
  Cortex-A72, Qualcomm Falkor, Cavium ThunderX and ThunderX2CN99). This release
  includes builds of the libraries which are compatible with GNU GCC 7.1 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 7.1.0 version:
  % module load Generic-AArch64/SUSE/12/gcc-7.1.0/armpl/18.0

  Arm Compiler version:
  % module load Generic-AArch64/SUSE/12/arm-hpc-compiler-18.0/armpl/18.0

- GNU GCC 7.1

  A build of GNU's GCC 7.1 release is provided for convenience and for
  OpenMP/libgfortran compatibility with the Arm Performance Libraries. This
  is a GNU tool suite and the GPL source code can be downloaded separately.
  This build is not supported by Arm.


Changes in this Release
==========================

New features and enhancements:

- Arm Compiler 18.0:

  - Increased coverage for Fortran 2003 and Fortran 2008.
    Please see the following page for more details:

      https://developer.arm.com/products/software-development-tools/hpc/arm-fortran-compiler

  - Runtime performance and stability improvements.

  - Tuning for the host platform is now easily done using '-mcpu=native'.

  - Improved user documentation.
    The Arm Compiler now includes a man-page and has a more accurate and
    descriptive '--help' command line option.

  - Added support for vector math routines using -fsimdmath.

  - Implemented more features to improve debugging of Fortran applications.

  - -ffp-contract=fast is now the default behavior for Fortran workloads.  This
    allows FP instructions to be fused (eg. into FMA instructions), and makes
    Arm Compiler consistent with other Fortran compilers (e.g. gfortran).
    In order to maintain consistency with most C/C++ compilers (e.g. Clang and
    gcc), C/C++ workloads have a more restrictive default of -ffp-contract=on
    and only perform this operation in the presence of an FP_CONTRACT pragma.


- Arm Performance Libraries 18.0:

  - The Qualcomm Falkor core is added as a new microarchitecture target with
    specific tunings.

  - New support for the following BLAS extension routines, see the Arm
    Performance Libraries Reference manual for details:

    - *AXPBY and cblas_*axpby for single and double precision real and complex
      data.
    - *GEMM_BATCH and cblas_*gemm_batch for single and double precision real
      and complex data. Examples for SGEMM_BATCH and cblas_zgemm batch are
      provided.
    - *GEMM3M and cblas_*gemm3m for single and double precision complex data.
      Note that these *GEMM3M and cblas_*gemm3m routines are included in the
      API, but currently offer no performance advantages over the regular *GEMM
      and cblas*gemm routines.

  - Support for LAPACK version 3.7.1.

  - A change has been made to C prototypes for Fortran BLAS routines in armpl.h.
    Where strings are passed as arguments it is no longer a requirement in the
    interface to pass string lengths after the standard options to the BLAS
    routines. Note we recommend that users include these string lengths in their
    calls from C directly to the Fortran interface.

  - Various performance improvements.

Bug fixes:

- Arm Compiler 18.0:

  - S-1924: Fixed an issue that prevented the 'TeaLeaf' [1] benchmark from
    compiling correctly.
    [1] https://github.com/UK-MAC/TeaLeaf_ref

  - S-2234: Fixed a code-generation issue with the svst1_scatter() ACLE
    intrinsic when compiled with -O0, that caused the resultant code to
    segfault.

  - C-571 : Fixed an issue whereby invalid compiler insight was generated for
    regions of code that did not have location information.

  - Various bug fixes that improve stability of the compiler and generated code.


- Arm Performance Libraries 18.0:

  - Various minor bug fixes.


System Requirements
===================

This suite is supported on the following Linux platforms:

- AArch64 Redhat 7.3
- AArch64 SUSE 12
- AArch64 Ubuntu 16.04


Installation Instructions
=========================

To install the Arm Compiler for HPC suite, you should run the installation
script as a privileged user:

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

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

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. Extra documentation can be
found, for each installed package, at /opt/arm/<package_name>/share/. Local
installs have the same directory structure starting from the user's 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


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/SUSE/12/suites/arm-compiler-for-hpc/18.0

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 Compiler 18.0

  Generic-AArch64/SUSE/12/arm-hpc-compiler/18.0

- Arm Performance Libraries 18.0

  GCC 7.1.0 version:
  <Specific_Core>/SUSE/12/gcc-7.1.0/armpl/18.0

  Arm Compiler version:
  <Specific_Core>/SUSE/12/arm-hpc-compiler-18.0/armpl/18.0

- GNU GCC 7.1

  Generic-AArch64/SUSE/12/gcc/7.1.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 Compiler 18.0

  - Inlining of Fortran functions/subroutines is potentially unsafe and
    disabled by default.

  - Debugging of Fortran code may be incomplete or inaccurate, specifically
    for:

    - Programs compiled with an optimization level higher than -O0.

    - Debugging of variables defined in a module.

    - Arrays defined as local objects. These do not appear in 'info locals'
      since Fortran objects are not allocated on the stack by default.

    - Arrays with non-constant dimensions such as assumed size/shape arrays,
      or arrays having a stride that is not equal to one. These may not be
      represented correctly in a debugger.

    - OpenMP thread-private variables.

  - The SVE ACLE intrinsics 'svptest_any', 'svptest_first' and 'svptest_last'
    may generate incorrect code when the general predicate (pg) has any value
    other than svptrue_b8(). This will be fixed in a future release.


Documentation
============

Once installed these release notes can be found at:
/opt/arm/arm-compiler-for-hpc-18.0_Generic-AArch64_SUSE-12_aarch64-linux/share/.

The Performance Libraries provides a manual which can be found at:
/opt/arm/armpl-18.0.0*/Doc/.

Documentation about all the components, some examples of installations and
using the tools can be found online at:

https://developer.arm.com/products/software-development-tools/hpc/documentation

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


Example Code
============

There is example code included in this suite as part of the Arm Performance
Libraries. This code can be found at:
/opt/arm/armpl*18.0.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-18.0.0_Generic-AArch64_SUSE-12_arm-hpc-compiler_18.0_aarch64-linux/examples /some/writable/directory/examples
% cd /some/writeable/directory/examples

# Load the correct environment modules:
% module load Generic-AArch64/SUSE/12/suites/arm-compiler-for-hpc/18.0
% module load Generic-AArch64/SUSE/12/arm-hpc-compiler-18.0/armpl/18.0.0

# Build it:
% make


Uninstalling
==========

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

/opt/arm/arm-compiler-for-hpc-18.0*/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.