Arm Compiler for HPC

The latest Arm Compiler for HPC release version is reported at the top right of this page.

To download and install the latest version of Arm Compiler for HPC, log in to silver.arm.com/browse and follow the steps given in the installation instructions.

Details on What's New, and links to the Release Notes and Documentation are provided below.

Arm Compiler for HPC

Version 18.2

Released: March 22, 2018

  • Arm Compiler for HPC: 18.2 March 22, 2018

    What's new in 18.2

    Arm Compiler for HPC contains the following packages:

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

    New features and enhancements

    Arm C/C++/Fortran Compiler 18.2:

    • License management is now switched on by default. Please refer to Arm Allinea Studio licensing for more information about licensing.

    • SIMD math library 'libsimdmath.so' now provides the same set of functions for targeting Vector Length Agnostic (VLA) SVE instructions as it provides for ARM Advanced SIMD instructions. For example, a loop invoking 'double sin(double)' can be auto-vectorized with calls to a VLA implementation of 'sin', which is provided in 'libsimdmath.so'.
      'libsimdmath.so' has increased coverage of vectorized routines from math.h and GLIBC math.h.
      Please refer to Vector math routines for more information about this feature.

    • Debug information has been added for Fortran adjustable arrays and imported modules.

    Arm Performance Libraries 18.2:

    • FFT performance improvements. Improvements have been made to a selection of FFTW routines in the library. Users should see enhanced performance for a wide range of transform sizes for 1D complex-to-complex transforms in single and double precision via the basic interface. Improvements have also been made to the advanced interfaces for complex-to-complex, real-to-complex and complex-to-real transforms in single and double precision for transforms of any dimensionality. From this release users are advised to target the FFTW interface in Arm Performance Libraries rather than the FFT routines documented in the Arm Performance Libraries Reference Manual.

    • Thread tuning for level 1 BLAS routines *AXPY, *AXPBY, *SCAL, *COPY. Where possible the number of threads used for these routines may be throttled, compared with the number of threads requested, in order to improve performance.

    Refer to the Release Note for details of bug fixes and further information.

    • Release Note
    • EULA
    • Documentation
  • Arm Compiler for HPC: 18.1 January 17, 2018

    What's new in 18.1

    Arm Compiler for HPC contains the following packages:

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

    New features and enhancements

    This release contains the following new features and enhancements:

    Arm Compiler 18.1

    Redhat 7 support is now provided as a single package, rather than having individual packages for each point release

    Compiler flag documentation (output with --help, the armflang manpage and the online documentation) have been simplified, by no longer documenting PGI-style Fortran flags when these flags have an exact GCC-style equivalent flag. Although no longer documented, the PGI-style flags are still supported as in previous releases.

    A new flag -fsimdmath enables vectorization of some scalar libm functions, by automatically replacing calls to these functions with a vectorized form inside of vectorized loops.  These vectorized forms are included in a new library (libsimdmath.so), which is included in the release and automatically linked in during compilation.

    License management for Arm Compiler is available as a default-off feature for beta testing.  If you wish to try this feature in your environment, please contact your Arm representative.

    The OpenMP runtime library (libomp.so) has been improved for platforms supporting the ARMv8.1-a architecture. Two versions of this library are included with the release, with the most appropriate library selected automatically.

    Debug information has now been enabled for module variables. With this change, users can now print/access these variables whilst debugging. We also generate debug information for modules even if they contain variables only.

    Arm Performance Libraries 18.1

    Optimizations for very small double precision real matrix-matrix multiplication, improving DGEMM and DGEMM_BATCH performance. Optimizations for complex Hermitian and symmetric matrix-matrix multiplication for Cavium ThunderX2.

    • Release Note
    • EULA
    • Documentation
  • Arm Compiler for HPC: 18.0 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
    • EULA
    • Documentation
  • Arm Compiler for HPC: 1.4 August 17, 2017

    What's new in 1.4

    Arm Compiler for HPC contains the following packages:

    • Arm C/C++/Fortran Compiler v1.4
    • Arm Performance Libraries v2.3.0
    • GNU GCC 7.1

    New features and enhancements

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

    • Arm C/C++/Fortran Compiler 1.4:
      Support for some gfortran flags in armflang:
          -ffree-form
          -ffixed-form
          -ffixed-line-length-0
          -ffixed-line-length-132
          -ffixed-line-length-none
          -ffree-line-length-0
          -ffree-line-length-132
          -ffree-line-length-none
          -fconvert={native|swap|little-endian|big-endian}

      Compiler-rt runtime libraries are included.

      Support for '-mcpu=native' flag.  This will cause the compiler to automatically detect the CPU it is being run on and optimize accordingly. This supports a range of ARMv8-A based SoCs, including ThunderX2.


    • Arm Performance Libraries 2.3.0:
      A new version of the library that is supported with the Arm C/C++/Fortran Compiler.

      There is a new naming scheme to distinguish between 32-bit integer and 64-bit integer versions. These will be suffixed "_lp64" and "_ilp64" respectively. The existing library names will continue to be provided, but should now be considered deprecated and will be removed in a future version.

      The datatype used to describe "complex" numbers in the C headers has been changed to avoid clashes with the standard "complex" type modifier that may be included by using "complex.h" as well as "armpl.h". Instead Arm Performance Libraries now uses types called "armpl_singlecomplex_t" and "armpl_doublecomplex_t" to describe single and double precision complex variables.

      AArch64 implementations for Cortex-A53 and X-Gene 1 have been removed from this release. Please contact support-hpc-sw@arm.com if you have a HPC use case that requires these implementations.


    • GNU GCC 7.1:
      This package has been updated from the previously included 6.1 version. Arm Performance Libraries builds are now compatible with GCC 7.1 rather than the 6.1 version in the previous release.

    • Packaging: RPMs
      The Ubuntu supported version has been upgraded to 16.04.
    • Release Note
    • EULA
    • Documentation
  • Arm Compiler for HPC: 1.3 June 29, 2017

    What's new in 1.3

    Arm Compiler for HPC contains the following packages:

    • Arm C/C++/Fortran Compiler v1.3
    • Arm Performance Libraries v2.2.0
    • GNU GCC 6.1

    New features and enhancements

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

    • Arm C/C++/Fortran Compiler 1.3:
      Beta support for Fortran compilation using the new armflang front-end.
      Fortran 77, 90, 95 and 2003 are supported, as is OpenMP 3.1 (excluding
      target offloading). Support for the Armv8 SVE extension for Armv8-A AArch64. Added support for UDOT/SDOT - 8-bit dot-product instructions, which are optional in Armv8.2A.

    • Arm Performance Libraries 2.2.0:
      Performance and memory usage improvements. All optimized varieties of the Arm Performance Libraries are now included. The user should load the correct module file for the most optimal library for their platform.

    • Packaging: RPMs
      The RPMs shipped for Redhat distributions are now signed by Arm's HPC GPG key. This key can be downloaded from: https://developer.arm.com/-/media/files/keys/GPG-PUB-KEY-ARM-HPC SW-TOOLS.PUB and imported by running: % rpm --import GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB
    • Release Note
    • EULA
    • Documentation
  • Arm Compiler for HPC: 1.2 June 01, 2017

    What's new in 1.2

    Arm Compiler for HPC contains the following packages:

    • Arm C/C++ Compiler v1.2
    • Arm Performance Libraries v2.1.0
    • GNU GCC 6.1

    New features and enhancements

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

    • Arm C/C++ Compiler 1.2:
      Arm C Language extensions for SVE are now implemented. Documentation is available online at: https://developer.arm.com/docs/100987/latest/arm-c-language-extensions-for-sve

    • Arm Performance Libraries 2.1.0:
      Performance and memory usage improvements. Support for LAPACK 3.7.0. All optimised varieties of the Arm Performance Libraries are now included. The user should load the correct module file for the most optimal library for their platform.
    • Release Note
    • EULA
    • Documentation
  • Arm Compiler for HPC: 1.1 February 16, 2017

    What's new in 1.1

    Arm Compiler for HPC contains the following packages:

    • Arm C/C++ Compiler v1.1
    • Arm Performance Libraries v2.0.1
    • GNU GCC 6.1

    New features and enhancements

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

    • Various bug fixes.
    • Release Note
    • EULA
    • Documentation
  • Arm Compiler for HPC: 1.0 December 09, 2016

    What's new in 1.0

    Arm Compiler for HPC contains the following packages:

    • Arm C/C++ Compiler v1.0
    • Arm Performance Libraries v2.0
    • GNU GCC 6.1

    New features and enhancements

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

    • The first release of Arm's C/C++ Compiler for HPC.

    • The Arm Performance Libraries optimized for generic AArch64. These provide BLAS, LAPACK and FFT routines optimized for execution on 64-bit Arm. Please note that there are more fully optimized builds for different micro-architectures available as individual downloads.

    • A build of GNU's GCC 6.1 release provided for convenience.
    • Release Note
    • EULA
    • Documentation