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).
For more compatibility information, see our supported platforms topic.
Arm Allinea Studio
Version 21.1 - Latest update 21.1.3
Released: November 26, 2021
-
Arm Allinea Studio: 21.1 - Latest update 21.1.3 November 26, 2021
What's new in 21.1 - Latest update 21.1.3
Arm Allinea Studio 21.1.2 includes:
- Arm Compiler for Linux 21.1 - Released 24th August 2021
- Arm Forge 21.1 - Released 30th September,2021
- Arm Forge 21.1.1 - Released 29th October, 2021
- Arm Forge 21.1.2 - Released 26th November, 2021
Arm Compiler for Linux 21.1
Additions and changes:
- 21.1:
- Arm C/C++/Fortran Compiler:
- Arm C/C++ Compiler now supports SVE ACLE programming for fixed SVE vector lengths (also known as Vector Length Specific (VLS) programming). For a fixed-width ACLE program, use the 'arm_sve_vector_bits' attribute to control the SVE vector width in the source, and at compile time, specify the SVE vector width using the '-msve-vector-bits=<arg>' compiler option.
Notes:
* '-msve-vector-bits=<arg>' allows the compiler to assume a runtime vector length of exactly the value given. The behavior of the resultant binary on a
system with any other vector length is undefined.
* '-msve-vector-bits=<arg>' does not affect automatic vectorization. In other words, Arm C/C++/Fortran Compiler 21.1 always generates Vector Length
Agnostic (VLA) code when performing autovectorization.
Documentation is available at:
https://developer.arm.com/documentation/101458/2110/Compile-and-Link/Support-for-Vector-Length-Specific--VLS--programming
and
https://developer.arm.com/documentation/101726/0400/Coding-for-Scalable-Vector-Extension--SVE-/SVE-Vector-Length-Specific--VLS--programming
- Arm Compiler for Linux 21.1 is based on Clang 12.0.1 (of the LLVM Compiler project), which provides improved performance and stability. The 'vectorize_style' pragma has been removed. The 'vectorize_width' pragma can be used instead. You can use 'vectorize_width(fixed)' instead of 'vectorize_style(fixed_width) to request fixed-width vectorization, or 'vectorize_width(scalable)' instead of 'vectorize_style(scaled_width)' to request scalable vectorization. To specify the vectorization style as well as the vectorization width, 'vectorize_width' can take an optional second argument to specify the vectorization style. For example, you can use 'vectorize_width(8, fixed)' to replace 'vectorize_width(8) vectorize_style(fixed_width)'.
- Arm Compiler for Linux 21.1 features performance improvements for Neoverse V1-based platforms, when the '-mcpu=neoverse-v1' option is used.
- Support for the '-fiterative-reciprocal' compiler option is deprecated in Arm Compiler for Linux 21.1. Instead, to control the generation of these instructions, use the '-mrecip' option.
- Support has been added for the following ACLE intrinsics:
- Advanced SIMD intrinsics vcls and vclsq
- Intrinsics for the ARMv8.5-FRINT and ARMv8.5-RNG extensions
- Intrinsics for the ARMv8.2-SHA and ARMv8.2-SM Cryptographic extensions
- Polynomial add intrinsics for the ARMv8.0-AES Cryptographic extension
- Advanced SIMD intrinsics vcls and vclsq
- Arm C/C++ Compiler now supports SVE ACLE programming for fixed SVE vector lengths (also known as Vector Length Specific (VLS) programming). For a fixed-width ACLE program, use the 'arm_sve_vector_bits' attribute to control the SVE vector width in the source, and at compile time, specify the SVE vector width using the '-msve-vector-bits=<arg>' compiler option.
- Arm Performance Libraries:
-
Improved the performance for:
- BLAS level 1 and 2 routines: multithreaded performance improvements
- BLAS level 2 routines: ?GEMV
- BLAS level 3 routines: ?SYRK, ?SYR2K, ?HERK, ?HER2K; and HGEMM for Neoverse N1
- Interleave-batch functions for both Neon and SVE targets: armpl_dgemm_interleave_batch, armpl_dtrmm_interleave_batch, and armpl_dtrsm_interleave_batch
- FFT functions for SVE targets
- BLAS level 1 and 2 routines: multithreaded performance improvements
- Added support for LAPACK version 3.9.1.
- Added support for symmetric band matrix-vector multiplication BLAS routines: CSBMV and ZSBMV to armpl.h.
Documentation is available at
https://developer.arm.com/documentation/101004/2110/BLAS-Basic-Linear-Algebra-Subprograms/BLAS-level-2.
- Improved the performance of atan2 in libamath.
-
Improved the performance for:
- Arm C/C++/Fortran Compiler:
Resolved issues:
- 21.1:
- Arm Compiler for Linux suite:
- Fixed a modulefile issue which could cause the harmless error message "Badly placed ()'s." to be emitted. The error message could occur when loading the 'arm-linux-compiler' modulefile in an Lmod-based system under csh. The modulefile behavior has been fixed.
- Fixed a modulefile issue which could cause the harmless error message "Badly placed ()'s." to be emitted. The error message could occur when loading the 'arm-linux-compiler' modulefile in an Lmod-based system under csh. The modulefile behavior has been fixed.
- Arm C/C++/Fortran Compiler:
- Fixed a bug in the armflang runtime library where internal locks (that are used to synchronize OpenMP regions) were not being re-initialized when program code was creating new child processes using system fork functions.
- Fixed SVE loop vectorization inefficiencies:
- Enabled SVE vectorization of loops which feature conditional floating point divides by default, without additional flags
- Enabled SVE vectorization of loops which feature two conditional memory sources for a value within the loop
- Added an Optimization Remark that indicates when a conditional floating point sqrt prevents vectorization. The remarks also suggests a workaround.
- Fixed an issue that could cause the compiler to crash during the "Contiguous Load Store Pass" when generating Advanced SIMD code at the -O2 (or higher) optimization level.
- Fixed a bug seen in the BigDFT application where armflang could produce references to undefined symbols at link time, when using USE statements with rename lists.
- Enabled SVE vectorization of loops which feature conditional floating point divides by default, without additional flags
- Fixed a bug in the armflang runtime library where internal locks (that are used to synchronize OpenMP regions) were not being re-initialized when program code was creating new child processes using system fork functions.
- Arm Compiler for Linux suite:
Open technical issues:
-
21.1:
- There are no open technical issues in the 21.1 release.
Arm Forge 21.1
21.1.2
Additions and changes
Arm Forge:
- None in this release.
Arm DDT:
- Added working directory and environment variables to the logbook if set using the Run dialog.
Arm MAP and Performance Reports:
- None in this release.
Resolved issues
Arm Forge:
- [FOR-13394] Fixed an issue where project files were not listed.
- [FOR-14396] Fixed an issue where the enter button would close the Find In Files dialog rather than execute a search.
Arm DDT:
- None in this release.
Arm MAP and Performance Reports:
- [FOR-14329] Fixed an issue with Cray Shasta detection.
Deprecated features
The following features remain deprecated in this release, and might be removed in a future version:
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
21.1.1
Additions and changes
Arm Forge:
- Updated Forge products to OpenSSL 1.1.1l.
Arm DDT:
- Improved the reporting of memory debugging errors.
Arm MAP and Performance Reports:
- None in this release.
Resolved issues
Arm Forge:
- None in this release.
Arm DDT:
- [FOR-14160] Fixed an issue with Pin To Address for base Fortran datatypes with GDB 10.
- [FOR-14178] Fixed an issue with Pin To Address for allocatable Fortran types with GDB 10.
Arm MAP and Performance Reports:
- None in this release.
Deprecated features
The following features remain deprecated in this release, and might be removed in a future version:
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
Known issues
Please refer to the known issues page.
21.1
Additions and changes
Arm Forge:
- Added support for Arm Compiler for Linux 21.1
Arm DDT:
- Upgraded the default DDT debugger to GDB 10.1.
- GDB 11.1 added as an optional debugger for DDT
Arm MAP and Performance Reports:
- Added new metrics for tracking NVIDIA GPU memory transfers. An additional opt-in "CUDA transfer analysis" mode will trace the calls to CUDA functions that perform memory transfers, at the expense of some overhead per such call.
- Removed support for the IPMI energy agent.
Resolved issues
Arm Forge:
- [FOR-12395] Fixed an issue with Remote Connect that incorrectly issued a warning when deleting or editing a connection following a failed connection attempt.
- [FOR-12762] Fixed an issue with auto-detection of Open MPI on HPE/Cray systems.
- [FOR-13074] Authenticated and encrypted TCP/IP connections between the Forge backend components and Reverse Connect using TLS-PSK.
- [FOR-13396] Fixed a typo in the --list-mpis command-line output.
Arm DDT:
- [FOR-4775] Fixed an issue with missing tooltips in the Memory Debugging options menu.
- [FOR-6587] Changed the variance calculation between cross-process comparisons in the CPC/CTC window to use the population variance.
- [FOR-6595] Fixed an issue where the Expression drop-down history was not stored in the CPC/CTC window.
- [FOR-11667] Fixed an issue where the pause button was unresponsive while stepping in ASM mode using a Cuda application.
- [FOR-11869] Fixed an issue with C++ program debugging that caused DDT to pause at the opening brace of the main function rather than pausing on the first line of main.
- [FOR-12733] Fixed an issue to suppress a warning that Python is not an MPI application when debugging a Python mpi4py program.
- [FOR-13109] Fixed an issue that prevented the editing of very complex expressions that are added to the evaluate window.
- [FOR-13745] Fixed a crash that was triggered when using memory debugging.
- [FOR-13885] Fixed an issue where DDT could not open core files.
Arm MAP and Performance Reports:
- [FOR-5925] Fixed an issue where templated C++ function names were truncated.
- [FOR-11888] Fixed an issue that caused text in the timeglyphs (the percentage) to display incorrectly when using the zoom feature.
- [FOR-12902] Fixed an issue where functions containing OpenMP regions in programs compiled with GCC or Intel Compiler were displayed in name-mangled form.
Deprecated features
The following features remain deprecated in this release, and might be removed in a future version:
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
Known issues
Please refer to the known issues page.
-
Release Note for Arm Allinea Studio 21.1 - Latest update 21.1.3
Arm Compiler for Linux 21.1 Release Note
========================================
Non-Confidential
Copyright © 2015-2021, Arm Limited (or its affiliates). All rights reserved.
Arm conventions and proprietary notices, including confidentiality status,
terminology statement, and product release status, can be found at the end of
this document.
Contents
========
- Release overview
- Release contents
- Get started
- Support
- Release history
- Glossary
- Proprietary notices
Release overview
================
Product description
-------------------
The Arm Compiler for Linux 21.1 suite provides a complete
compiling environment for natively developing and tuning your server and HPC
applications on Armv8-A based platforms. Arm Compiler for Linux 21.1
includes support for targets that implement the Scalable Vector Extension (SVE)
and Scalable Vector Extension version two (SVE2) for Armv8-A AArch64.
The suite contains the following packages:
- Arm C/C++/Fortran Compiler 21.1
Arm Compiler is a Linux user-space C/C++ and Fortran compiler tailored for
scientific computing, HPC, and enterprise workloads.
- Arm Performance Libraries 21.1.0
Two Arm Performance Libraries packages are provided, one that is optimized for
Armv8-A AArch64 Neon-based implementations, and one that is optimized for
Armv8-A AArch64 SVE-based implementations. Both packages are compatible with
Arm C/C++/Fortran Compiler 21.1 and GCC 10.2.0.
- GCC 10.2.0
For convenience, and to provide the optimal experience of using Arm
Performance Libraries and GCC on the latest Arm server and HPC systems, a
build of GCC 10.2.0 is provided. The GCC 10.2.0 build is
also provided for OpenMP/libgfortran compatibility with Arm Performance
Libraries.
As a GNU tool suite, the GPL-licensed source code can be downloaded
separately.
Release Status
--------------
This is the 21.1 release of the Arm Compiler for Linux software.
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 describe:
- The product parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations that exist at the time of this release.
Deliverables
------------
- Arm C/C+/Fortran Compiler 21.1
- Arm Performance Libraries 21.1.0
- GCC 10.2.0
- Release Notes (this document)
- Documentation
Product documentation is available in
<install_location>/<package_name>/share, and on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
Documentation may change between product releases. For the latest
documentation bundle, check the delivery platform.
Arm tests PDFs only in Adobe Acrobat and Acrobat Reader. Arm cannot guarantee
the quality of its PDFs when used with any other PDF reader. A suitable file
reader can be downloaded from Adobe at https://www.adobe.com
Differences from previous release
---------------------------------
Arm Compiler for Linux 21.1 includes various internal changes that
resolve defects and improve performance.
The following subsections describe the significant differences from the previous
release of Arm Compiler for Linux.
Additions and changes:
~~~~~~~~~~~~~~~~~~~~~~
This section describes the new features or components added, or any
significant technical changes to features or components, in the 21.1 release.
- Arm C/C++/Fortran Compiler 21.1:
- Arm C/C++ Compiler now supports SVE ACLE programming for fixed SVE
vector lengths (also known as Vector Length Specific (VLS) programming). For
a fixed-width ACLE program, use the 'arm_sve_vector_bits' attribute to
control the SVE vector width in the source, and at compile time, specify the
SVE vector width using the '-msve-vector-bits=<arg>' compiler option.
Notes:
* '-msve-vector-bits=<arg>' allows the compiler to assume a runtime vector
length of exactly the value given. The behavior of the resultant binary on a
system with any other vector length is undefined.
* '-msve-vector-bits=<arg>' does not affect automatic vectorization. In
other words, Arm C/C++/Fortran Compiler 21.1 always generates Vector Length
Agnostic (VLA) code when performing autovectorization.
Documentation is available at:
https://developer.arm.com/documentation/101458/2110/Compile-and-Link/Support-for-Vector-Length-Specific--VLS--programming
and
https://developer.arm.com/documentation/101726/0400/Coding-for-Scalable-Vector-Extension--SVE-/SVE-Vector-Length-Specific--VLS--programming
- Arm Compiler for Linux 21.1 is based on Clang 12.0.1 (of the LLVM Compiler
project), which provides improved performance and stability. The
'vectorize_style' pragma has been removed. The 'vectorize_width' pragma can
be used instead. You can use 'vectorize_width(fixed)' instead of
'vectorize_style(fixed_width) to request fixed-width vectorization, or
'vectorize_width(scalable)' instead of 'vectorize_style(scaled_width)' to
request scalable vectorization. To specify the vectorization style as well
as the vectorization width, 'vectorize_width' can take an optional second
argument to specify the vectorization style. For example, you can use
'vectorize_width(8, fixed)' to replace 'vectorize_width(8)
vectorize_style(fixed_width)'.
- Arm Compiler for Linux 21.1 features performance improvements for Neoverse
V1-based platforms, when the '-mcpu=neoverse-v1' option is used.
- Support for the '-fiterative-reciprocal' compiler option is deprecated in
Arm Compiler for Linux 21.1. Instead, to control the generation of these
instructions, use the '-mrecip' option.
- Support has been added for the following ACLE intrinsics:
* Advanced SIMD intrinsics vcls and vclsq
* Intrinsics for the ARMv8.5-FRINT and ARMv8.5-RNG extensions
* Intrinsics for the ARMv8.2-SHA and ARMv8.2-SM Cryptographic extensions
* Polynomial add intrinsics for the ARMv8.0-AES Cryptographic extension
- Arm Performance Libraries 21.1.0:
- Improved the performance for:
* BLAS level 1 and 2 routines: multithreaded performance improvements
* BLAS level 2 routines: ?GEMV
* BLAS level 3 routines: ?SYRK, ?SYR2K, ?HERK, ?HER2K; and HGEMM for
Neoverse N1
* Interleave-batch functions for both Neon and SVE targets:
armpl_dgemm_interleave_batch, armpl_dtrmm_interleave_batch, and
armpl_dtrsm_interleave_batch
* FFT functions for SVE targets
- Added support for LAPACK version 3.9.1.
- Added support for symmetric band matrix-vector multiplication BLAS routines:
CSBMV and ZSBMV to armpl.h. Documentation is available at
https://developer.arm.com/documentation/101004/2110/BLAS-Basic-Linear-Algebra-Subprograms/BLAS-level-2.
- Improved the performance of atan2 in libamath.
Resolved issues:
~~~~~~~~~~~~~~~~
Describes any technical issues that are resolved in the 21.1 release.
- Arm Compiler for Linux suite 21.1:
- Fixed a modulefile issue which could cause the harmless error message "Badly
placed ()'s." to be emitted. The error message could occur when loading the
'arm-linux-compiler' modulefile in an Lmod-based system under csh. The
modulefile behavior has been fixed.
- Arm C/C++/Fortran Compiler 21.1:
- Fixed a bug in the armflang runtime library where internal locks (that are
used to synchronize OpenMP regions) were not being re-initialized when
program code was creating new child processes using system fork functions.
- Fixed SVE loop vectorization inefficiencies:
* Enabled SVE vectorization of loops which feature conditional floating
point divides by default, without additional flags
* Enabled SVE vectorization of loops which feature two conditional memory
sources for a value within the loop
* Added an Optimization Remark that indicates when a conditional floating
point sqrt prevents vectorization. The remarks also suggests a workaround.
- Fixed an issue that could cause the compiler to crash during the "Contiguous
Load Store Pass" when generating Advanced SIMD code at the -O2 (or higher)
optimization level.
- Fixed a bug seen in the BigDFT application where armflang could produce
references to undefined symbols at link time, when using USE statements with
rename lists.
Known limitations
-----------------
The following subsection describes any issues that are known at the time of
this release.
Open technical issues:
~~~~~~~~~~~~~~~~~~~~~~
There are no open technical issues in the 21.1 release.
Get started
===========
This section describes information to help you get started with accessing,
setting up, and using Arm Compiler for Linux.
For more information, see the Get Started information on the Arm Developer
website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/get-started
Licensing information
---------------------
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run:
* For more information about Arm Allinea Studio licensing, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/licensing
* To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio
Once you have obtained a license file from Arm, follow these steps to make it
available for use.
Note: If you have a floating license, you must first download and install
Arm Licence Server:
https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server
1. Save your client, named user, or evaluation license:
- If you chose to install to the default installation directory, create a
directory called 'licenses' in /opt/arm/ and copy your client license file
to it.
- If you chose to install to a custom installation directory, create a
directory called 'licenses' in <install_location>/ and copy your client
license file to it. Set the ARM_LICENSE_DIR environment variable to
<install_location>/licenses.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
separate license for these tools, set the ARM_LICENSE_DIR environment
variable to point to <install_location>/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'
in the <install_location>/licenceserver directory and copy your license
file to it. To enable the new floating license, restart Arm Licence Server.
Prerequisites
-------------
If any of the following tools are not already installed by your Linux
distribution, you must install them before installing Arm Compiler for Linux:
- Python (version 2.7 or later)
To ensure you have the necessary version of Python for your system, install
Python using the appropriate package manager for your OS.
- C Libraries:
- SLES and RHEL: glibc-devel
- Ubuntu: libc6-dev
You must have at least 3 GB of free hard disk space to both download and unpack
the Arm Compiler for Linux package. You must also have an additional 5 GB of
free space to install the package.
Download the product
--------------------
Arm delivers the files through the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-allinea-studio
Unpack the product
------------------
To unpack the package, extract the tar file contents using a tar utility:
tar -xvf <package_name>.tar
Directory structure:
--------------------
Shows the top-level directory structure of this installer package, which is
available after you unpack the bundle:
license_terms/
arm-compiler-for-linux-21.1*.sh
RELEASE_NOTES.txt
Install the product
-------------------
To install Arm Compiler for Linux, run the installation script as a privileged
user and pass any options to configure the installation:
./arm-compiler-for-linux-21.1*.sh <option> <option>
Some common installation options are:
- For a headless installation and to automatically accept the EULA, use
the '--accept' option.
- To install to an alternate location to the default, use the
'--install-to <install_location>' option.
For a full list of supported installation options pass the '-h' or '--help'
options to the installer script.
To learn more about installing Arm Compiler for Linux, as part of Arm Allinea
Studio, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/installation
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.
RPM and DEB files
-----------------
The install packages contain RPM (.rpm) files, for Red Hat-based Linux
distributions, or DEB (.deb) files, for Debian-based Linux distributions.
To extract the .rpm or .deb files from the installer, run the installer script
with the '-s' or '--save-packages-to <directory_location>' option. If
<directory_location> is not an empty directory, you also need to include the
'-f' or '--force' option. The installer script requires you to accept
the EULA. If you accept the EULA, the .rpm or .deb files extract to
<directory_location>.
RPM files are signed by Arm's HPC GPG key. DEB files are not signed. To verify
RPM files, you can download and import the Arm's HPC GPG key, and check the
signatures:
1. Download the Arm HPC GPG public key from:
https://developer.arm.com/-/media/files/keys/GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB
2. Import the GPG key, run:
rpm --import GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB
3. Check the signature of an .rpm file, run:
rpm -K <rpm_file>
To install an RPM file, use 'rpm -i <rpm_file>'. To install a DEB file, use
'dpkg -i <deb_file>'.
Note: Arm does not recommend that you install directly from the .rpm or .deb
files. Only experienced users who are comfortable with this type of installation
route should attempt to install the Arm Compiler for Linux package using this
method.
Run the product
---------------
1. Load the environment module:
* For Arm C/C++/Fortran Compiler, use:
module load arm21/21.1
To also use Arm Performance Libraries, include the ``-armpl`` and either
the ``-march=<arg>`` or ``-mcpu=<arg>`` compiler options in your compile
and link command lines. The combination of these commands allows Arm
C/C++/Fortran Compiler to determine the appropriate version of Arm
Performance Libraries for your system at link time.
* For GCC 10.2.0 only, use:
module load gnu10/10.2.0
* For GCC 10.2.0 with Arm Performance Libraries, use:
module load gnu10/10.2.0
module load armpl-AArch64{-SVE}/21.1.0
2. Generate your executable binary.
To generate an executable binary with Arm Compiler for Linux, compile your
program with Arm C/C++/Fortran Compiler and specify any options ([options]),
the output binary name (-o <binary>), and the input file (<input>):
{armclang|armclang++|armflang} [options] -o <binary> <input>
Refer to the GCC documentation to see the equivalent command syntax for
the GCC compiler.
Examples
--------
Example code is included in this suite as part of Arm Performance
Libraries. This code can be found at:
<install_location>/<ARMPL_Name>*<ARMPL_Version>*/examples*
Examples that use, and do not use, SVE are included for each of Arm
C/C++/Fortran Compiler and GCC.
Multiple examples directories are provided in the installation. The suffix of
the directory name indicates whether the examples inside link to the 32-bit
('_lp64') or 64-bit ('_ilp64') integer variants, and sequential (no suffix
indicator) or OpenMP ('_mp') multi-threaded variants, of Arm Performance
Libraries.
The default set of examples in the 'examples' directory link to the sequential,
32-bit integers variant of Arm Performance Libraries.
To build the default set of examples:
* For Arm Compiler for Linux:
1. Copy the 'examples' directory somewhere writeable:
cp -r <install_location>/armpl-21.1.0_AArch64_*arm-linux-compiler*/examples ./
cd examples
To copy the SVE examples, replace 'AArch64' with 'AArch64-SVE' in the copy
command.
2. Load the Arm Compiler for Linux environment module:
module load arm21/21.1
3. Build the examples:
make
* For GCC:
1. Copy the 'examples' directory somewhere writeable:
cp -r <install_location>/armpl-21.1.0_AArch64_*gcc*/examples ./
cd examples
To copy the SVE examples, replace 'AArch64' with 'AArch64-SVE' in the copy
command.
2. Load the GCC environment modules:
module load gnu10/10.2.0
module load armpl-AArch64/21.1.0
To load the SVE variant of the libraries, replace 'AArch64' with
'AArch64-SVE' in the module load command.
3. Build the examples:
make
For more information about the Arm Performance Libraries examples, see:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/get-started/armpl-get-started/compile-an-example
Uninstall
---------
For convenience, this package includes an "uninstall.sh" script at:
<install_location>/arm-compiler-for-linux-21.1*/uninstall.sh
This script attempts to uninstall all the components supplied as part of
Arm Compiler for Linux. However, if other packages outside of this product
depend on the GCC component, GCC will not be uninstalled.
If you require support when uninstalling any version of Arm Compiler for Linux,
contact support-hpc-sw@arm.com.
Support
=======
Arm Compiler for Linux documentation is available in
<install_location>/<package_name>/share, or on the Arm Developer website:
href="https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
If you have any issues with the installation, content or use of this release,
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 RHEL 7 and 8
- AArch64 SLES 15
- AArch64 Ubuntu 18.04 and 20.04
Full information about the platforms supported by Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/supported-platforms
Release history
===============
A full release history (with release notes) for Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/release-history
Glossary
========
The Arm Glossary is a list of terms that are 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.
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,
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.
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.
The Arm corporate logo and words marked with ® or ™ are registered trademarks
or trademarks of Arm Limited (or its affiliates) in the US 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/company/policies/trademarks.
Copyright © 2015-2021, 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
-----------
https://developer.arm.com
Progressive terminology commitment
----------------------------------
Arm values inclusive communities. Arm recognizes that we and our industry have
used terms that can be offensive. Arm strives to lead the industry and create
change.
We believe that this document contains no offensive terms. If you find offensive
terms in this document, please email terms@arm.com.
Arm Forge 21.1.2 Release Note
================================
TBC
- EULA
- Documentation
-
Arm Allinea Studio: 21.0 - Latest update 21.0.2 July 30, 2021
What's new in 21.0 - Latest update 21.0.2
Arm Allinea Studio 21.0.2 includes:
- Arm Compiler for Linux 21.0 - Released 30th March 2021
- Arm Forge 21.0.1 - Released 30th March 2021
- Arm Forge 21.0.2 - Released 30th April 2021
- Arm Forge 21.0.3 - Released 30th July 2021
Arm Compiler for Linux 21.0
Additions and changes:
- 21.0:
- Arm Compiler for Linux suite:
- The module system has been overhauled in Arm Compiler for Linux 21.0. The module names have been simplified and shortened, modules are no longer visible until they are usable and the layout has been modified to take advantage of lmod features.
To load Arm C/C++/Fortran Compiler, use 'module load arm21/21.0'. Loading this module then places the corresponding Arm Performance Library modules on the modulepath. To load the Arm Performance Library modules, use 'module load armpl-AArch64{-SVE}/21.0.0'.
- The GCC toolchain that is packaged with Arm Compiler for Linux has been updated to GCC 10.2.0.
- Support has been added for Ubuntu 20.04 LTS.
- Arm Compiler for Linux no longer provides installers for SLES12 or Ubuntu 16.04 LTS.
- The module system has been overhauled in Arm Compiler for Linux 21.0. The module names have been simplified and shortened, modules are no longer visible until they are usable and the layout has been modified to take advantage of lmod features.
- Arm C/C++/Fortran Compiler:
- Added support for the following CPUs:
- Neoverse N2
- Neoverse V1
- Arm Compiler for Linux 21.0 is based on Clang 11. The following changes should be noted:
- The default behavior of the '-f[no-]common' option has changed. In Arm Compiler for Linux 21.0, the default is '-fno-common'. C/C++ code that uses tentative definitions as definitions of a variable in multiple translation units, will trigger multiple-definition linker errors. Generally, this error occurs when the use of the 'extern' keyword is omitted in the declaration of a variable in a header file. In some cases, no specific translation unit provides a definition of the variable. To restore the Arm Compiler for Linux 20.3 behavior, use '-fcommon'.
- The default C language standard used when '-std=' is not specified has been upgraded from 'gnu11' to 'gnu17'.
- The default OpenMP standard has been upgraded to 5.0, for C/C++ compilation. To lower the support to OpenMP 4.5, use '-fopenmp-version=45'. The maximum standard level that is supported in Fortran code remains at OpenMP 4.5.
More details are available in the clang 11 release notes at:
https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html
- The default behavior of the '-f[no-]common' option has changed. In Arm Compiler for Linux 21.0, the default is '-fno-common'. C/C++ code that uses tentative definitions as definitions of a variable in multiple translation units, will trigger multiple-definition linker errors. Generally, this error occurs when the use of the 'extern' keyword is omitted in the declaration of a variable in a header file. In some cases, no specific translation unit provides a definition of the variable. To restore the Arm Compiler for Linux 20.3 behavior, use '-fcommon'.
- Arm Compiler for Linux implements changes to the Arm Architecture Vector Procedure Call Standard (AAVPCS) relating to the passing of vector parameters. The intent is to enable an optimization, by the dynamic loader called lazy binding, when a shared library is first loaded. These changes affect functions with signatures that contain scalable vector types defined as part of arm_sve.h, or functions that make explicit use of the function attribute 'aarch64_vector_pcs'.
For the optimization to work, the dynamic loader must also be compliant to the AAVPCS. Specifically, the dynamic loader must correctly handle 'STO_AARCH64_VARIANT_PCS st_other" symbol data. The required support is present in the latest glibc versions starting 2.26, and patches later than December 2020.
Using a combination of shared libraries and a dynamic loader that are incompatible with regards AAVPCS compliance, can result in runtime bugs in your program because of the corruption of vector registers when crossing function call boundaries. These bugs have symptoms that are hard to characterize and they can be hard to identify. As a limited mitigation, Arm Compiler for Linux temporarily disables lazy binding when compiling for SVE. This means that libraries that are built by Arm Compiler for Linux should work with older dynamic loaders. For full mitigation, set the 'LD_BIND_NOW=1' environment variable, which disables lazy binding for all libraries.
- Directive support in Arm Fortran Compiler has been expanded to include:
- !$mem prefetch directive (see https://developer.arm.com/documentation/101380/2100/Optimize/Directives/prefetch)
- !$ dir unroll(n) directive with an integer argument indicating the unrolling factor (see https://developer.arm.com/documentation/101380/2100/Optimize/Directives/unroll)
- !$mem prefetch directive (see https://developer.arm.com/documentation/101380/2100/Optimize/Directives/prefetch)
- The following corrections have been made to Arm Compiler for Linux Arm C Language Extensions (ACLE) support:
- Removed support for the deprecated 'svcdot' function with unsigned arguments, and accessing individual elements of ACLE vector structs using the '.' operator.
- Removed support for the 'vceqz_p16', 'vceqzq_p16', 'vmlaq_n_f64', and 'vmlsq_n_f64' Neon intrinsics.
- Removed support for the '__sizeless_struct' C/C++ language extension. A migration path for users of this option to place SVE ACLE types inside structs will be available in a future version of Arm Compiler for Linux.
- The arm_sve.h header file has been corrected to define 'svpattern' rather than 'sv_pattern', and 'svprfop' rather than 'sv_prfop'. Both types are now correctly defined as enum types.
- Removed support for the deprecated 'svcdot' function with unsigned arguments, and accessing individual elements of ACLE vector structs using the '.' operator.
- Added support for the following CPUs:
- Arm Performance Libraries:
-
Arm Performance Libraries now supports all real-to-real transform functions defined in the FFTW3 interface. Previously, the planner functions for these types of transforms returned NULL, indicating that they were unavailable.
- Added support for ?GEMMT BLAS extension routines for all types, performing matrix-matrix multiplication and updating the lower or upper triangular part of C only.
- Added a new suite of routines that are optimized for large batches of small linear algebra problems. Interfaces for the following real and double precision problems are provided:
- BLAS: DDOT, DGER, DGEMM, DGEMV, DSCAL, DTRMM, DTRSM, and DTRSV
- LAPACK: DGEQR (QR), DGETRF (LU), and DPOTRF (Cholesky)
- DORMQR and DORGQR (for multiplying and generating Q)
- Utility routines for packing and unpacking matrices to and from the new batched data layout
- Improved performance for:
- BLAS level 1 routines: ?IAMAX, ?NRM2, ?ASUM, and ?DOT
- BLAS level 2 routines: ?HBMV, ?SBMV, ?TBMV, ?SYR, and ?SYR2
- BLAS level 3 routines: ?TRSM and [SD]GEMM
- LAPACK routines: ?POTRF and ?GETRF (for small problems)
- General small problems
- Vector performance improvements in libamath:
- Neon functions: atan, atanf, erf, erff, exp2, exp2f, exp10, and exp10f
- SVE functions: atan, erff, cos, cosf, pow, sin, sincos, and sincosf
- Arm Performance Libraries are no longer packaged with separate libraries for individual microarchitectures. We now provide two choices of library, one which contains kernels for SVE cores and one for non-SVE cores. Automatic selection of the most appropriate kernels for the microarchitecture occurs at runtime.
Arm Compiler for Linux can use the appropriate library when either the '-mcpu=<target>' or '-march=<architecture>' options are used together with the '-armpl' option. '<target>' is a target CPU name. To use the host CPU, use 'native'. The '<architecture>' is a list of available architecture features. If any of the features enable SVE, the SVE version of library is used.
- The GCC version of the library is now compatible with GCC 10.2.0, instead of 9.3.0.
-
Arm Performance Libraries now supports all real-to-real transform functions defined in the FFTW3 interface. Previously, the planner functions for these types of transforms returned NULL, indicating that they were unavailable.
- Arm Compiler for Linux suite:
Resolved issues:
- 21.0:
- Arm Compiler for Linux suite:
- The disk space required to install Arm Compiler for Linux is reduced in version 21.0. The installer no longer allows for a partial installation using the '--only-install-microarchitectures' option. The installer options '--only-install-microarchitectures' and '--list-available-microarchitectures' are no longer supported.
- Fixed an issue where installations to a user-defined, non-default location could prevent GCC from locating its runtime libraries.
- Support for relocating modulefiles from the install location to a directory of your choosing, and for using symlinks with modulefiles, has been improved in this release. The modulefiles can now be relocated by moving the moduledeps, modulefiles, and moduleglobals directories as a group. For a more complete explanation of the limitations, see the compiler reference guides:
https://developer.arm.com/documentation/101380/2100/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles (Fortran)
or
https://developer.arm.com/documentation/101458/2100/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles (C/C++).
- An issue that caused the 'module swap' command to fail when using newer versions of the module builtin, requiring you to unload the old modulefile before loading the new modulefile, has been fixed. The 'module swap' command now works as expected.
- The disk space required to install Arm Compiler for Linux is reduced in version 21.0. The installer no longer allows for a partial installation using the '--only-install-microarchitectures' option. The installer options '--only-install-microarchitectures' and '--list-available-microarchitectures' are no longer supported.
- Arm C/C++/Fortran Compiler:
- Fixed a C++ code generation issue for floating-point multiply reductions that use SVE instructions. Previously, the result could be discarded and 'NaN' reported. The correct result is now returned.
- Fixed an armflang internal compiler error which could occur when compiling the YAXT application.
- Fixed an armflang internal compiler error which could occur when compiling Fortran code that used COMPLEX types.
- Fixed an issue in armflang with USE statements that are used in the BigDFT application.
- Fixed an issue with armflang which could cause a 'Too few data constants in initialization statement' error when compiling nested implied do-loop array initializers in librsb.
- Arm C/C++/Fortran Compiler for Linux 21.0 defines the following macros that can be used to guard code based on compiler version:
- __ARM_LINUX_COMPILER__ // always '1'
- __armclang_major__ // integer (for example '21' for version 21.0)
- __armclang_minor__ // integer (for example '0' for version 21.0)
- __armclang_version__ // human readable version string (for example '21.0' for version 21.0)
- __ARM_HPC_COMPILER, use __ARM_LINUX_COMPILER__ instead
- __ARM_HPC_COMPILER_VERSION__, use __armclang_version__ instead
- __ARM_HPC_COMPILER_BUILD__, use __ARM_LINUX_COMPILER_BUILD__ instead
https://developer.arm.com/documentation/101458/2100/Optimize/Predefined-macro-support
The predefined macros that are supported by Arm Fortran Compiler are now documented in:
https://developer.arm.com/documentation/101380/2100/Fortran-language-reference/Predefined-macro-support
- Fixed a C++ code generation issue for floating-point multiply reductions that use SVE instructions. Previously, the result could be discarded and 'NaN' reported. The correct result is now returned.
- Arm Performance Libraries:
- Prototypes are now available in armpl.h for the following LAPACKE functions:
- lapacke_?geqpf
- lapacke_?geqpf_work
- lapacke_?ggsvd
- lapacke_?ggsvd_work
- lapacke_?ggsvp
- lapacke_?ggsvp_work
- Prototypes are now available in armpl.h for the following LAPACKE functions:
- Arm Compiler for Linux suite:
Open technical issues:
-
21.0:
- There are no open technical issues at the time of this release.
Arm Forge 21.0
21.0.3
Additions and changes
Arm Forge:
- Added support for GCC 11.
Arm DDT:
- Added a warning to notify when the debugger cannot debug shared libraries because of an unknown library path.
Arm MAP and Performance Reports:
- None in this release.
Resolved issues
Arm Forge:
- None in this release.
Arm DDT:
- [FOR-13309] Fixed an issue that was preventing start up with GCC 11.
- [FOR-13499] Fixed a bug where Python Debugging would not work correctly with SLURM if the Python binary was using the Python shared library.
Arm MAP and Performance Reports:
- [FOR-12903] Fixed a numerical scaling issue with SPE counts on long profiling runs.
21.0.2
Additions and changes
- None in this release
Resolved issues
Arm Forge:
- [FOR-12711] Fixed an issue that was preventing startup with newer Slurm versions.
- [FOR-12762] Fixed auto-detection of Open MPI on HPE/Cray systems.
Arm DDT:
- [FOR-12924] Fixed an issue debugging python 3.8+ programs where python is configured with trace refs support.
Arm MAP and Performance Reports:
- [FOR-12803] Fixed a crash issue when profiling Python 3.9 programs.
21.0.1
Additions and changes
- Added support for Arm Compiler for Linux 21.0.
- Documented a workaround for startup issues with recent versions of SLURM.
Resolved issues
Arm Forge:
- [FOR-11503] Fixed intermittent remote connect crash.
Arm DDT:
- None in this release.
Arm MAP and Performance Reports:
- [FOR-10699] Fixed an allocation issue in MAP which caused the program being profiled to crash on rare occasions.
- [FOR-12576] Adjusted detection of OpenMP Regions with Arm Compiler for Linux.
Deprecated features
The following features remain deprecated since the release of version 21.0, and might be removed in a future version:
- VisIt Visualization.
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for the IPMI energy agent.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
- Support for Python 2.x.x.
- Support for Open MPI 3.x.x.
- Support for Red Hat Enterprise Linux 7.x on aarch64 and ppc64le.
- Support for Ubuntu 16.04.
- Support for SUSE Linux Enterprise Server 12 on aarch64.
- Support for macOS High Sierra (10.13).
Known issues
Please refer to the known issues page.
-
Release Note for Arm Allinea Studio 21.0 - Latest update 21.0.2
×The ordering of the Release Notes are:
1) Arm Compiler for Linux 21.0 Release Note
2) Arm Forge 21.0.3 Release NoteArm Compiler for Linux 21.0 Release Note
========================================
Non-Confidential
Copyright © 2015-2021, 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,
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 click through or signed written agreement covering this
document with Arm, then the click through or 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.
The Arm corporate logo and words marked with ® or ™ are registered trademarks
or trademarks of Arm Limited (or its affiliates) in the US 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/company/policies/trademarks.
Copyright © 2015-2021, 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
-----------
https://developer.arm.com
Progressive terminology commitment
----------------------------------
Arm values inclusive communities. Arm recognizes that we and our industry have
used terms that can be offensive. Arm strives to lead the industry and create
change.
We believe that this document contains no offensive terms. If you find offensive
terms in this document, please email terms@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 that are 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
================
Product description
-------------------
The Arm Compiler for Linux 21.0 suite provides a complete
compiling environment for natively developing and tuning your server and HPC
applications on Armv8-A based platforms. Arm Compiler for Linux 21.0
includes support for targets that implement the Scalable Vector Extension (SVE)
and Scalable Vector Extension version two (SVE2) for Armv8-A AArch64.
The suite contains the following packages:
- Arm C/C++/Fortran Compiler 21.0
Arm Compiler is a Linux user-space C/C++ and Fortran compiler tailored for
scientific computing, HPC, and enterprise workloads.
- Arm Performance Libraries 21.0.0
Two Arm Performance Libraries packages are provided, one that is optimized for
Armv8-A AArch64 Neon-based implementations, and one that is optimized for
Armv8-A AArch64 SVE-based implementations. Both packages are compatible with
Arm C/C++/Fortran Compiler 21.0 and GCC 10.2.0.
- GCC 10.2.0
For convenience, and to provide the optimal experience of using Arm
Performance Libraries and GCC on the latest Arm server and HPC systems, a
build of GCC 10.2.0 is provided. The GCC 10.2.0 build is
also provided for OpenMP/libgfortran compatibility with Arm Performance
Libraries.
As a GNU tool suite, the GPL-licensed source code can be downloaded
separately.
Release Status
--------------
This is the 21.0 release of the Arm Compiler for Linux software.
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 describe:
- The product parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations that exist at the time of this release.
Deliverables
------------
- Arm C/C+/Fortran Compiler 21.0
- Arm Performance Libraries 21.0.0
- GCC 10.2.0
- Release Notes (this document)
- Documentation
Product documentation is available in
<install_location>/<package_name>/share, and on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
Documentation may change between product releases. For the latest
documentation bundle, check the delivery platform.
Arm tests its PDFs only in Adobe Acrobat and Acrobat Reader. Arm cannot
guarantee the quality this document when used with any other PDF reader.
A suitable file reader can be downloaded from Adobe at http://www.adobe.com
Differences from previous release
---------------------------------
Arm Compiler for Linux 21.0 includes various internal changes that
resolve defects and improve performance.
The following subsections describe the significant differences from the previous
release of Arm Compiler for Linux.
Additions and changes:
~~~~~~~~~~~~~~~~~~~~~~
This section describes the new features or components added, or any
significant technical changes to features or components, in this release.
- Arm Compiler for Linux suite 21.0:
- The module system has been overhauled in Arm Compiler for Linux 21.0. The module names have been simplified and shortened, modules are no longer visible until they are usable and the layout has been modified to take advantage of lmod features.
To load Arm C/C++/Fortran Compiler, use 'module load arm21/21.0'. Loading this module then places the corresponding Arm Performance Library modules on the modulepath. To load the Arm Performance Library modules, use 'module load armpl-AArch64{-SVE}/21.0.0'.
- The GCC toolchain that is packaged with Arm Compiler for Linux has been updated to GCC 10.2.0.
- Support has been added for Ubuntu 20.04 LTS.
- Arm Compiler for Linux no longer provides installers for SLES12 or Ubuntu 16.04 LTS.
- Arm C/C++/Fortran Compiler 21.0:
- Added support for the following CPUs:
* Neoverse N2
* Neoverse V1
To enable architectural optimizations for Neoverse N2, use '-mcpu=neoverse-n2', for Neoverse V1, use '-mcpu=neoverse-v1'.
- Arm Compiler for Linux 21.0 is based on Clang 11. The following changes should be noted:
* The default behavior of the '-f[no-]common' option has changed. In Arm Compiler for Linux 21.0, the default is '-fno-common'. C/C++ code that uses tentative definitions as definitions of a variable in multiple translation units, will trigger multiple-definition linker errors. Generally, this error occurs when the use of the 'extern' keyword is omitted in the declaration of a variable in a header file. In some cases, no specific translation unit provides a definition of the variable. To restore the Arm Compiler for Linux 20.3 behavior, use '-fcommon'.
* The default C language standard used when '-std=' is not specified has been upgraded from 'gnu11' to 'gnu17'.
* The default OpenMP standard has been upgraded to 5.0, for C/C++ compilation. To lower the support to OpenMP 4.5, use '-fopenmp-version=45'. The maximum standard level that is supported in Fortran code remains at OpenMP 4.5.
More details are available in the clang 11 release notes at:
https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html
- Arm Compiler for Linux implements changes to the Arm Architecture Vector Procedure Call Standard (AAVPCS) relating to the passing of vector parameters. The intent is to enable an optimization, by the dynamic loader called lazy binding, when a shared library is first loaded. These changes affect functions with signatures that contain scalable vector types defined as part of arm_sve.h, or functions that make explicit use of the function attribute 'aarch64_vector_pcs'.
For the optimization to work, the dynamic loader must also be compliant to the AAVPCS. Specifically, the dynamic loader must correctly handle 'STO_AARCH64_VARIANT_PCS st_other" symbol data. The required support is present in the latest glibc versions starting 2.26, and patches later than December 2020.
Using a combination of shared libraries and a dynamic loader that are incompatible with regards AAVPCS compliance, can result in runtime bugs in your program because of the corruption of vector registers when crossing function call boundaries. These bugs have symptoms that are hard to characterize and they can be hard to identify. As a limited mitigation, Arm Compiler for Linux temporarily disables lazy binding when compiling for SVE. This means that libraries that are built by Arm Compiler for Linux should work with older dynamic loaders. For full mitigation, set the 'LD_BIND_NOW=1' environment variable, which disables lazy binding for all libraries.
- Directive support in Arm Fortran Compiler has been expanded to include:
* !$mem prefetch directive (see https://developer.arm.com/documentation/101380/2100/Optimize/Directives/prefetch)
* !$ dir unroll(n) directive with an integer argument indicating the unrolling factor (see https://developer.arm.com/documentation/101380/2100/Optimize/Directives/unroll)
- The following corrections have been made to Arm Compiler for Linux Arm C Language Extensions (ACLE) support:
* Removed support for the deprecated 'svcdot' function with unsigned arguments, and accessing individual elements of ACLE vector structs using the '.' operator.
* Removed support for the 'vceqz_p16', 'vceqzq_p16', 'vmlaq_n_f64', and 'vmlsq_n_f64' Neon intrinsics.
* Removed support for the '__sizeless_struct' C/C++ language extension. A migration path for users of this option to place SVE ACLE types inside structs will be available in a future version of Arm Compiler for Linux.
* The arm_sve.h header file has been corrected to define 'svpattern' rather than 'sv_pattern', and 'svprfop' rather than 'sv_prfop'. Both types are now correctly defined as enum types.
- Arm Performance Libraries 21.0.0:
- Arm Performance Libraries now supports all real-to-real transform functions defined in the FFTW3 interface. Previously, the planner functions for these types of transforms returned NULL, indicating that they were unavailable.
- Added support for ?GEMMT BLAS extension routines for all types, performing matrix-matrix multiplication and updating the lower or upper triangular part of C only.
- Added a new suite of routines that are optimized for large batches of small linear algebra problems. Interfaces for the following real and double precision problems are provided:
* BLAS: DDOT, DGER, DGEMM, DGEMV, DSCAL, DTRMM, DTRSM, and DTRSV
* LAPACK: DGEQR (QR), DGETRF (LU), and DPOTRF (Cholesky)
* DORMQR and DORGQR (for multiplying and generating Q)
* Utility routines for packing and unpacking matrices to and from the new batched data layout
An example and full documentation are provided.
- Improved performance for:
* BLAS level 1 routines: ?IAMAX, ?NRM2, ?ASUM, and ?DOT
* BLAS level 2 routines: ?HBMV, ?SBMV, ?TBMV, ?SYR, and ?SYR2
* BLAS level 3 routines: ?TRSM and [SD]GEMM
* LAPACK routines: ?POTRF and ?GETRF (for small problems)
* General small problems
- Vector performance improvements in libamath:
* Neon functions: atan, atanf, erf, erff, exp2, exp2f, exp10, and exp10f
* SVE functions: atan, erff, cos, cosf, pow, sin, sincos, and sincosf
- Arm Performance Libraries are no longer packaged with separate libraries for individual microarchitectures. We now provide two choices of library, one which contains kernels for SVE cores and one for non-SVE cores. Automatic selection of the most appropriate kernels for the microarchitecture occurs at runtime.
Arm Compiler for Linux can use the appropriate library when either the '-mcpu=<target>' or '-march=<architecture>' options are used together with the '-armpl' option. '<target>' is a target CPU name. To use the host CPU, use 'native'. The '<architecture>' is a list of available architecture features. If any of the features enable SVE, the SVE version of library is used.
- The GCC version of the library is now compatible with GCC 10.2.0, instead of 9.3.0.
Resolved issues:
~~~~~~~~~~~~~~~~
Describes any technical issues that are resolved in this release.
- Arm Compiler for Linux suite 21.0:
- The disk space required to install Arm Compiler for Linux is reduced in version 21.0. The installer no longer allows for a partial installation using the '--only-install-microarchitectures' option. The installer options '--only-install-microarchitectures' and '--list-available-microarchitectures' are no longer supported.
- Fixed an issue where installations to a user-defined, non-default location could prevent GCC from locating its runtime libraries.
- Support for relocating modulefiles from the install location to a directory of your choosing, and for using symlinks with modulefiles, has been improved in this release. The modulefiles can now be relocated by moving the moduledeps, modulefiles, and moduleglobals directories as a group. For a more complete explanation of the limitations, see the compiler reference guides:
https://developer.arm.com/documentation/101380/2100/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles (Fortran)
or
https://developer.arm.com/documentation/101458/2100/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles (C/C++).
- An issue that caused the 'module swap' command to fail when using newer versions of the module builtin, requiring you to unload the old modulefile before loading the new modulefile, has been fixed. The 'module swap' command now works as expected.
- Arm C/C++/Fortran Compiler 21.0:
- Fixed a C++ code generation issue for floating-point multiply reductions that use SVE instructions. Previously, the result could be discarded and 'NaN' reported. The correct result is now returned.
- Fixed an armflang internal compiler error which could occur when compiling the YAXT application.
- Fixed an armflang internal compiler error which could occur when compiling Fortran code that used COMPLEX types.
- Fixed an issue in armflang with USE statements that are used in the BigDFT application.
- Fixed an issue with armflang which could cause a 'Too few data constants in initialization statement' error when compiling nested implied do-loop array initializers in librsb.
- Arm C/C++/Fortran Compiler for Linux 21.0 defines the following macros that can be used to guard code based on compiler version:
* __ARM_LINUX_COMPILER__ // always '1'
* __armclang_major__ // integer (for example '21' for version 21.0)
* __armclang_minor__ // integer (for example '0' for version 21.0)
* __armclang_version__ // human readable version string (for example '21.0' for version 21.0)
The following macros are no longer defined as of Arm Compiler for Linux 21.0:
* __ARM_HPC_COMPILER, use __ARM_LINUX_COMPILER__ instead
* __ARM_HPC_COMPILER_VERSION__, use __armclang_version__ instead
* __ARM_HPC_COMPILER_BUILD__, use __ARM_LINUX_COMPILER_BUILD__ instead
The predefined macros that are supported by Arm C/C++ Compiler are now documented in:
https://developer.arm.com/documentation/101458/2100/Optimize/Predefined-macro-support
The predefined macros that are supported by Arm Fortran Compiler are now documented in:
https://developer.arm.com/documentation/101380/2100/Fortran-language-reference/Predefined-macro-support
- Arm Performance Libraries 21.0.0:
- Prototypes are now available in armpl.h for the following LAPACKE functions:
* lapacke_?geqpf
* lapacke_?geqpf_work
* lapacke_?ggsvd
* lapacke_?ggsvd_work
* lapacke_?ggsvp
* lapacke_?ggsvp_work
Known limitations
-----------------
There are no open technical issues at the time of this release.
Get started
===========
This section describes information to help you get started with accessing,
setting up, and using Arm Compiler for Linux.
For more information, see the Get Started information on the Arm Developer
website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/get-started
Licensing information
---------------------
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run:
* For more information about Arm Allinea Studio licensing, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/licensing
* To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio
Once you have obtained a license file from Arm, follow these steps to make it
available for use.
Note: If you have a floating license, you must first download and install
Arm Licence Server:
https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server
1. Save your client, named user, or evaluation license:
- If you chose to install to the default installation directory, create a
directory called 'licenses' in /opt/arm/ and copy your client license file
to it.
- If you chose to install to a custom installation directory, create a
directory called 'licenses' in <install_location>/ and copy your client
license file to it. Set the ARM_LICENSE_DIR environment variable to
<install_location>/licenses.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
separate license for these tools, set the ARM_LICENSE_DIR environment
variable to point to <install_location>/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'
in the <install_location>/licenceserver directory and copy your license
file to it. To enable the new floating license, restart Arm Licence Server.
Prerequisites
-------------
If any of the following tools are not already installed by your Linux
distribution, you must install them before installing Arm Compiler for Linux:
- Python (version 2.7 or later)
To ensure you have the necessary version of Python for your system, install
Python using the appropriate package manager for your OS.
- C Libraries:
- SLES and RHEL: glibc-devel
- Ubuntu: libc6-dev
You must have at least 3 GB of free hard disk space to both download and unpack
the Arm Compiler for Linux package. You must also have an additional 5 GB of
free space to install the package.
Download the product
--------------------
Arm delivers the files through the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-allinea-studio
Unpack the product
------------------
To unpack the package, extract the tar file contents using a tar utility:
tar -xvf <package_name>.tar
Directory structure:
--------------------
Shows the top-level directory structure of this installer package, which is
available after you unpack the bundle:
license_terms/
arm-compiler-for-linux-21.0*.sh
RELEASE_NOTES.txt
Install the product
-------------------
To install Arm Compiler for Linux, run the installation script as a privileged
user and pass any options to configure the installation:
./arm-compiler-for-linux-21.0*.sh <option> <option>
Some common installation options are:
- For a headless installation and to automatically accept the EULA, use
the '--accept' option.
- To install to an alternate location to the default, use the
'--install-to <install_location>' option.
For a full list of supported installation options pass the '-h' or '--help'
options to the installer script.
To learn more about installing Arm Compiler for Linux, as part of Arm Allinea
Studio, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/installation
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.
RPM and DEB files
-----------------
The install packages contain RPM (.rpm) files, for Red Hat-based Linux
distributions, or DEB (.deb) files, for Debian-based Linux distributions.
To extract the .rpm or .deb files from the installer, run the installer script
with the '-s' or '--save-packages-to <directory_location>' option. If
<directory_location> is not an empty directory, you also need to include the
'-f' or '--force' option. The installer script requires you to accept
the EULA. If you accept the EULA, the .rpm or .deb files extract to
<directory_location>.
RPM files are signed by Arm's HPC GPG key. DEB files are not signed. To verify
RPM files, you can download and import the Arm's HPC GPG key, and check the
signatures:
1. Download the Arm HPC GPG public key from:
https://developer.arm.com/-/media/files/keys/GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB
2. Import the GPG key, run:
rpm --import GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB
3. Check the signature of an .rpm file, run:
rpm -K <rpm_file>
To install an RPM file, use 'rpm -i <rpm_file>'. To install a DEB file, use
'dpkg -i <deb_file>'.
Note: Arm does not recommend that you install directly from the .rpm or .deb
files. Only experienced users who are comfortable with this type of installation
route should attempt to install the Arm Compiler for Linux package using this
method.
Run the product
---------------
1. Load the environment module:
* For Arm C/C++/Fortran Compiler, use:
module load arm21/21.0
To also use Arm Performance Libraries, include the ``-armpl`` and either
the ``-march=<arg>`` or ``-mcpu=<arg>`` compiler options in your compile
and link command lines. The combination of these commands allows Arm
C/C++/Fortran Compiler to determine the appropriate version of Arm
Performance Libraries for your system at link time.
* For GCC 10.2.0 only, use:
module load gnu10/10.2.0
* For GCC 10.2.0 with Arm Performance Libraries, use:
module load gnu10/10.2.0
module load armpl-AArch64{-SVE}/21.0.0
2. Generate your executable binary.
To generate an executable binary with Arm Compiler for Linux, compile your
program with Arm C/C++/Fortran Compiler and specify any options ([options]),
the output binary name (-o <binary>), and the input file (<input>):
{armclang|armclang++|armflang} [options] -o <binary> <input>
Refer to the GCC documentation to see the equivalent command syntax for
the GCC compiler.
Examples
--------
Example code is included in this suite as part of Arm Performance
Libraries. This code can be found at:
<install_location>/<ARMPL_Name>*<ARMPL_Version>*/examples
Examples that use, and do not use, SVE are included for each of Arm
C/C++/Fortran Compiler and GCC.
To build the examples:
* For Arm Compiler for Linux:
1. Copy the examples somewhere writeable:
cp -r <install_location>/armpl-21.0.0_AArch64_*arm-linux-compiler*/examples ./
cd examples
To copy the SVE examples, replace 'AArch64' with 'AArch64-SVE' in the copy
command.
2. Load the Arm Compiler for Linux environment module:
module load arm21/21.0
3. Build the examples:
make
* For GCC:
1. Copy the examples somewhere writeable:
cp -r <install_location>/armpl-21.0.0_AArch64_*gcc*/examples ./
cd examples
To copy the SVE examples, replace 'AArch64' with 'AArch64-SVE' in the copy
command.
2. Load the GCC environment modules:
module load gnu10/10.2.0
module load armpl-AArch64/21.0.0
To load the SVE variant of the libraries, replace 'AArch64' with
'AArch64-SVE' in the module load command.
3. Build the examples:
make
Uninstall
---------
For convenience, this package includes an "uninstall.sh" script at:
<install_location>/arm-compiler-for-linux-21.0*/uninstall.sh
This script attempts to uninstall all the components supplied as part of
Arm Compiler for Linux. However, if other packages outside of this product
depend on the GCC component, GCC will not be uninstalled.
If you require support when uninstalling any version of Arm Compiler for Linux,
contact support-hpc-sw@arm.com.
Support
=======
Arm Compiler for Linux documentation is available in
<install_location>/<package_name>/share, or on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
If you have any issues with the installation, content or use of this release,
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 RHEL 7 and 8
- AArch64 SLES 15
- AArch64 Ubuntu 18.04 and 20.04
Full information about the platforms supported by Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/supported-platforms
Release history
===============
A full release history (with release notes) for Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/release-history
Arm Forge 21.0.3 Release Note
================================
Copyright (c) 2017-2021 Arm Limited (or its affiliates). All rights reserved.
Copyright (c) 2002-2017 Allinea Software Limited.
Arm proprietary notices, including confidentiality status, terminology statement, and product release status, can be found at the end of this document.
Contents
========
- Release overview
- Release contents
- Get started
- Support
- Release history
- Glossary
- Proprietary notices
Release overview
================
Product description
-------------------
Arm Forge 21.0.3 combines Arm DDT, Arm MAP, and Arm Performance Reports. Arm DDT is the leading debugger for time-saving high-performance application debugging. Arm MAP is the trusted performance profiler for invaluable optimization advice across native and Python HPC codes. Arm Performance Reports provides advanced reporting capabilities.
This release includes enhancements and bug fixes.
Release status
--------------
This is the 21.0.3 release of Arm Forge.
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 subsections detail:
- The component parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations that exist at the time of this release.
Deliverables
------------
- Arm Forge, which includes:
- Arm DDT
- Arm MAP
- Arm Performance Reports
- Release Notes (this document, also available at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history)
- Documentation is available in the documentation area of your product installation or online at:
https://developer.arm.com/documentation/101136/2103
Information about how to use the Arm HPC tools to debug, profile, and analyze many common scientific applications are available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge
Further documentation about all the tools can be found online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help
Documentation can change between product releases. For the latest product documentation, check the software downloads page on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge
Differences from previous release
---------------------------------
Differences from the previous release of Arm Forge are detailed in the following subsections.
Additions and changes
~~~~~~~~~~~~~~~~~~~~~
- Arm Forge:
Added support for GCC 11.
- Arm DDT:
Added a warning to notify when the debugger cannot debug shared libraries because of an unknown library path.
- Arm MAP and Arm Performance Reports:
None in this release.
Resolved issues
~~~~~~~~~~~~~~~
- Arm Forge:
None in this release.
- Arm DDT:
[FOR-13309] Fixed an issue that was preventing start up with GCC 11.
[FOR-13499] Fixed a bug where Python Debugging would not work correctly with SLURM if the Python binary was using the Python shared library.
- Arm MAP and Arm Performance Reports:
[FOR-12903] Fixed a numerical scaling issue with SPE counts on long profiling runs.
Deprecated features
~~~~~~~~~~~~~~~~~~~
The following features have been deprecated in this release, and might be removed in a future version:
- VisIt Visualization.
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for the IPMI energy agent.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
- Support for Python 2.x.x.
- Support for Open MPI 3.x.x.
- Support for Red Hat Enterprise Linux 7.x on aarch64 and ppc64le.
- Support for Ubuntu 16.04.
- Support for SUSE Linux Enterprise Server 12 on aarch64.
- Support for macOS High Sierra (10.13).
If you rely on this functionality, please contact support-hpc-sw@arm.com.
Known limitations
-----------------
See the known issues section on the Arm Developer website:
https://developer.arm.com/documentation/101136/2103/Appendix/Known-issues
Get started
===========
This section describes how to get started with accessing, setting up, and using Arm Forge.
For more information, see:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge/resources/get-started
Licensing information
---------------------
Arm Forge requires a valid license to run.
Note: You do not need to install a license file on a machine that is running the Remote Client for connecting remotely to Arm Forge products. The license is only required on the machine on which Arm Forge is installed.
To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-forge
To request an evaluation license, go to:
https://pages.arm.com/Hpc-trial-request.html
For more information about Arm HPC tools licensing, see:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge/licensing
When you have obtained a license file from Arm, download and install the appropriate platform version of the product here:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge
See the Arm Forge User Guide for installation methods, such as using the command-line interface and using the GUI to install Arm Forge on Windows, Linux, and MAC, at:
https://developer.arm.com/documentation/101136/2103/Arm-Forge/Installation
Run the product
---------------
See the Arm Forge User Guide for information about running each of the tools, Arm DDT, Arm MAP, and Arm Performance Reports:
https://developer.arm.com/documentation/101136/2103/Arm-Forge/Connecting-to-a-remote-system/Starting-Arm-Forge
Configure the product
---------------------
To learn how to configure the Arm Forge tools, see the user guide at:
https://developer.arm.com/documentation/101136/2103/Appendix/Configuration
Examples
--------
A range of example applications are provided with the product installation that you can use alongside information in the User Guide to explore Arm Forge functionality.
The example applications are located in the <install_directory>/examples directory.
Support
-------
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.
Tools
-----
Full information about the supported platforms for Arm Forge are available on the Developer website:
https://developer.arm.com/documentation/101136/2103/Appendix/Supported-platforms
Release history
===============
A full release history for Arm Forge is available at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history
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.
Proprietary notices
===================
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, 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.
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.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks of Arm Limited (or its affiliates) in the US 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/company/policies/trademarks.
Copyright (c) 2017-2021 Arm Limited (or its affiliates). All rights reserved.
Copyright (c) 2002-2017 Allinea Software Limited.
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
Progressive terminology statement
---------------------------------
Arm values inclusive communities. Arm recognizes that we and our industry have used terms that can be offensive. Arm strives to lead the industry and create change.
If you find offensive terms in this document, please email terms@arm.com.
- EULA
- Documentation
-
Arm Allinea Studio: 20.3 - latest update 20.3.4 March 01, 2021
What's new in 20.3 - latest update 20.3.4
Arm Allinea Studio 20.3.4 includes:
- Arm Compiler for Linux 20.3 - Released 9th September 2020
- Arm Forge 21.0 - Released 1st March 2021
Arm Compiler for Linux 20.3
Additions and changes:
- 20.3:
- Arm C/C++/Fortran Compiler:
- Arm Compiler for Linux 20.3 contains the llvm-profdata utility binary. You can use llvm-profdata to convert executable profile data into an LLVM format that the compiler can use to perform Profile Guided Optimization (PGO). Read about how to use llvm-profdata and PGO with your Fortran code at:
https://developer.arm.com/documentation/101380/2030/Optimize/Profile-Guided-Optimization--PGO-
or with your C/C++ code at:
https://developer.arm.com/documentation/101458/2030/Optimize/Profile-Guided-Optimization--PGO-
- Link Time Optimization is now supported with the '-flto' option. Arm Compiler for Linux 20.3 also now contains the armllvm-ar and armllvm-ranlib utility binaries that you can use to enable LTO with static libraries. Read about how to use LTO and the LLVM utility binaries with your Fortran code at:
https://developer.arm.com/documentation/101380/2030/Optimize/Link-Time-Optimization--LTO-
or with your C/C++ code at:
https://developer.arm.com/documentation/101458/2030/Optimize/Link-Time-Optimization--LTO-
- Arm Compiler for Linux 20.3 contains the llvm-profdata utility binary. You can use llvm-profdata to convert executable profile data into an LLVM format that the compiler can use to perform Profile Guided Optimization (PGO). Read about how to use llvm-profdata and PGO with your Fortran code at:
- Arm Performance Libraries:
- As well as in the Arm Compiler for Linux package, the Arm Performance Libraries Reference Guide is now available in HTML format on the Arm Developer website:
https://developer.arm.com/documentation/101004/latest/
- Added new BLAS level 2 extension routines, ?GERB. Use the new routines to perform a generalized outer-product with an additional scaling parameter.
For more information, see the online documentation:
https://developer.arm.com/documentation/101004/2030/BLAS-Basic-Linear-Algebra-Subprograms/BLAS-level-2
In this release, there is also improved performance for:
- BLAS level 1 routines: ?NRM2 and ?ASUM
- BLAS level 2 routines: ?GER, ?SYR, ?HER, ?SYR2, ?HER2, and ?GBMV
- LAPACK routine: DGEEV (for small eigenvalue problems)
- Improved single precision FFT performance.
- Improved libamath performance for:
- atan and atanf, in both scalar and Neon vector forms
- SVE erf
- As well as in the Arm Compiler for Linux package, the Arm Performance Libraries Reference Guide is now available in HTML format on the Arm Developer website:
- Arm C/C++/Fortran Compiler:
Resolved issues:
- 20.3:
- Arm C/C++/Fortran Compiler:
- Addressed an issue with the support of '-isystem' in Arm Fortran Compiler. You can now use the '-isystem' option with 'armflang' to add header file directories to the search path, ahead of the system header directories.
- Arm Compiler for Linux versions 20.0, 20.1, and 20.2 are missing the 'arm_fp16.h' header file in the /include directory of the package. The 'arm_fp16.h' header file is provided again in version 20.3.
- Fixed an issue in the 'arm_sve.h' header file. A bool_t type is defined but is not used in the header, however, the bool_t type could cause conflicts with other bool_t types. The bool_t type definition has been removed from 'arm_sve.h'.
- Fixed an issue that could cause some deeply nested structure types to significantly increase the compilation time.
- Resolved a Fortran code performance issue that resulted from the division of complex types.
- Improved the vectorization of loops which call functions that have vectorized versions specified using the 'declare variant' syntax. More specifically, vectorization is enabled for more cases of vector function declarations that use linear or uniform clauses.
- The Arm Compiler for Linux binaries now have a direct, relative, rpath set to the GCC installation. The rpath allows the Arm Compiler for Linux binaries to find the GCC libraries that they depend on, without requiring you to load the GCC package module or set the 'LD_LIBRARY_PATH' environment variable. If, after installation, either the Arm Compiler for Linux or GCC packages are moved causing the packages to no longer share the same root location, you must set the 'LD_LIBRARY_PATH' path again or adjust the encoded rpath.
- Addressed an issue with the support of '-isystem' in Arm Fortran Compiler. You can now use the '-isystem' option with 'armflang' to add header file directories to the search path, ahead of the system header directories.
- Arm Performance Libraries:
- Fixed a performance degradation in ?SYMV routines that was introduced in 20.2.0.
- Arm C/C++/Fortran Compiler:
Open technical issues:
-
20.3:
- Arm Compiler for Linux suite:
- After installation, if you copy module files to a different directory, or use a symlink to the module files, you might get an error when loading the 'arm-linux-compiler' environment module with 'module load'. A workaround is documented in the Arm Fortran Compiler Developer and Reference Guide:
https://developer.arm.com/documentation/101380/2030/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles
and in the Arm C/C++ Compiler Developer and Reference Guide:
https://developer.arm.com/documentation/101458/2030/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles
Module configuration flexibility will be improved in a later release of Arm Compiler for Linux.
- The module swap command does not work when using newer versions of the module builtin. To swap the module, you must unload the old module, and then load the new module.
- After installation, if you copy module files to a different directory, or use a symlink to the module files, you might get an error when loading the 'arm-linux-compiler' environment module with 'module load'. A workaround is documented in the Arm Fortran Compiler Developer and Reference Guide:
- Arm Compiler for Linux suite:
Arm Forge 21.0
Arm DDT additions and changes
21.0
- Forge for Linux is now distributed as a single package per architecture.
- Added ability to sort by column in "Cross-Thread" and "Cross-Process Comparison" views.
- Added support for GNU Compiler version 9.
- Added support for GNU Compiler version 10.
- Added GDB 10 as an optional debugger.
- Added support for Open MPI version 4.1.
- Added support for NVIDIA HPC Compiler version 20.9.
- Removed support for CUDA 8.x.
- Removed GDB 8.1 as a debugger.
- Removed support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
Arm DDT resolved issues
21.0
- [FOR-11277] Fixed an issue where DDT would not start the debug session at the expected location for non-MPI, Fortran applications.
- [FOR-9476] Fixed an issue where CUDA Memory Debugging did not track allocations made via cudaMallocPitch and cudaMalloc3D.
- [FOR-4826] Fixed an issue where watchpoints would not be removed from the GUI when going out of scope.
- [FOR-10025] Fixed an issue with missing icons in the remote file dialog on MacOS.
- [FOR-10332] Fixed an issue which could cause an internal error to occur on shutdown.
- [FOR-10154] Fixed an issue where remote clients could show unconfigurable items in the options dialog when not connected to a remote system.
- [FOR-10300] Fixed an issue displaying directory icons when browsing remote files using the Windows client.
- [FOR-10387] Fixed startup to be more robust with serial programs.
- [FOR-9980] Fixed an issue where some header files could appear under the "Sources" section of the "Project Files" view.
- [FOR-11447] Fixed an issue where the remote launch connection name did not display correctly when adding multiple new connections.
- [FOR-11986] Fixed an issue creating a clean config via the --cleanconfig command line parameter.
- [FOR-12112] Fixed an issue where the --source-dirs command-line option did not always add source directories as expected.
Arm MAP additions and changes
21.0
- Forge for Linux is now distributed as a single package per architecture.
- Added ability to use the Arm Statistical Profiling Extension to track the location of cache misses, branch mispredicts or TLB walks. Requires Arm8.2+ hardware implementing SPE.
- Improved line number accuracy while profiling optimised code.
- Incorporated the latest Perf PMU events from Linux 5.11.
- Added support for GNU Compiler version 9.
- Added support for GNU Compiler version 10.
- Added support for Open MPI version 4.1.
- Added support for NVIDIA HPC Compiler version 20.9.
- Removed support for CUDA 8.x.
- Removed support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
Arm MAP resolved issues
21.0
- [FOR-11492] Improved OpenMP region names for some compilers.
- [FOR-8536] Improved the performance of perf metrics selection lists.
- [FOR-8567] Fixed possible output of corrupted memory to user.
- [FOR-9264] Improved MAP line metrics for samples on system calls.
- [FOR-10387] Fixed startup to be more robust with serial programs.
- [FOR-11447] Fixed an issue where the remote launch connection name did not display correctly when adding multiple new connections.
- [FOR-11684] Improved MAP's ability to detect time spent in thread synchronization.
- [FOR-11935] Fixed an issue with the static sampler library on Power (ppc64le) which caused link failures.
- [FOR-11986] Fixed an issue creating a clean config via the --cleanconfig command line parameter.
- [FOR-12085] The forge-probe utility script now sources the allinearc settings file.
- [FOR-12112] Fixed an issue where the --source-dirs command-line option did not always add source directories as expected.
Arm Performance Reports additions and changes
21.0
- Forge for Linux is now distributed as a single package per architecture.
- Incorporated the latest Perf PMU events from Linux 5.11.
- Added support for GNU Compiler version 9.
- Added support for GNU Compiler version 10.
- Added support for Open MPI version 4.1.
- Added support for NVIDIA HPC Compiler version 20.9.
- Removed support for CUDA 8.x.
- Removed support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
Arm Performance Reports resolved issues
21.0
- [FOR-10387] Fixed startup to be more robust with serial programs.
- [FOR-11684] Improved MAP's ability to detect time spent in thread synchronization.
- [FOR-11935] Fixed an issue with the static sampler library on Power (ppc64le) which caused link failures.
- [FOR-11986] Fixed an issue creating a clean config via the --cleanconfig command line parameter.
- [FOR-12085] The forge-probe utility script now sources the allinearc settings file.
Deprecated features
The following features remain deprecated since the release of version 21.0, and might be removed in a future version:
- VisIt Visualization.
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for the IPMI energy agent.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
- Support for Python 2.x.x.
- Support for Open MPI 3.x.x.
- Support for Red Hat Enterprise Linux 7.x on aarch64 and ppc64le.
- Support for Ubuntu 16.04.
Known issues
Please refer to the known issues page.
-
Release Note for Arm Allinea Studio 20.3 - latest update 20.3.4
×The ordering of the Release Notes are:
1) Arm Compiler for Linux 20.3 Release Note
2) Arm Forge 21.0 Release NoteArm Compiler for Linux 20.3 Release Note
Arm Forge 21.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,
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 click through or signed written agreement covering this
document with Arm, then the click through or 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.
The Arm corporate logo and words marked with ® or ™ are registered trademarks
or trademarks of Arm Limited (or its affiliates) in the US 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/company/policies/trademarks.
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 that are 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
================
Product description
-------------------
The Arm Compiler for Linux 20.3 suite provides a complete
compiling environment for natively developing and tuning your server and HPC
applications on Armv8-A based platforms. Arm Compiler for Linux 20.3
includes support for targets that implement the Scalable Vector Extension (SVE)
and Scalable Vector Extension version two (SVE2) for Armv8-A AArch64.
The suite contains the following packages:
- Arm C/C++/Fortran Compiler 20.3
Arm Compiler is a Linux user-space C/C++ and Fortran compiler tailored for
scientific computing, HPC, and enterprise workloads.
- Arm Performance Libraries 20.3.0
Multiple Arm Performance Libraries packages are provided, each of which are
optimized for individual Armv8 AArch64 implementations (Arm® Neoverse™ N1,
Marvell ThunderX2, and Fujitsu A64FX (SVE-enabled)). Generic versions for
Armv8.0-A and SVE are also provided. All packages are compatible with
Arm C/C++/Fortran Compiler.
The package also includes builds of the libraries which are compatible with
GNU GCC 9.3.0.
- GNU GCC 9.3.0
To provide the optimal experience on the latest Arm server and HPC systems
when using the Arm Performance Libraries and GCC, a build of
GNU's GCC 9.3.0 release is provided for convenience. It is also
provided for OpenMP/libgfortran compatibility with Arm Performance Libraries.
As a GNU tool suite, the GPL-licensed source code can be downloaded
separately.
Release Status
--------------
This is the 20.3 release of the Arm Compiler for Linux
software.
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 describe:
- The product parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations that exist at the time of this release.
Deliverables
------------
- Arm C/C+/Fortran Compiler 20.3
- Arm Performance Libraries 20.3.0
- GNU GCC 9.3.0
- Release Notes (this document)
- Documentation (product documentation is available in
<install_location>/<package_name>/share, and on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources)
Documentation may change between product releases. For the latest
documentation bundle, check the delivery platform.
Arm tests its PDFs only in Adobe Acrobat and Acrobat Reader. Arm cannot
guarantee the quality this document when used with any other PDF reader.
A suitable file reader can be downloaded from Adobe at http://www.adobe.com
Differences from previous release
---------------------------------
Arm Compiler for Linux 20.3 includes various internal changes that
resolve defects and improve performance.
The following subsections describe the significant differences from the previous
release of Arm Compiler for Linux.
Additions and changes:
~~~~~~~~~~~~~~~~~~~~~~
This section describes the new features or components added, or any
significant technical changes to features or components, in this release.
- Arm C/C++/Fortran Compiler 20.3:
- Arm Compiler for Linux 20.3 contains the llvm-profdata utility binary. You
can use llvm-profdata to convert executable profile data into an LLVM format
that the compiler can use to perform Profile Guided Optimization (PGO). Read
about how to use llvm-profdata and PGO with your Fortran code at
https://developer.arm.com/documentation/101380/2030/Optimize/Profile-Guided-Optimization--PGO-
or with your C/C++ code at
https://developer.arm.com/documentation/101458/2030/Optimize/Profile-Guided-Optimization--PGO-.
- Link Time Optimization is now supported with the '-flto' option. Arm
Compiler for Linux 20.3 also now contains the armllvm-ar and armllvm-ranlib
utility binaries that you can use to enable LTO with static libraries. Read
about how to use LTO and the LLVM utility binaries with your Fortran code at
https://developer.arm.com/documentation/101380/2030/Optimize/Link-Time-Optimization--LTO-,
or with your C/C++ code at
https://developer.arm.com/documentation/101458/2030/Optimize/Link-Time-Optimization--LTO-.
- Arm Performance Libraries 20.3.0:
- As well as in the Arm Compiler for Linux package, the Arm Performance
Libraries Reference Guide is now available in HTML format on the Arm
Developer website: https://developer.arm.com/documentation/101004/latest/.
- Added new BLAS level 2 extension routines, ?GERB. Use the new routines to
perform a generalized outer-product with an additional scaling parameter.
For more information, see the online documentation:
https://developer.arm.com/documentation/101004/2030/BLAS-Basic-Linear-Algebra-Subprograms/BLAS-level-2.
In this release, there is also improved performance for:
* BLAS level 1 routines: ?NRM2 and ?ASUM
* BLAS level 2 routines: ?GER, ?SYR, ?HER, ?SYR2, ?HER2, and ?GBMV
* LAPACK routine: DGEEV (for small eigenvalue problems)
- Improved single precision FFT performance.
- Improved libamath performance for:
* atan and atanf, in both scalar and Neon vector forms
* SVE erf
Resolved issues:
~~~~~~~~~~~~~~~~
Describes any technical issues that are resolved in this release.
- Arm C/C++/Fortran Compiler 20.3:
- Addressed an issue with the support of '-isystem' in Arm Fortran Compiler.
You can now use the '-isystem' option with 'armflang' to add header file
directories to the search path, ahead of the system header directories.
- Arm Compiler for Linux versions 20.0, 20.1, and 20.2 are missing the
'arm_fp16.h' header file in the /include directory of the package. The
'arm_fp16.h' header file is provided again in version 20.3.
- Fixed an issue in the 'arm_sve.h' header file. A bool_t type is defined but
is not used in the header, however, the bool_t type could cause conflicts
with other bool_t types. The bool_t type definition has been removed from
'arm_sve.h'.
- Fixed an issue that could cause some deeply nested structure types to
significantly increase the compilation time.
- Resolved a Fortran code performance issue that resulted from the division of
complex types.
- Improved the vectorization of loops which call functions that have
vectorized versions specified using the 'declare variant' syntax. More
specifically, vectorization is enabled for more cases of vector function
declarations that use linear or uniform clauses.
- The Arm Compiler for Linux binaries now have a direct, relative, rpath set
to the GCC installation. The rpath allows the Arm Compiler for Linux
binaries to find the GCC libraries that they depend on, without requiring
you to load the GCC package module or set the 'LD_LIBRARY_PATH' environment
variable. If, after installation, either the Arm Compiler for Linux or GCC
packages are moved causing the packages to no longer share the same root
location, you must set the 'LD_LIBRARY_PATH' path again or adjust the
encoded rpath.
- Arm Performance Libraries 20.3.0:
- Fixed a performance degradation in ?SYMV routines that was introduced in
20.2.0.
Known limitations
-----------------
The following subsection describes any issues that are known at the time of
this release.
Open technical issues:
~~~~~~~~~~~~~~~~~~~~~~
Describes any technical issues that are open at the time of this release.
- Arm Compiler for Linux suite 20.3:
- After installation, if you copy module files to a different directory, or
use a symlink to the module files, you might get an error when loading the
'arm-linux-compiler' environment module with 'module load'. A workaround is
documented in the Arm Fortran Compiler
https://developer.arm.com/documentation/101380/2030/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles
and Arm C/C++ Compiler
https://developer.arm.com/documentation/101458/2030/Troubleshoot/Error-moving-Arm-Compiler-for-Linux-modulefiles
Developer and Reference guides. Module configuration flexibility will be
improved in a later release of Arm Compiler for Linux.
- The module swap command does not work when using newer versions of the
module builtin. To swap the module, you must unload the old module, and then
load the new module.
Get started
===========
This section describes information to help you get started with accessing,
setting up, and using Arm Compiler for Linux.
For more information, see the Get Started information on the Arm Developer
website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/get-started
Licensing information
---------------------
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run:
* For more information about Arm Allinea Studio licensing, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/licensing
* To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio
Once you have obtained a license file from Arm, follow these steps to make it
available for use.
Note: If you have a floating license, you must first download and install
Arm Licence Server:
https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server
1. Save your client, named user, or evaluation license:
- If you chose to install to the default installation directory, create a
directory called 'licenses' in /opt/arm/ and copy your client license file
to it.
- If you chose to install to a custom installation directory, create a
directory called 'licenses' in <install_location>/ and copy your client
license file to it. Set the ARM_LICENSE_DIR environment varible to
<install_location>/licenses.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
separate license for these tools, set the ARM_LICENSE_DIR environment
variable to point to <install_location>/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'
in the <install_location>/licenceserver directory and copy your license
file to it. To enable the new floating license, restart Arm Licence Server.
Prerequisites
-------------
If any of the following tools are not already installed by your Linux
distribution, you must install them before installing Arm Compiler for Linux:
- 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-allinea-studio
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:
--------------------
Shows the principal directory structure of this release created after unpacking
the bundle:
license_terms/
arm-compiler-for-linux-20.3*.sh
RELEASE_NOTES.txt
Install the product
-------------------
To install Arm Compiler for Linux, run the installation script as a privileged
user and pass any options to configure the installation:
./arm-compiler-for-linux-20.3*.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.
- To only install the required packages for a subset of the supported
microarchitectures, use the
'--only-install-microarchitectures=<microarch>,<microarch>' option. To list
the available microarchitectures, use '--list-available-microarchitectures'.
Note: For both of these options there is a delay between running
the script and receiving a response.
For a full list of supported installation options, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/installation/install-package
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. To get the best performance, Arm recommends
that you use the version that matches your platform.
* For Arm C/C++/Fortran Compiler with Arm Performance Libraries:
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler/20.3
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler-20.3/<ARMPL_Name>/20.3.0
* For Arm C/C++/Fortran Compiler only:
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler/20.3
Note: If you are using the GNU GCC packaged in Arm Compiler for Linux, use:
* For GNU GCC 9.3.0 with Arm Performance Libraries:
module load <architecture>/<OS>/<OS_Version>/gcc/9.3.0
module load <architecture>/<OS>/<OS_Version>/gcc-9.3.0/<ARMPL_Name>/20.3.0
* For GNU GCC 9.3.0 only:
module load <architecture>/<OS>/<OS_Version>/gcc/9.3.0
2. To generate an executable binary with Arm Compiler for Linux, compile your
program with Arm C/C++/Fortran Compiler and specify any options ([options]),
the output binary name (-o <binary>), and the input file (<input>):
{armclang|armclang++|armflang} [options] -o <binary> <input>
3. Run the generated binary <binary>:
./<binary>
Examples
--------
Example code is included in this suite as part of Arm Performance
Libraries. This code can be found at:
<install_location>/<ARMPL_Name>*<ARMPL_Version>*/examples
You need to copy this code to a writeable directory and load both the
Arm C/C++/Fortran Compiler and Arm Performance Libraries environment modules
for the examples to build.
For example:
1. Copy the examples somewhere writeable:
cp -r <install_location>/armpl-20.3.0_*arm-linux-compiler*/examples ./
cd examples
2. Load the correct environment modules:
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler/20.3
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler-20.3/<ARMPL_Name>/20.3.0
3. Build it:
make
Uninstall
---------
For convenience, this package includes an "uninstall.sh" script at:
<install_location>/arm-compiler-for-linux-20.3*/uninstall.sh
This script attempts to uninstall all the components supplied as part of
Arm Compiler for Linux. However, if other packages outside of this product
depend on the GNU GCC component, GNU GCC will not be uninstalled.
If you require support when uninstalling any version of Arm Compiler for Linux,
open a support case.
Support
=======
Arm Compiler for Linux documentation is available in
<install_location>/<package_name>/share, or on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
If you have any issues with the installation, content or use of this release,
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 Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/supported-platforms
Release history
===============
A full release history (with release notes) for Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/release-history
================================
Copyright (c) 2017-2021 Arm Limited (or its affiliates). All rights reserved.
Copyright (c) 2002-2017 Allinea Software Limited.
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, 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 click through or signed written agreement covering this document with Arm, then the click through or 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.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks of Arm Limited (or its affiliates) in the US 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/company/policies/trademarks.
Copyright (c) 2017-2021 Arm Limited (or its affiliates). All rights reserved.
Copyright (c) 2002-2017 Allinea Software Limited.
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
Progressive terminology statement
---------------------------------
Arm values inclusive communities. Arm recognizes that we and our industry have used terms that can be offensive. Arm strives to lead the industry and create change.
If you find offensive terms in this document, please email terms@arm.com.
Contents
========
- Glossary
- Release overview
- Release contents
- Get started
- Support
- Release History
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
================
Product description
-------------------
Arm Forge 21.0 combines Arm DDT, Arm MAP, and Arm Performance Reports. Arm DDT is the leading debugger for time-saving high-performance application debugging. Arm MAP is the trusted performance profiler for invaluable optimization advice across native and Python HPC codes. Arm Performance Reports provides advanced reporting capabilities.
This release includes enhancements and bug fixes.
Release status
--------------
This is the 21.0 release of Arm Forge.
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 subsections detail:
- The component parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations that exist at the time of this release.
Deliverables
------------
Note: Product Download Hub (PDH) delivers all product parts in a single package.
- Arm Forge, which includes:
- Arm DDT
- Arm MAP
- Arm Performance Reports
- Release Notes (this document, also available at: https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history)
- Documentation is available in the documentation area of your product installation or online at:
https://developer.arm.com/documentation/101136/2100
Information about how to use the Arm HPC tools to debug, profile, and analyze many common scientific applications are available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge
Further documentation about all the tools can be found online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help
Documentation can change between product releases. For the latest product documentation, check the software downloads page on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge
Arm tests the PDF only in Adobe Acrobat and Acrobat Reader and cannot guarantee the quality of the represented document when used with any other PDF reader. A suitable file reader can be downloaded from Adobe at http://www.adobe.com.
Differences from previous release
---------------------------------
Differences from the previous release of Arm Forge are detailed in the following subsections.
Additions and changes
~~~~~~~~~~~~~~~~~~~~~
- Arm DDT:
Forge for Linux is now distributed as a single package per architecture.
Added ability to sort by column in "Cross-Thread" and "Cross-Process Comparison" views.
Added support for GNU Compiler version 9.
Added support for GNU Compiler version 10.
Added GDB 10 as an optional debugger.
Added support for Open MPI version 4.1.
Added support for NVIDIA HPC Compiler version 20.9.
Removed support for CUDA 8.x.
Removed GDB 8.1 as a debugger.
Removed support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
- Arm MAP:
Forge for Linux is now distributed as a single package per architecture.
Added ability to use the Arm Statistical Profiling Extension to track the location of cache misses, branch mispredicts or TLB walks. Requires Arm8.2+ hardware implementing SPE.
Improved line number accuracy while profiling optimised code.
Incorporated the latest Perf PMU events from Linux 5.11.
Added support for GNU Compiler version 9.
Added support for GNU Compiler version 10.
Added support for Open MPI version 4.1.
Added support for NVIDIA HPC Compiler version 20.9.
Removed support for CUDA 8.x.
Removed support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
- Arm Performance Reports:
Forge for Linux is now distributed as a single package per architecture.
Incorporated the latest Perf PMU events from Linux 5.11.
Added support for GNU Compiler version 9.
Added support for GNU Compiler version 10.
Added support for Open MPI version 4.1.
Added support for NVIDIA HPC Compiler version 20.9.
Removed support for CUDA 8.x.
Removed support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
Resolved issues
~~~~~~~~~~~~~~~
- Arm DDT:
[FOR-11277] Fixed an issue where DDT would not start the debug session at the expected location for non-MPI, Fortran applications.
[FOR-9476] Fixed an issue where CUDA Memory Debugging did not track allocations made via cudaMallocPitch and cudaMalloc3D.
[FOR-4826] Fixed an issue where watchpoints would not be removed from the GUI when going out of scope.
[FOR-10025] Fixed an issue with missing icons in the remote file dialog on MacOS.
[FOR-10332] Fixed an issue which could cause an internal error to occur on shutdown.
[FOR-10154] Fixed an issue where remote clients could show unconfigurable items in the options dialog when not connected to a remote system.
[FOR-10300] Fixed an issue displaying directory icons when browsing remote files using the Windows client.
[FOR-10387] Fixed startup to be more robust with serial programs.
[FOR-9980] Fixed an issue where some header files could appear under the "Sources" section of the "Project Files" view.
[FOR-11447] Fixed an issue where the remote launch connection name did not display correctly when adding multiple new connections.
[FOR-11986] Fixed an issue creating a clean config via the --cleanconfig command line parameter.
[FOR-12112] Fixed an issue where the --source-dirs command-line option did not always add source directories as expected.
- Arm MAP:
[FOR-11492] Improved OpenMP region names for some compilers.
[FOR-8536] Improved the performance of perf metrics selection lists.
[FOR-8567] Fixed possible output of corrupted memory to user.
[FOR-9264] Improved MAP line metrics for samples on system calls.
[FOR-10387] Fixed startup to be more robust with serial programs.
[FOR-11447] Fixed an issue where the remote launch connection name did not display correctly when adding multiple new connections.
[FOR-11684] Improved MAP's ability to detect time spent in thread synchronization.
[FOR-11935] Fixed an issue with the static sampler library on Power (ppc64le) which caused link failures.
[FOR-11986] Fixed an issue creating a clean config via the --cleanconfig command line parameter.
[FOR-12085] The forge-probe utility script now sources the allinearc settings file.
[FOR-12112] Fixed an issue where the --source-dirs command-line option did not always add source directories as expected.
- Arm Performance Reports:
[FOR-10387] Fixed startup to be more robust with serial programs.
[FOR-11684] Improved MAP's ability to detect time spent in thread synchronization.
[FOR-11935] Fixed an issue with the static sampler library on Power (ppc64le) which caused link failures.
[FOR-11986] Fixed an issue creating a clean config via the --cleanconfig command line parameter.
[FOR-12085] The forge-probe utility script now sources the allinearc settings file.
Deprecated features
~~~~~~~~~~~~~~~~~~~
The following features have been deprecated in this release, and might be removed in a future version:
- VisIt Visualization.
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for the IPMI energy agent.
- Support for PAPI metrics in MAP. Arm recommends using perf metrics instead.
- Support for Python 2.x.x.
- Support for Open MPI 3.x.x.
- Support for Red Hat Enterprise Linux 7.x on aarch64 and ppc64le.
- Support for Ubuntu 16.04.
If you rely on this functionality, open a support case.
Known limitations
-----------------
See the known issues section on the Arm Developer website:
https://developer.arm.com/documentation/101136/2100/Known-issues
Get started
===========
This section describes how to get started with accessing, setting up, and using Arm Forge.
For more information, see:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge/resources/get-started
Licensing information
---------------------
Arm Forge requires a valid license to run.
Note: You do not need to install a license file on a machine that is running the Remote Client for connecting remotely to Arm Forge products. The license is only required on the machine on which Arm Forge is installed.
To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-forge
To request an evaluation license, go to:
https://pages.arm.com/Hpc-trial-request.html
For more information about Arm HPC tools licensing, see:
https://developer.arm.com/documentation/101169/2100/Using-Arm-Licence-Server.
When you have obtained a license file from Arm, download and install the appropriate platform version of the product here:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge
See the Arm Forge User Guide for installation methods, such as using the command-line interface and using the GUI to install Arm Forge on Windows, Linux, and MAC, at:
https://developer.arm.com/documentation/101136/2100/Arm-Forge/Installation
Run the product
---------------
See the Arm Forge User Guide for information about running each of the components, Arm DDT, Arm MAP, and Arm Performance Reports:
https://developer.arm.com/documentation/101136/2100/Arm-Forge/Starting-Arm-Forge
Configure the product
---------------------
To learn how to configure the Arm Forge components, see the user guide at:
https://developer.arm.com/documentation/101136/2100/Configuration
Examples
--------
A range of example applications are provided with the product installation that you can use alongside information in the User Guide to explore Arm Forge functionality.
The example applications are located in the <install_directory>/examples directory.
Support
-------
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.
Tools
-----
Full information about the supported platforms for Arm Forge are available on the Developer website:
https://developer.arm.com/documentation/101136/2100/Supported-platforms
Release history
===============
A full release history for Arm Forge is available at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history
- EULA
- Documentation
-
Arm Allinea Studio: 20.2 - latest update 20.2.1 August 07, 2020
What's new in 20.2 - latest update 20.2.1
Arm Allinea Studio 20.2.1 includes:
- Arm Compiler for Linux 20.2.1 - Released 7th August 2020
- Arm Forge 20.1.1 - Released 21st July 2020
Previous Arm Allinea Studio 20.2 versions included:
- 20.2.0
- Arm Compiler for Linux 20.2 - Released 26th June 2020
- Arm Forge 20.1 - Released 26th June 2020
Arm Compiler for Linux 20.2.1
Additions and changes:
- 20.2.1:
- There are no new features or components added, or any technical changes to features or components, in the 20.2.1 release.
- There are no new features or components added, or any technical changes to features or components, in the 20.2.1 release.
- 20.2:
- Arm Compiler for Linux suite:
- Arm Compiler for Linux no longer supplies a ‘suite’ environment module (previously available as ‘<architecture>/<OS>/<OS_Version>/suites/arm-compiler-for-linux/<version>‘). Instead, to prepare your system environment for Arm C/C++/Fortran Compiler, load and use the ‘<architecture>/<OS>/<OS_Version>/arm-linux-compiler/<version>’ environment module.
- The version of GCC that is packaged with Arm Compiler for Linux is now GCC 9.3.0 instead of GCC 9.2.0. A version of Arm Performance Libraries that is compatible with GCC 9.3.0 is also included.
- Arm C/C++/Fortran Compiler:
- We have restructured the Arm C/C++ Compiler and Arm Fortran Compiler reference guides. If you have bookmarked a topic whose URL address has changed, you will need to update it.
- We have restructured the Arm C/C++ Compiler and Arm Fortran Compiler reference guides. If you have bookmarked a topic whose URL address has changed, you will need to update it.
- Arm Performance Libraries:
- 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.
- Arm Compiler for Linux suite:
Resolved issues:
- 20.2.1:
- Arm Compiler for Linux suite:
- Where an Operating System (OS) does not provide an un-versioned 'python' binary, such as RHEL 8 and SLES 15, the correct Python version is now referenced for that OS.
- Fixed an issue that caused the 'arm-linux-compiler' environment module to function incorrectly on some systems that use the 'lmod' module system.
- The default timeout limit for Arm Compiler for Linux to check out a license from Arm Licence Server has been increased from 2 seconds to 10 seconds. To manually configure the timeout limit for your system, set the 'ARM_LICENCE_TIMEOUT' environment variable to a timeout value (in seconds). 'ARM_LICENCE_TIMEOUT' is a new environment variable that has been added in the 20.2.1 release.
- Arm C/C++/Fortran Compiler:
- Arm Compiler for Linux versions 20.0, 20.1, and 20.2 are missing the 'arm_fp16.h' header file in the /include directory of the package. The 'arm_fp16.h' header file is provided again in version 20.2.1.
- Fixed an issue in the 'arm_sve.h' header file. A bool_t type is defined but is not used in the header, however, the bool_t type could cause conflicts with other bool_t types. The bool_t type definition has been removed from 'arm_sve.h'.
- Fixed an issue that could cause some deeply nested structure types to significantly increase the compilation time.
- Arm Compiler for Linux suite:
- 20.2:
- Arm Compiler for Linux suite:
- Fixed an issue which could occur when installing the package in non-english locales.
- Fixed an issue which could occur when installing the package in non-english locales.
- Arm C/C++/Fortran Compiler:
- The libbfd libraries that were previously included in the Arm Compiler for Linux package, have been removed. Arm recommends that you use the libraries on your system.
- Fixed an issue in Arm C/C++ Compiler that was causing a compilation failure. The failure would happen when the compiler parses an openmp declare variant pragma that has all its function arguments decorated with the linear clause.
- Fixed further bugs that were preventing the correct build and execution of some workloads on SVE-based systems.
- Arm Performance Libraries:
- Fixed a bug in the LAPACK *POTRF routines that would cause a crash when using multiple threads, and when operating on large matrices.
- Arm Compiler for Linux suite:
Open technical issues:
-
20.2.1 and 20.2:
- Arm Compiler for Linux suite:
- The module swap command does not work when using newer versions of the module builtin. To swap the module, you must unload the old module, and then load the new module.
- Arm C/C++/Fortran Compiler:
- To function correctly on RHEL 8 systems, Arm Compiler for Linux relies on using the LD_LIBRARY_PATH environment variable. If you need to unset this environment variable, the compiler might fail to find libstdc++.so.6. If you are affected by this issue, contact the Arm Support team who will help determine a workaround for your system.
- Copying module files to a different directory after installation, or using a symlink to the module files, might result in an error using 'module load'. If this issue affects you, to get the correct advice for your system configuration, please contact Arm support. Module configuration flexibility will be improved in a later release of Arm Compiler for Linux.
- Arm Compiler for Linux suite:
Arm Forge 20.1
Arm DDT additions and changes:
-
20.1.1
- None in this release.
- None in this release.
-
20.1
- Performance Reports is now packaged alongside DDT and MAP in the Forge installation. Performance Reports users should now download and install Forge, and can find documentation in the Forge user guide.
- Stepping and breakpoints are now supported in Python 3 code.
- Interpreted Python stacks are now merged inline with the native stack to give a simplified view of Python applications. The evaluation window supports full Python expressions, including assignments, calculations and function calls.
- Python interpreter debug symbols are no longer required for Python debugging.
- Added support for Arm Compiler for Linux 20.1.
- Added support for Arm Compiler for Linux 20.2.
- Added support for GNU 8.3.0 compiler.
- Changed the default DDT debugger to Forge GDB 8.2.
- Added support for MVAPICH 2.3.x.
- Static analysis for C++ updated to use cppcheck 1.89.
- Added support for Red Hat Enterprise Linux/CentOS 8.
- Added support for Open MPI 4.0.x.
- Deprecated ddt-client and allinea-client (used for manual launch), please use forge-client instead.
Deprecated ddt-mpirun (used in .qtf scripts), please use forge-mpirun instead. - The backend daemon ddt-debugger has been renamed forge-backend and moved to the libexec directory. The frontend process ddt.bin has been renamed forge.bin.
- Added support for Cuda 10.2 Debugging.
- Allow MPI implementation to be specified via command-line options --mpi and --list-mpis.
- Added support for PGI 20.1.
- Forge and Licence Server are now built with Qt5 which comes with better OS X support.
- Removed support for some obsolete compilers and MPIs. See "Supported Platforms" in the user guide for more information.
- Added the version number to the default install path on Windows and Linux, to allow multiple versions to be installed alongside each other.
Arm DDT resolved issues:
- 20.1.1
- [FOR-10263] Fixed a crash that occurred when viewing Fortran arrays as vectors.
- [FOR-10192] Fixed an issue which could cause the wrong remote launch connection to be selected.
- 20.1
- [FOR-10146] Fixed a bug that caused the Windows installer to crash when opening the release notes.
- [FOR-6608] Fixed an issue where std::string did not display correctly when using the PGI compiler.
- [FOR-9981] Fixed a help link in the MDA Viewer.
- [FOR-4149] Fixed a bug where the "Compare across threads" button in "View Pointers Details" did not work when accessed via the "Current Memory Usage" Tool.
- [FOR-8854] A document history page is now included in the Arm Forge User Guide listing the version history.
- [FOR-8977] Fixed an array sorting issue with the variable viewer.
- [FOR-9068] Fixed a race condition from within cuda-gdb which caused DDT to occasionally fail when launching a kernel.
- [FOR-9236] Fixed an issue which occasionally displays this benign warning message "'libmap-sampler.so' from LD_PRELOAD cannot be preloaded".
- [FOR-9271] Fixed an issue where OpenMPI occasionally displays a SIGPIPE signal during startup, causing a failure.
- [FOR-6070] Fixed an issue with example builds to allow spaces, ampersand (&), and hash (#) in the pathname.
- [FOR-9934] Fixed a bug where using fence post checking with aligned memory allocators, such as posix_memalign, would lead to buffer overflows.
- [FOR-9735] Fixed a bug whereby the C++ standard library used by Forge could interfere with target programs.
- [FOR-9828] Fixed an issue whereby std::ofstream usage would not be correctly categorised as I/O when profiling.
- [FOR-10036] Fixed possible crash when closing assembly view.
- [FOR-10106] Fix crash when accepting Reverse Connect requests.
- [FOR-9918] Fixed a bug where DDT potentially crashes when the program being debugged was signalled when evaluating expressions in gdb.
- [FOR-9519] Improved the security of the Windows Remote Client.
- [FOR-10096] The stereo rendering mode has been removed from the Array Viewer visualisation tool.
- [FOR-10144] Fixed a crash that can occur in the Arm Forge remote client when connecting to remote session.
- [FOR-9827] Fixed a crash that occurred when viewing Fortran arrays (PGI 19.5, 20.1 and Arm Compiler for Linux 20.2).
- [FOR-10279] Fixed a bug which caused segfaults while opening and closing some context menus.
Arm MAP additions and changes:
- 20.1.1
- None in this release.
- None in this release.
- 20.1
- Performance Reports is now packaged alongside DDT and MAP in the Forge installation. Performance Reports users should now download and install Forge, and can find documentation in the Forge user guide.
- Added support for Python 3.8 profiling.
- Added GPU Metrics for ppc64le systems.
- Removed the following GPU Metrics to increase performance and stability of GPU Profiling: "temperature" and "time spent in global memory accesses".
- Added support for Arm Compiler for Linux 20.1.
- Added support for Arm Compiler for Linux 20.2.
- Added support for GNU 8.3.0 compiler.
- Added support for CUDA 10.2 Profiling.
- Added support for MVAPICH 2.3.x.
- forge-probe now shows a warning if security settings may prevent the collection of Perf-based metrics.
- Static analysis for C++ updated to use cppcheck 1.89.
- Added support for Red Hat Enterprise Linux/CentOS 8.
- Added support for Open MPI 4.0.x.
- Deprecated ddt-client and allinea-client (used for manual launch), please use forge-client instead.
- Deprecated ddt-mpirun (used in .qtf scripts), please use forge-mpirun instead.
- The backend daemon ddt-debugger has been renamed forge-backend and moved to the libexec directory. The frontend process ddt.bin has been renamed forge.bin.
- A warning displays if GPU profiling is prevented by the nvidia module parameter NVreg_RestrictProfilingToAdminUsers.
- Allow MPI implementation to be specified via command-line options --mpi and --list-mpis.
- Added support for PGI 20.1.
- Forge and Licence Server are now built with Qt5 which comes with better OS X support.
- Removed support for some obsolete compilers and MPIs. See "Supported Platforms" in the user guide for more information.
- Added the version number to the default install path on Windows and Linux, to allow multiple versions to be installed alongside each other.
Arm MAP resolved issues:
-
20.1.1
- [FOR-10192] Fixed an issue which could cause the wrong remote launch connection to be selected.
- [FOR-10192] Fixed an issue which could cause the wrong remote launch connection to be selected.
- 20.1
- [FOR-10146] Fixed a bug that caused the Windows installer to crash when opening the release notes.
- [FOR-8547] Fixed an issue with a mismatch between some line breakdowns and adjacent sparkline graphs.
- [FOR-8854] A document history page is now included in the Arm Forge User Guide listing the version history.
- [FOR-9236] Fixed an issue which occasionally displays this benign warning message "'libmap-sampler.so' from LD_PRELOAD cannot be preloaded".
- [FOR-9271] Fixed an issue where OpenMPI occasionally displays a SIGPIPE signal during startup, causing a failure.
- [FOR-6070] Fixed an issue with example builds to allow spaces, ampersand (&), and hash (#) in the pathname.
- [FOR-9735] Fixed a bug whereby the C++ standard library used by Forge could interfere with target programs.
- [FOR-10106] Fix crash when accepting Reverse Connect requests.
- [FOR-9377] Fixed a bug in physical core count reported when profiling on a machine with disabled cores.
Arm Performance Reports additions and changes:
-
20.1.1
- None in this release.
- None in this release.
- 20.1
- Performance Reports is now packaged alongside DDT and MAP in the Forge installation. Performance Reports users should now download and install Forge, and can find documentation in the Forge user guide.
- Added support for Python 3.8 profiling.
- Added GPU Metrics for ppc64le systems.
- Removed the following GPU Metrics to increase performance and stability of GPU Profiling: "temperature" and "time spent in global memory accesses".
- Added support for Arm Compiler for Linux 20.1.
- Added support for Arm Compiler for Linux 20.2.
- Added support for GNU 8.3.0 compiler.
- Added support for CUDA 10.2 Profiling.
- Added support for MVAPICH 2.3.x.
- Added support for Red Hat Enterprise Linux/CentOS 8.
- Added support for Open MPI 4.0.x.
- Allow MPI implementation to be specified via command-line options --mpi and --list-mpis.
- Added support for PGI 20.1.
- Forge and Licence Server are now built with Qt5 which comes with better OS X support.
- Removed support for some obsolete compilers and MPIs. See "Supported Platforms" in the user guide for more information.
- Added the version number to the default install path on Windows and Linux, to allow multiple versions to be installed alongside each other.
Arm Performance Reports resolved issues:
-
20.1.1
- None in this release.
- None in this release.
- 20.1
- [FOR-8854] A document history page is now included in the Arm Forge User Guide listing the version history.
- [FOR-9271] Fixed an issue where OpenMPI occasionally displays a SIGPIPE signal during startup, causing a failure.
- [FOR-6070] Fixed an issue with example builds to allow spaces, ampersand (&), and hash (#) in the pathname.
- [FOR-9735] Fixed a bug whereby the C++ standard library used by Forge could interfere with target programs.
Arm Forge deprecated features:
The following features have been deprecated in the stated release, and might be removed in a future version:
- 20.1
- VisIt Visualization.
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for CUDA 8.x
- Support for Python 2.x.x.
- Support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
Arm Forge known issues
Please refer to the known issues page
-
Release Note for Arm Allinea Studio 20.2 - latest update 20.2.1
×The ordering of the Release Notes are:
1) Arm Compiler for Linux 20.2.1 Release Note
2) Arm Forge 20.1.1 Release NoteArm Compiler for Linux 20.2.1 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
================
Product description
-------------------
The Arm Compiler for Linux 20.2.1 suite provides a complete
compiling environment for natively developing and tuning your server and HPC
applications on Armv8-A based platforms. Arm Compiler for Linux 20.2.1
includes support for targets that implement the Scalable Vector Extension (SVE)
and Scalable Vector Extension version two (SVE2) for Armv8-A AArch64.
The suite contains the following packages:
- Arm C/C++/Fortran Compiler 20.2.1
Arm Compiler is a Linux user-space C/C++ and Fortran compiler tailored for
scientific computing, HPC, and enterprise workloads.
- Arm Performance Libraries 20.2.1
Multiple Arm Performance Libraries packages are provided, each of which are
optimized for individual Armv8 AArch64 implementations (Arm® Neoverse™ N1,
Marvell ThunderX2, and Fujitsu A64FX (SVE-enabled)). Generic versions for
Armv8.0-A and SVE are also provided. All packages are compatible with
Arm C/C++/Fortran Compiler.
The package also includes builds of the libraries which are compatible with
GNU GCC 9.3.0.
- GNU GCC 9.3.0
To provide the optimal experience on the latest Arm server and HPC systems
when using the Arm Performance Libraries and GCC, a build of
GNU's GCC 9.3.0 release is provided for convenience. It is also
provided for OpenMP/libgfortran compatibility with Arm Performance Libraries.
As a GNU tool suite, the GPL-licensed source code can be downloaded
separately.
Release Status
--------------
This is the 20.2.1 release of the Arm Compiler for Linux
software.
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 C/C+/Fortran Compiler 20.2.1
- Arm Performance Libraries 20.2.1
- GNU GCC 9.3.0
- Release Notes (this document)
- Documentation (product documentation is available in
<install_location>/<package_name>/share, and on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources)
Documentation may change between product releases. For the latest
documentation bundle please check the delivery platform.
Arm tests the PDF only in Adobe Acrobat and Acrobat Reader and cannot
guarantee the quality of the represented document when used with any other
PDF reader. A suitable file reader can be downloaded from Adobe at
http://www.adobe.com.
Differences from previous release
---------------------------------
Differences from the previous release of Arm Compiler for Linux are detailed in
the following sub-sections.
Additions and changes:
~~~~~~~~~~~~~~~~~~~~~~
There are no new features or components added, or any technical changes to
features or components, in the 20.2.1 release.
The following features or components were added, or technical changes to
features or components were changed, in the 20.2 release:
- Arm Compiler for Linux suite 20.2:
- Arm Compiler for Linux no longer supplies a ‘suite’ environment module
(previously available as ‘<architecture>/<OS>/<OS_Version>/suites/arm-
compiler-for-linux/<version>‘). Instead, to prepare your system environment
for Arm C/C++/Fortran Compiler, load and use the
‘<architecture>/<OS>/<OS_Version>/arm-linux-compiler/<version>’ environment
module.
- The version of GCC that is packaged with Arm Compiler for Linux is now GCC
9.3.0 instead of GCC 9.2.0. A version of Arm Performance Libraries that is
compatible with GCC 9.3.0 is also included.
- Arm C/C++/Fortran Compiler 20.2:
- We have restructured the Arm C/C++ Compiler and Arm Fortran Compiler
reference guides. If you have bookmarked a topic whose URL address has
changed, you will need to update it.
- Arm Performance Libraries 20.2.0:
- 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 the 20.2.1 release.
- Arm Compiler for Linux suite 20.2.1:
- Where an Operating System (OS) does not provide an un-versioned 'python'
binary, such as RHEL 8 and SLES 15, the correct Python version is now
referenced for that OS.
- Fixed an issue that caused the 'arm-linux-compiler' environment module to
function incorrectly on some systems that use the 'lmod' module system.
- The default timeout limit for Arm Compiler for Linux to check out a license
from Arm Licence Server has been increased from 2 seconds to 10 seconds. To
manually configure the timeout limit for your system, set the
'ARM_LICENCE_TIMEOUT' environment variable to a timeout value (in seconds).
'ARM_LICENCE_TIMEOUT' is a new environment variable that has been added in
the 20.2.1 release.
- Arm C/C++/Fortran Compiler 20.2.1:
- Arm Compiler for Linux versions 20.0, 20.1, and 20.2 are missing the
'arm_fp16.h' header file in the /include directory of the package. The
'arm_fp16.h' header file is provided again in version 20.2.1.
- Fixed an issue in the 'arm_sve.h' header file. A bool_t type is defined but
is not used in the header, however, the bool_t type could cause conflicts
with other bool_t types. The bool_t type definition has been removed from
'arm_sve.h'.
- Fixed an issue that could cause some deeply nested structure types to
significantly increase the compilation time.
The following technical issues were resolved in the 20.2 release:
- Arm Compiler for Linux suite 20.2:
- Fixed an issue which could occur when installing the package in non-english
locales.
- Arm C/C++/Fortran Compiler 20.2:
- The libbfd libraries that were previously included in the Arm Compiler for
Linux package, have been removed. Arm recommends that you use the libraries
on your system.
- Fixed an issue in Arm C/C++ Compiler that was causing a compilation failure.
The failure would happen when the compiler parses an openmp declare variant
pragma that has all its function arguments decorated with the linear clause.
- Fixed further bugs that were preventing the correct build and execution of
some workloads on SVE-based systems.
- Arm Performance Libraries 20.2.0:
- 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:
~~~~~~~~~~~~~~~~~~~~~~
Details any technical issues that are open at the time of this release.
- Arm Compiler for Linux suite 20.2 and 20.2.1:
- The module swap command does not work when using newer versions of the
module builtin. To swap the module, you must unload the old module, and then
load the new module.
- Arm C/C++/Fortran Compiler 20.2 and 20.2.1:
- To function correctly on RHEL 8 systems, Arm Compiler for Linux relies on
using the LD_LIBRARY_PATH environment variable. If you need to unset this
environment variable, the compiler might fail to find libstdc++.so.6. If you
are affected by this issue, contact the Arm Support team who will help
determine a workaround for your system.
- Copying module files to a different directory after installation, or using a
symlink to the module files, might result in an error using 'module load'.
If this issue affects you, to get the correct advice for your system
configuration, please contact Arm support. Module configuration flexibility
will be improved in a later release of Arm Compiler for Linux.
Get started
===========
This section describes how to get started with accessing, setting up, and
using Arm Compiler for Linux.
For more information, see the Get Started information on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/get-started
Licensing information
---------------------
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run:
* For more information about Arm Allinea Studio licensing, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/licensing
* To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio
Once you have obtained a license file from Arm, follow these steps to make it
available for use.
Note: If you have a floating license, you must first download and install
Arm Licence Server:
https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server
1. Save your client, named user, or evaluation license:
- If you chose to install to the default installation directory, create a directory
called 'licenses' in /opt/arm/ and copy your client license file to it.
- If you chose to install to a custom installation directory, create a directory
called 'licenses' in <install_location>/ and copy your client license file to it.
Set the ARM_LICENSE_DIR environment varible to <install_location>/licenses.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
separate license for these tools, set the ARM_LICENSE_DIR environment
variable to point to <install_location>/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'
in the <install_location>/licenceserver directory and copy your license
file to it. To enable the new floating license, restart Arm Licence Server.
Prerequisites
-------------
If any of the following tools are not already installed by your Linux
distribution, you must install them before installing Arm Compiler for Linux:
- 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-allinea-studio
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-compiler-for-linux-20.2.1*.sh
RELEASE_NOTES.txt
Install the product
-------------------
To install Arm Compiler for Linux, run the installation script as a privileged
user and pass any options to configure the installation:
./arm-compiler-for-linux-20.2.1*.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.
- To only install the required packages for a subset of the supported
microarchitectures, use the
'--only-install-microarchitectures=<microarch>,<microarch>' option. To list
the available microarchitectures, use '--list-available-microarchitectures'.
Note: For both of these options there is a delay between running
the script and receiving a response.
For a full list of supported installation options, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/installation/install-package
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. To get the best performance, Arm recommends
that you use the version that matches your platform.
* For Arm C/C++/Fortran Compiler with Arm Performance Libraries:
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler/20.2.1
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler-20.2.1/<ARMPL_Name>/20.2.1
* For Arm C/C++/Fortran Compiler only:
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler/20.2.1
Note: If you are using the GNU GCC packaged in Arm Compiler for Linux, use:
* For GNU GCC 9.3.0 with Arm Performance Libraries:
module load <architecture>/<OS>/<OS_Version>/gcc/9.3.0
module load <architecture>/<OS>/<OS_Version>/gcc-9.3.0/<ARMPL_Name>/20.2.1
* For GNU GCC 9.3.0 only:
module load <architecture>/<OS>/<OS_Version>/gcc/9.3.0
2. To generate an executable binary with Arm Compiler for Linux, compile your
program with Arm C/C++/Fortran Compiler and specify any options ([options]),
the output binary name (-o <binary>), and the input file (<input>):
{armclang|armclang++|armflang} [options] -o <binary> <input>
3. Run the generated binary <binary>:
./<binary>
Examples
--------
Example code is included in this suite as part of Arm Performance
Libraries. This code can be found at:
<install_location>/<ARMPL_Name>*<ARMPL_Version>*/examples
You need to copy this code to a writeable directory and load both the
Arm C/C++/Fortran Compiler and Arm Performance Libraries environment modules
for the examples to build.
For example:
1. Copy the examples somewhere writeable:
cp -r <install_location>/armpl-20.2.1_*arm-linux-compiler*/examples ./
cd examples
2. Load the correct environment modules:
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler/20.2.1
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler-20.2.1/<ARMPL_Name>/<ARMPL_Version>
3. Build it:
make
Uninstall
---------
For convenience, this package includes an "uninstall.sh" script at:
<install_location>/arm-compiler-for-linux-20.2.1*/uninstall.sh
This script attempts to uninstall all the components supplied as part of
Arm Compiler for Linux. However, if other packages outside of this product
depend on the GNU GCC component, GNU GCC will not be uninstalled.
If you require support when uninstalling any version of Arm Compiler for Linux,
contact support-hpc-sw@arm.com.
Support
=======
Arm Compiler for Linux documentation is available in
<install_location>/<package_name>/share, or on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
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 Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/supported-platforms
Release history
===============
A full release history (with release notes) for Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/release-historyArm Forge 20.1.1 Release Note
================================
Copyright (c) 2017-2020 Arm Limited (or its affiliates). All rights reserved.
Copyright (c) 2002-2017 Allinea Software Limited.
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, 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 click through or signed written agreement covering this document with Arm, then the click through or 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.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks of Arm Limited (or its affiliates) in the US 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/company/policies/trademarks.
Copyright (c) 2017-2020 Arm Limited (or its affiliates). All rights reserved.
Copyright (c) 2002-2017 Allinea Software Limited.
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
========
- Glossary
- Release overview
- Release contents
- Get started
- Support
- Release History
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
================
Product description
-------------------
Arm Forge 20.1.1 combines Arm DDT, Arm MAP, and Arm Performance Reports. Arm DDT is the leading debugger for time-saving high-performance application debugging. Arm MAP is the trusted performance profiler for invaluable optimization advice across native and Python HPC codes. Arm Performance Reports provides advanced reporting capabilities.
This release includes enhancements and bug fixes.
Release status
--------------
This is the 20.1.1 release of Arm Forge.
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 subsections detail:
- The component parts that are delivered as part of this release.
- Any changes since the previous release.
- Any known issues and limitations that exist at the time of this release.
Deliverables
------------
Note: Product Download Hub (PDH) delivers all product parts in a single package.
- Arm Forge, which includes:
- Arm DDT
- Arm MAP
- Arm Performance Reports
- Release Notes (this document, also available at: https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history)
- Documentation is available in the documentation area of your product installation or online at:
https://developer.arm.com/docs/101136/2011
Information about how to use the Arm HPC tools to debug, profile, and analyze many common scientific applications are available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge
Further documentation about all the tools can be found online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help
Documentation can change between product releases. For the latest product documentation, check the software downloads page on the Arm Developer website at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge
Arm tests the PDF only in Adobe Acrobat and Acrobat Reader and cannot guarantee the quality of the represented document when used with any other PDF reader. A suitable file reader can be downloaded from Adobe at http://www.adobe.com.
Differences from previous release
---------------------------------
Differences from the previous release of Arm Forge are detailed in the following subsections.
Additions and changes
~~~~~~~~~~~~~~~~~~~~~
- Arm DDT:
- Arm MAP:
- Arm Performance Reports:
Resolved issues
~~~~~~~~~~~~~~~
- Arm DDT:
[FOR-10263] Fixed a crash that occurred when viewing Fortran arrays as vectors.
[FOR-10192] Fixed an issue which could cause the wrong remote launch connection to be selected.
- Arm MAP:
[FOR-10192] Fixed an issue which could cause the wrong remote launch connection to be selected.
- Arm Performance Reports:
Deprecated features
~~~~~~~~~~~~~~~~~~~
The following features are deprecated. You can still use them, but Arm plans to end support in the future:
- VisIt Visualization.
- Automatically adding breakpoints and tracepoints based on version control information.
- Support for CUDA 8.x
- Support for Python 2.x.x.
- Support for the following MPIs: SGI MPT (prior to HPE MPI), Open MPI on Cray X-series systems, Open MPI 2.x.x, Parastation MPI.
If you rely on this functionality, please contact support-hpc-sw@arm.com.
Known limitations
-----------------
See the known issues section on the Arm Developer website:
https://developer.arm.com/docs/101136/2011/known-issues
Get started
===========
This section describes how to get started with accessing, setting up, and using Arm Forge.
For more information, see:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge/resources/get-started
Licensing information
---------------------
Arm Forge requires a valid license to run.
Note: You do not need to install a license file on a machine that is running the Remote Client for connecting remotely to Arm Forge products. The license is only required on the machine on which Arm Forge is installed.
To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-forge
To request an evaluation license, go to:
https://pages.arm.com/Hpc-trial-request.html
For more information about Arm HPC tools licensing, see:
https://developer.arm.com/docs/101169/2011/using-arm-licence-server.
When you have obtained a license file from Arm, download and install the appropriate platform version of the product here:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge
See the Arm Forge User Guide for installation methods, such as using the command-line interface and using the GUI to install Arm Forge on Windows, Linux, and MAC, at:
https://developer.arm.com/docs/101136/2011/arm-forge/installation
Run the product
---------------
See the Arm Forge User Guide for information about running each of the components, Arm DDT, Arm MAP, and Arm Performance Reports:
https://developer.arm.com/docs/101136/2011/arm-forge/starting
Configure the product
---------------------
To learn how to configure the Arm Forge components, see the user guide at:
https://developer.arm.com/docs/101136/2011/configuration
Examples
--------
A range of example applications are provided with the product installation that you can use alongside information in the User Guide to explore Arm Forge functionality.
The example applications are located in the <install_directory>/examples directory.
Support
-------
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.
Tools
-----
Full information about the supported platforms for Arm Forge are available on the Developer website:
https://developer.arm.com/docs/101136/2011/supported-platforms
Release history
===============
A full release history for Arm Forge is available at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history - EULA
- Documentation
-
Arm Allinea Studio: 20.0 - latest update 20.0.3 April 23, 2020
What's new in 20.0 - latest update 20.0.3
Arm Allinea Studio 20.0.3 includes:
- Arm Compiler for Linux 20.1 - Released 23rd April 2020
- Arm Forge 20.0 (latest 20.0.3) - Released 1st April 2020
Arm Compiler for Linux 20.1
Additions and changes:
-
Arm Compiler for Linux suite 20.1:
- The Fujitsu A64FX processor is added as a new microarchitecture target with specific optimizations. To optimize your code for an A64FX target, compile with the '-mcpu=a64fx' option (or '-mcpu=native' if you are running on an A64FX machine). Optionally, also add the '-armpl' option to use the A64FX-tuned version of Arm Performance Libraries. Note that this is an SVE implementation, meaning that this version will therefore not run natively on other current microarchitectures.
- The Fujitsu A64FX processor is added as a new microarchitecture target with specific optimizations. To optimize your code for an A64FX target, compile with the '-mcpu=a64fx' option (or '-mcpu=native' if you are running on an A64FX machine). Optionally, also add the '-armpl' option to use the A64FX-tuned version of Arm Performance Libraries. Note that this is an SVE implementation, meaning that this version will therefore not run natively on other current microarchitectures.
-
Arm C/C++/Fortran Compiler 20.1:
- The implementation of the -fsimdmath and -armpl options no longer imply -fopenmp, by default.
- Arm Compiler for Linux 20.1 now warns against using the deprecated SVE/SVE2 ACLE features. Support for these features will be removed in the next major release. For clarity, the SVE/SVE2 ACLE specification has deprecated two features: use of the svcdot function with unsigned arguments, and accessing individual elements of ACLE vector structs using the '.' operator. As an example of the second feature, code such as ((svint8x2_t) foo).v1 is now deprecated, and you should use svget2((svint8x2_t) foo, 0) instead.
- Arm Fortran Compiler now supports the Fortran 2008 BLOCK construct.
- Performance improvements for some Fortran workloads.
- The implementation of the -fsimdmath and -armpl options no longer imply -fopenmp, by default.
-
Arm Performance Libraries 20.1.0:
- FFT implementations are now constructed at planning time, incurring a small additional overhead for each different length of FFT on its first creation. Subsequent plans of the same length are unaffected. Execution performance remains similar to previous releases. This enhancement considerably reduces the size of the library.
- Implemented improvements to ?GEMM performance, especially for small cases.
- Added support for LAPACK version 3.9.0. In addition, the CBLAS and LAPACKE interfaces have been updated to use the correct types for complex variables. All documentation has been updated to include these changes.
- In libamath there are newly-optimized versions of erf and erfc, both for scalar and vector uses, and for single and double precision.
- FFT implementations are now constructed at planning time, incurring a small additional overhead for each different length of FFT on its first creation. Subsequent plans of the same length are unaffected. Execution performance remains similar to previous releases. This enhancement considerably reduces the size of the library.
Resolved issues:
-
Arm C/C++/Fortran Compiler 20.1:
- Arm Compiler for Linux does not support "omp declare simd" pragmas on C++ class member functions (declarations or definitions), and will ignore them in your code.
- Fixed an issue with the dynamic scheduling of OpenMP do loops in Arm Fortran Compiler. Incorrect step sizes were being passed to the OpenMP runtime function.
- Fixed an issue where Fortran VLAs had incomplete debug information. Debug handling code that captures upper and lower bounds of Fortran arrays has been improved.
- Fixed an issue in Arm Fortran Compiler that prevented the 'Meso-NH' weather code from compiling successfully.
- Fixed an issue in Arm Fortran Compiler that prevented code containing one or more "arithmetic if" statements compiling with the -i8 compiler option.
- Fixed an interaction issue between fixed length arrays and SVE ACLE builtins.
- Fixed an issue where the compiler could fail to obtain a license when multiple possible licenses were available, and where one license had no remaining seats.
- Fixed an issue in arm-opt-report, where reports would incorrectly describe when loops were inlined and then unrolled.
- To highlight the vectorization factor when scalable vectors are used, a new annotation option, VS<F,I>, has been added to arm-opt-report: VS<F,I>: A loop has been vectorized using scalable vectors. Each vector iteration performed has the equivalent of N*F*I scalar iterations, where N is the number of vector granules, which can vary according to the machine the program is run on. For example, LLVM assumes a granule size of 128 bits when targeting SVE. F (Vectorization Factor) and I (Interleave count) are as described for V<F,I>.
- Arm Compiler for Linux does not support "omp declare simd" pragmas on C++ class member functions (declarations or definitions), and will ignore them in your code.
-
Arm Performance Libraries 20.1.0:
- Fixed an issue where log10f (single precision, base-10 logarithm function) reported inaccuracies when used in a vectorizable loop.
Open technical issues:
-
Arm C/C++/Fortran Compiler 20.1:
- Copying module files to a different directory after installation, or using a symlink to the module files, might result in an error using 'module load'. If this issue affects you, to get the correct advice for your system configuration, please contact Arm support. Module configuration flexibility will be improved in a later release of Arm Compiler for Linux.
Arm Forge 20.0 (latest 20.0.3)
Arm DDT new features and enhancements:
- 20.0
- CUDA GDB is now shipped on AArch64.
- Added Assembly debugging mode.
- Added GDB 8.2 as an optional debugger.
- Updated the MPICH3 auto-detection heuristics.
- Fixed an issue where the program was unresponsive when debugging or profiling applications that expect user input from a pseudo terminal.
- Added support for Ubuntu 18.04 on AArch64.
- Added support for Ubuntu 18.04 on x86_64.
- Upgraded CUDA GDB 10.1 to update 2.
- Added support for Arm Compiler for Linux 19.3.
- Added support for Arm Compiler for Linux 20.0.
- Added support for Intel 19.x Compiler and MPI.
- Updated the Support email address from allinea-support@arm.com to support-hpc-sw@arm.com.
- Because of issues with the Data Address Watchpoint Register (DAWR) on POWER9, hardware watchpoints are not available from Linux kernel version 4.17. In this case, DDT falls back to software watchpoints which are significantly slower than using hardware watchpoints. More information can be found at https://github.com/torvalds/linux/blob/master/Documentation/powerpc/dawr-power9.rst.
- 20.0.1
- Fixed an issue with two dimensional array slicing when using the Intel and GNU Fortran compilers.
- Fixed an issue with two dimensional array slicing when using the Intel and GNU Fortran compilers.
- 20.0.2
- None in this release.
- None in this release.
- 20.0.3
- None in this release.
Arm DDT bug fixes
- 20.0
- [FOR-8193] Improved the security of the X11 display server used in Offline Mode.
- [FOR-8194] Fixed a security issue with Reverse Connect which affected the authentication between Remote Daemons.
- [FOR-7972] Fixed preloading of the memory debugging library on Cray with Slurm.
- [FOR-3369] Fixed editor lookups involving user supplied file paths when double-clicking a breakpoint item in the Breakpoint view.
- [FOR-5400] Fixed a crash in the Attach dialog.
- [FOR-6148] Fixed an issue with displaying std::map iterators in the variables view.
- [FOR-8522] Fixed a segmentation fault when printing C++ static constexpr class members.
- [FOR-8280] Fixed an issue resulting in extra items displaying in the Memory Usage dialog chart legend.
- 20.0.1
- [FOR-4263] Addressed an inconsistency between Process selection and Parallel Stack View frame selection.
- [FOR-8283] Fixed various PSV related bugs which occurred in Assembly Mode.
- [FOR-8562] Updated the icon for assembly debugging mode.
- 20.0.2
- [FOR-8903] Fixed a bug with startup using srun on Arm machines.
- [FOR-7460] Fixed an issue which caused the DDT offline logs to be incomplete.
- [FOR-8974] Fixed a bug where selecting memory allocations from the chart in the "Current Memory Usage" window was showing data for the wrong process.
- [FOR-9006] Fixed an issue where information from some processes was sometimes missing from offline mode log files.
- [FOR-8769] Now able to set Memory Debugging settings on a subset of processes when launching in Express Launch mode.
- [FOR-8961] Improved error reporting when there is a failure on startup.
- [FOR-8858] Fixed an issue with MAC installer window not displaying at the correct size.
- 20.0.3
- [FOR-9068] Fixed a race condition from within cuda-gdb which caused DDT to occasionally fail when launching a kernel.
- [FOR-9374] The value of pointer items in the locals, current line, and evaluate views can now be modified.
Arm MAP new features and enhancements
- 20.0
- Added support for counting hardware events using Linux perf.
- MAP and Performance Reports custom metric API extended to improve usability and support for passing configuration data to custom metric libraries.
- Reduced MAP and Performance Reports memory usage when profiling large applications.
- Updated the MPICH3 auto-detection heuristics.
- Fixed an issue where the program was unresponsive when debugging or profiling applications that expect user input from a pseudo terminal.
- Clarified metrics descriptions for branch misses and cache misses on AArch64 and Power architectures.
- Added support for Ubuntu 18.04 on AArch64.
- Added support for Ubuntu 18.04 on x86_64.
- Added support for Arm Compiler for Linux 19.3.
- Added support for Arm Compiler for Linux 20.0.
- Added support for Intel 19.x Compiler and MPI.
- Updated the Support email address from allinea-support@arm.com to support-hpc-sw@arm.com.
- 20.0.1
- None in this release.
- None in this release.
- 20.0.2
- Added Perf Metrics support for A76 and N1 CPUs.
- Added configurable perf metric support to the static sampler library.
- 20.0.3
- None in this release.
Arm MAP bug fixes
- 20.0.
- [FOR-8193] Improved the security of the X11 display server used in Offline Mode.
- [FOR-8194] Fixed a security issue with Reverse Connect which affected the authentication between Remote Daemons.
- [FOR-8337] Fixed an issue which caused MAP to fail to create a MAP file at the end of a profiling run.
- [FOR-7508] Fixed an issue where MAP hangs on start-up when running on an Ubuntu 18.04, AArch64 system without libc debug symbols installed.
- [FOR-8529] Fixed a bug where a crash during profiling prevented the Run button on MAP from working.
- [FOR-8343] Fixed an issue where an error message displayed about "unavailable metrics" when metrics were unlicensed.
- 20.0.1
- [FOR-8540] Fixed an issue where local MAP files could not be opened on OSX Catalina.
- [FOR-8540] Fixed an issue where local MAP files could not be opened on OSX Catalina.
- 20.0.2
- [FOR-8903] Fixed a bug with startup using srun on Arm machines.
- [FOR-8961] Improved error reporting when there is a failure on startup.
- [FOR-8858] Fixed an issue with MAC installer window not displaying at the correct size.
- 20.0.3
- None in this release.
Arm Performance Reports new features and enhancements
- 20.0.
- Added support for counting hardware events using Linux perf.
- Reduced MAP and Performance Reports memory usage when profiling large applications.
- Fixed an issue where the program was unresponsive when debugging or profiling applications that expect user input from a pseudo terminal.
- Added support for Ubuntu 18.04 on AArch64.
- Added support for Ubuntu 18.04 on x86_64.
- Added support for Arm Compiler for Linux 19.3.
- Added support for Arm Compiler for Linux 20.0.
- Added support for Intel 19.x Compiler and MPI.
- Updated the Support email address from allinea-support@arm.com to support-hpc-sw@arm.com.
- 20.0.1
- None in this release.
- None in this release.
- 20.0.2
- Added Perf Metrics support for A76 and N1 CPUs.
- Added configurable perf metric support to the static sampler library.
- 20.0.3
- None in this release.
Arm Performance Reports bug fixes
- 20.0.
- [FOR-8337] Fixed an issue which caused MAP to fail to create a MAP file at the end of a profiling run.
- [FOR-8337] Fixed an issue which caused MAP to fail to create a MAP file at the end of a profiling run.
- 20.0.1
- None in this release.
- None in this release.
- 20.0.2
- [FOR-8903] Fixed a bug with startup using srun on Arm machines.
- [FOR-8961] Improved error reporting when there is a failure on startup.
- [FOR-8858] Fixed an issue with MAC installer window not displaying at the correct size.
- 20.0.3
- None in this release.
Arm Forge known issues
Please refer to the known issues page
-
Release Note for Arm Allinea Studio 20.0 - latest update 20.0.3
×The ordering of the Release Notes are:
1) Arm Compiler for Linux 20.1 Release Note
2) Arm Forge 20.0.3 Release Note
3) Arm Performance Reports 20.0.3 Release NoteArm Compiler for Linux 20.1 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
================
Product description
-------------------
The Arm Compiler for Linux 20.1 suite provides a complete
compiling environment for natively developing and tuning your server and HPC
applications on Armv8-A based platforms. Arm Compiler for Linux 20.1
includes support for targets that implement the Scalable Vector Extension (SVE)
and Scalable Vector Extension version two (SVE2) for Armv8-A AArch64.
The suite contains the following packages:
- Arm C/C++/Fortran Compiler 20.1
Arm Compiler is a Linux user-space C/C++ and Fortran compiler tailored for
scientific computing, HPC, and enterprise workloads.
- Arm Performance Libraries 20.1.0
Multiple Arm Performance Libraries packages are provided, each of which are
optimized for individual Armv8 AArch64 implementations (Arm® Neoverse™ N1,
Marvell ThunderX2, and Fujitsu A64FX (SVE-enabled)). Generic versions for
Armv8.0-A and SVE are also provided. All packages are compatible with
Arm C/C++/Fortran Compiler.
The package also includes builds of the libraries which are compatible with
GNU GCC 9.2.0.
- GNU GCC 9.2.0
To provide the optimal experience on the latest Arm server and HPC systems
when using the Arm Performance Libraries and GCC, a build of
GNU's GCC 9.2.0 release is provided for convenience. It is also
provided for OpenMP/libgfortran compatibility with Arm Performance Libraries.
As a GNU tool suite, the GPL-licensed source code can be downloaded
separately.
Release Status
--------------
This is the 20.1 release of the Arm Compiler for Linux
software.
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 C/C+/Fortran Compiler 20.1
- Arm Performance Libraries 20.1.0
- GNU GCC 9.2.0
- Release Notes (this document)
- Documentation (product documentation is available in
<install_location>/<package_name>/share, on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources)
Documentation may change between product releases. For the latest
documentation bundle please check the delivery platform.
Arm tests the PDF only in Adobe Acrobat and Acrobat Reader and cannot
guarantee the quality of the represented document when used with any other
PDF reader. A suitable file reader can be downloaded from Adobe at
http://www.adobe.com.
Differences from previous release
---------------------------------
Differences from the previous release of Arm Compiler for Linux 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.
- Arm Compiler for Linux suite 20.1:
- The Fujitsu A64FX processor is added as a new microarchitecture target with
specific optimizations. To optimize your code for an A64FX target, compile
with the '-mcpu=a64fx' option (or '-mcpu=native' if you are running on an
A64FX machine). Optionally, also add the '-armpl' option to use the
A64FX-tuned version of Arm Performance Libraries. Note that this is an SVE
implementation, meaning that this version will therefore not run natively
on other current microarchitectures.
- Arm C/C++/Fortran Compiler 20.1:
- The implementation of the -fsimdmath and -armpl options no longer imply
-fopenmp, by default.
- Arm Compiler for Linux 20.1 now warns against using the deprecated SVE/SVE2
ACLE features. Support for these features will be removed in the next major
release. For clarity, the SVE/SVE2 ACLE specification has deprecated two
features: use of the svcdot function with unsigned arguments, and accessing
individual elements of ACLE vector structs using the '.' operator. As an
example of the second feature, code such as ((svint8x2_t) foo).v1 is now
deprecated, and you should use svget2((svint8x2_t) foo, 0) instead.
- Arm Fortran Compiler now supports the Fortran 2008 BLOCK construct.
- Performance improvements for some Fortran workloads.
- Arm Performance Libraries 20.1.0:
- FFT implementations are now constructed at planning time, incurring a small
additional overhead for each different length of FFT on its first creation.
Subsequent plans of the same length are unaffected. Execution performance
remains similar to previous releases. This enhancement considerably reduces
the size of the library.
- Implemented improvements to ?GEMM performance, especially for small cases.
- Added support for LAPACK version 3.9.0. In addition, the CBLAS and LAPACKE
interfaces have been updated to use the correct types for complex variables.
All documentation has been updated to include these changes.
- In libamath there are newly-optimized versions of erf and erfc, both for
scalar and vector uses, and for single and double precision.
Resolved issues:
~~~~~~~~~~~~~~~~
Details any technical issues resolved in this release.
- Arm C/C++/Fortran Compiler 20.1:
- Arm Compiler for Linux does not support "omp declare simd" pragmas on C++
class member functions (declarations or definitions), and will ignore them
in your code.
- Fixed an issue with the dynamic scheduling of OpenMP do loops in Arm Fortran
Compiler. Incorrect step sizes were being passed to the OpenMP runtime
function.
- Fixed an issue where Fortran VLAs had incomplete debug information. Debug
handling code that captures upper and lower bounds of Fortran arrays has
been improved.
- Fixed an issue in Arm Fortran Compiler that prevented the 'Meso-NH' weather
code from compiling successfully.
- Fixed an issue in Arm Fortran Compiler that prevented code containing one
or more "arithmetic if" statements compiling with the -i8 compiler option.
- Fixed an interaction issue between fixed length arrays and SVE ACLE
builtins.
- Fixed an issue where the compiler could fail to obtain a license when
multiple possible licenses were available, and where one license had no
remaining seats.
- Fixed an issue in arm-opt-report, where reports would incorrectly describe
when loops were inlined and then unrolled.
- To highlight the vectorization factor when scalable vectors are used, a new
annotation option, VS<F,I>, has been added to arm-opt-report: VS<F,I>: A
loop has been vectorized using scalable vectors. Each vector iteration
performed has the equivalent of N*F*I scalar iterations, where N is the
number of vector granules, which can vary according to the machine the
program is run on. For example, LLVM assumes a granule size of 128 bits when
targeting SVE. F (Vectorization Factor) and I (Interleave count) are as
described for V<F,I>.
- Arm Performance Libraries 20.1.0:
- Fixed an issue where log10f (single precision, base-10 logarithm function)
reported inaccuracies when used in a vectorizable loop.
Known limitations
-----------------
Any issues known at the time of this release are detailed in the following
sub-section.
Open technical issues:
~~~~~~~~~~~~~~~~~~~~~~
Details any technical issues that are open at the time of this release.
- Arm C/C++/Fortran Compiler 20.1:
- Copying module files to a different directory after installation, or using a
symlink to the module files, might result in an error using 'module load'.
If this issue affects you, to get the correct advice for your system
configuration, please contact Arm support. Module configuration flexibility
will be improved in a later release of Arm Compiler for Linux.
Get started
===========
This section describes how to get started with accessing, setting up, and
using Arm Compiler for Linux.
For more information, see the Get Started information on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/get-started
Licensing information
---------------------
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run:
* For more information about Arm Allinea Studio licensing, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/licensing
* To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio
Once you have obtained a license file from Arm, follow these steps to make it
available for use.
Note: If you have a floating license, you must first download and install
Arm Licence Server:
https://developer.arm.com/tools-and-software/server-and-hpc/help/help-and-tutorials/system-administration/licensing/arm-licence-server
1. Save your client, named user, or evaluation license:
- If you chose the default <install_location> directory, create a directory
called 'licenses' in /opt/arm/ and copy your client license file to it.
- If you specified a custom <install_location> directory, create an
/opt/arm/licenses directory path, then copy your client license file to the
'licenses' directory.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
separate license for these tools, set the ARM_LICENSE_DIR environment
variable to point to <install_location>/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'
in the <install_location>/licenceserver directory and copy your license
file to it. To enable the new floating license, restart Arm Licence Server.
Prerequisites
-------------
If any of the following tools are not already installed by your Linux
distribution, you must install them before installing Arm Compiler for Linux:
- 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-allinea-studio
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-compiler-for-linux-20.1*.sh
RELEASE_NOTES.txt
Install the product
-------------------
To install Arm Compiler for Linux, run the installation script as a privileged
user and pass any options to configure the installation:
./arm-compiler-for-linux-20.1*.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.
- To only install the required packages for a subset of the supported
microarchitectures, use the
'--only-install-microarchitectures=<microarch>,<microarch>' option. To list
the available microarchitectures, use '--list-available-microarchitectures'.
Note: For both of these options there is a delay between running
the script and receiving a response.
For a full list of supported installation options, see:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/installation/install-package
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. To get the best performance, Arm recommends
that you use the version that matches your platform.
* For Arm C/C++/Fortran Compiler with Arm Performance Libraries:
module load <architecture>/<OS>/<OS_Version>/suites/arm-linux-compiler/20.1
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler-20.1/<ARMPL_Name>/20.1
* For Arm C/C++/Fortran Compiler only:
module load <architecture>/<OS>/<OS_Version>/suites/arm-linux-compiler/20.1
Note: If you are using the GNU GCC packaged in Arm Compiler for Linux, use:
* For GNU GCC 9.2.0 with Arm Performance Libraries:
module load <architecture>/<OS>/<OS_Version>/gcc/9.2.0
module load <architecture>/<OS>/<OS_Version>/gcc-9.2.0/<ARMPL_Name>/20.1.0
* For GNU GCC 9.2.0 only:
module load <architecture>/<OS>/<OS_Version>/gcc/9.2.0
2. To generate an executable binary with Arm Compiler for Linux, compile your
program with Arm C/C++/Fortran Compiler and specify any options ([options]),
the output binary name (-o <binary>), and the input file (<input>):
{armclang|armclang++|armflang} [options] -o <binary> <input>
3. Run the generated binary <binary>:
./<binary>
Examples
--------
Example code is included in this suite as part of Arm Performance
Libraries. This code can be found at:
<install_location>/<ARMPL_Name>*<ARMPL_Version>*/examples
You need to copy this code to a writeable directory and load both the
Arm C/C++/Fortran Compiler and Arm Performance Libraries environment modules
for the examples to build.
For example:
1. Copy the examples somewhere writeable:
cp -r <install_location>/armpl-20.1.0_*arm-linux-compiler*/examples ./
cd examples
2. Load the correct environment modules:
module load <architecture>/<OS>/<OS_Version>/suites/arm-linux-compiler/20.1
module load <architecture>/<OS>/<OS_Version>/arm-linux-compiler-20.1/<ARMPL_Name>/<ARMPL_Version>
3. Build it:
make
Uninstall
---------
For convenience, this package includes an "uninstall.sh" script at:
<install_location>/arm-compiler-for-linux-20.1*/uninstall.sh
This script attempts to uninstall all the components supplied as part of
Arm Compiler for Linux. However, if other packages outside of this product
depend on the GNU GCC component, GNU GCC will not be uninstalled.
If you require support when uninstalling any version of Arm Compiler for Linux,
open a support case.
Support
=======
Arm Compiler for Linux documentation is available in
<install_location>/<package_name>/share, or on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources
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 Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/resources/supported-platforms
Release history
===============
A full release history (with release notes) for Arm Compiler for Linux is
available on the Arm Developer website:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-allinea-studio/release-history
Arm Forge 20.0.3 Release Notes
==============================
Copyright (c) 2002-2020 Arm Limited (or its affiliates). All rights reserved.
Arm Forge 20.0.3 provides a complete debugging and profiling environment for C, C++ and Fortran high-performance code on Linux, to help you develop and tune your HPC applications. Arm Forge combines an industry-leading debugger, Arm DDT, and an out-of-the-box-ready profiler, Arm MAP.
Contents
========
This document provides information specific to the 20.0.3 release of Arm Forge:
- Changes in this release:
- New features and enhancements
- Bug fixes
- Known issues
- System requirements
- Installing, uninstalling, licensing
- Running the tools
- Where to find example code
- How to access user documentation
- How to contact support
For information about previous releases of Arm Forge, see the release history online:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history
Changes in this release
=======================
Arm DDT:
- New features and enhancements:
None in this release.- Bug fixes:
[FOR-9068] Fixed a race condition from within cuda-gdb which caused DDT to occasionally fail when launching a kernel.
[FOR-9374] The value of pointer items in the locals, current line, and evaluate views can now be modified.
Arm MAP:
- New features and enhancements:
None in this release.
- Bug fixes:
None in this release.
Known issues
============
See the known issues section on the Arm Developer website:
https://developer.arm.com/docs/101136/latest/known-issues
System requirements
===================
See the Supported Platforms page for Arm DDT and Arm MAP on the Arm Developer website at:
https://developer.arm.com/docs/101136/latest/supported-platforms
Installation instructions
=========================
Run the graphical "installer" or the text-only "textinstall.sh" from the download tarball.
You can choose to install just for you, or for all users on your system.
When installing on a cluster, ensure that Arm Forge is available at the same path on every machine.
If you have a job submission system such as PBS or LoadLeveler running, see the Configuration section in the Arm Forge User Guide for additional setup information:
https://developer.arm.com/docs/101136/latest/configuration
Full installation instructions are available in the Arm Forge user guide, and available on the Arm Developer website at:
https://developer.arm.com/docs/101136/latest/arm-forge/installation
To install the Remote Client for Windows, follow the instructions here:
https://developer.arm.com/tools-and-software/server-and-hpc/debug-and-profile/arm-forge/resources/tutorials/setting-up-arm-forge-remote-client-on-windows
Uninstalling Arm Forge
======================
To uninstall Arm Forge, remove the installation directory from your system:
rm -r <installation-dir>
Licences
========
To get licence files for each product, contact Arm by emailing HPCToolsSales@arm.com. You can obtain evaluation licences from the Arm website at:
https://www.arm.com/products/development-tools/server-and-hpc/allinea-studio/get-software
Licence files must be stored in a directory called licences below the installation directory.
For a default (root) installation, the licences directory is:
/opt/arm/forge/licences
For a default user-only installation, the licences directory is:
${HOME}/arm/forge/licences
Running DDT
===========
If you are using a supported desktop environment (KDE or Gnome), find the DDT icon in your Development > Programming menu.
To run DDT from the command line, type:
{arm-forge-path}/bin/ddt
If {arm-forge-path}/bin is in your $PATH, type:
ddt
You can optionally provide a program name as the first argument.
At startup, the Welcome page displays. From here you can choose to run a program, attach to an existing program, or open a core file.
To start debugging a program, click "Run". In the Run window, set the path to your program in the Application field, and click "Run" to start the program.
The program you choose runs using mpirun. If you have problems starting your program under DDT, ensure that it can run without DDT from the command line.
Running MAP
===========
If you are using a supported desktop environment (KDE or Gnome), find the MAP icon in your Development/Programming menu.
To run MAP from the command line, type:
{arm-forge-path}/bin/map
If {arm-forge-path}/bin is in your $PATH, type:
map
You can optionally provide a program name as the first argument.
At startup, the Welcome page displays. From this page, you can profile a program, or load a profile from a previous run.
To start profiling a program, select "Profile". In the Run window, set the path to your program in the Application field, and click "Run" to start the program.
The program you choose runs using mpirun. If you have problems starting your program under MAP, ensure that it can run without MAP from the command line.
Examples
========
Example code is available in the installation directory:
<INSTALL_DIR>/examples
Copy the example code to a writeable directory and run the examples using the makefiles provided.
Documentation
=============
After you install Arm Forge, you can find a copy of these release notes in the installation directory. You can also find them online at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-forge/release-history
The Arm Forge user guide is available in the <INSTALL_DIR>/doc directory, or online here:
https://developer.arm.com/docs/101136/latest/arm-forge
Further documentation, help, and tutorials are available online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help
Support
=======
If you require support or would like to provide feedback, open a support case, or use our support request form online:
https://developer.arm.com/tools-and-software/server-and-hpc/helpArm Performance Reports 20.0.3 Release Notes
============================================
Copyright (c) 2002-2020 Arm Limited (or its affiliates). All rights reserved.
Arm Performance Reports 20.0.3 helps you characterize and understand the performance when running your HPC application, in a simple one-page report.
Contents
========
This document provides information specific to the 20.0.3 release of Arm Performance Reports:
- Changes in this release:
- New features and enhancements
- Bug fixes
- Known issues
- System requirements
- Installing, uninstalling, licensing
- Running the tools
- Where to find example code
- How to access user documentation
- How to contact support
For information about previous releases of Arm Performance Reports, see the release history online:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-reports/release-history
Changes in this release
=======================
- New features and enhancements:
None in this release.
- Bug fixes:
None in this release.
Known issues
============
See the known issues section on the Arm Developer website at:
https://developer.arm.com/docs/101137/latest/known-issues
System requirements
===================
See the supported platforms pages on the Arm Developer website at:
https://developer.arm.com/docs/101137/latest/supported-platforms
Installation instructions
=========================
Run the graphical "installer", or the text-only "textinstall.sh" from the download tarball.
You can choose to install just for you, or for all users on your system.
When installing on a cluster, ensure that the package is available at the same path on every machine.
Full installation instructions are available in the Arm Performance Reports user guide, and available on the Arm Developer website at:
https://developer.arm.com/docs/101137/latest/installation
Uninstalling Arm Performance Reports
====================================
To uninstall Arm Performance Reports, remove the installation directory from your system:
rm -r <installation-dir>
Licences
========
To get licence files for each product, contact Arm by emailing HPCToolsSales@arm.com. You can obtain evaluation licences from the Arm website at:
https://www.arm.com/products/development-tools/server-and-hpc/allinea-studio/get-software
Licence files must be stored in a directory called licences below the installation directory.
For a default (root) installation, the licences directory is:
/opt/arm/reports/licences
For a default user-only installation, the licences directory is:
${HOME}/arm/reports/licences
Running Arm Performance Reports
===============================
To run Arm Performance Reports, add 'perf-report' in front of your existing mpiexec or aprun command-line, for example:
{arm-reports-path}/bin/perf-report mpiexec -n 4 examples/wave_c
If {arm-reports-path}/bin is in your $PATH, just type 'perf-report'.
The program you runs runs as previously, and two report files, one .txt and one .html, arecreated in the current directory on completion. If you have problems starting your program under Performance Reports, ensure thta it can run without Performance Reports with no errors.
You can use the --output/-o argument to specify a single output file name.
See perf-report --help or the user guide for more information.
Examples
========
Example code is available in the installation directory:
<INSTALL_DIR>/examples
Copy the example code to a writeable directory and run the examples using the makefiles provided.
Documentation
=============
After you install Arm Performance Reports, you can find a copy of these release notes in the installation directory. You can also find them online at:
https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-reports/release-history
The Arm Performance Reports user guide is available in the <INSTALL_DIR>/doc directory, or online here:
https://developer.arm.com/docs/101137/latest/introduction
Further documentation, help, and tutorials are available online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help
Support
=======
If you require support or would like to provide feedback, open a support case, or use our support request form online:
https://developer.arm.com/tools-and-software/server-and-hpc/help - EULA
- Documentation
-
Arm Allinea Studio: 19.3 August 30, 2019
What's new in 19.3
Arm C/C++/Fortran Compiler 19.3.0
New features and enhancements:
- D-987 : Product reference guides are now available in HTML format in the <install_location>/<package_name>/share directory.
- D-983 : Support for the F2008 optional argument "BACK=" was added to the MINLOC and MAXLOC intrinsics.
- D-865 : When targeting SVE, the option '-z now' is passed implicitly to the compile/link flags, to disable a feature known as lazy binding. The implementation of lazy binding in the GNU dynamic loader is currently imcompatible with the draft Procedure Call Standard (PCS) for the ARM 64-bit Architecture (AArch64) with SVE support [1]. Once compatible loaders are generally available, this change will be reverted. If needed, lazy binding can be passing the '-z lazy' option during compilation. [1] https://developer.arm.com/docs/100986/latest/procedure-call-standard-for-the-arm-64-bit-architecture-aarch64-with-sve-support
- D-812 : Arm Optimization Report is a new, beta-quality feature of Arm Compiler for Linux. Arm Optimization Report makes it easier to see what optimization decisions the compiler is making, in-line with your source code. For more information, see https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/documentation/arm-opt-report.
- D-804 : The Arm Compiler for Linux package now includes a SLES15 installer.
- D-803 : The Arm Compiler for Linux package now includes a RHEL 8 installer.
Bug fixes:
- H-697 : Fixed a security vulnerability affecting users of the community stack protection feature. For more information, please see https://kb.cert.org/vuls/id/129209/
- H-692 : Fixed an issue for a crash that could occur when compiling Fortran OpenMP loops with reductions on boolean variables (which can generate atomic instructions).
- H-689 : Fixed an issue where the LEN Fortran intrinsic could return an argument of INTEGER(8) type in cases where INTEGER was expected.
- H-681 : Improved vectorization of reductions, for current generation processors.
- H-667 : Fixed an issue where using a parameter array of type INTEGER*8, defined with implied-do notation in a module, caused an internal compiler error "interf:new_symbol_and_link, symbol not found".
- H-657 : The compiler now automatically vectorizes sincos and sincosf functions, which are not standard math.h functions, when the -fsimdmath or -armpl option is passed on the command line.
- H-634 : Improved the vectorization of Fortran loops that have calls to math routines.
- H-587 : Fixed an issue where the compiler libraries had the psmisc package as a dependency. The psmisc package is no longer required.
- H-456 : When using the --install-to option, the installer no longer appends /opt/arm to the user-specified path.
- H-428 : Fixed an issue where Modulefiles did not work correctly when the compiler installation was relocated.
Arm Performance Libraries 19.3.0
New features and enhancements:
- D-846 : A new interface for sparse matrix-matrix multiplication (SpMM) has been added to Arm Performance Libraries.
- SpMM is an extension of the existing sparse interface supporting all functionality from the usual BLAS GEMM interface.
- Matrices can be supplied in CSR, CSC, COO, or dense formats.
- SpMM is available for both C and Fortran, and examples are included for both.
- A sparse matrix addition function, and functions to generate identity and null matrices, are also provided for convenience. Sparse matrix-vector multiplication (SpMV) functions have been optimized for parallel cases.
- D-843 : FFT performance improvements.
- Optimizations for transform lengths involving large prime factors.
- Parallel performance improvements for multi-dimensional problems.
- D-675 : Performance enhancements for BLAS level 3 calls. In particular, updated versions of both ?SYMM and ?HEMM are included for all microarchitectures.
- D-674 : A generic, SVE-enabled version of Arm Performance Libraries is now provided. The SVE-enabled version has not been tuned for any particular microarchitecture, and is available to experiment with SVE in an emulated mode, ahead of silicon deployments. Examples are provided which demonstrate how to run SVE code.
- None in this release.
Arm Forge 19.1.3
(includes 19.1, 19.1.1, 19.1.2, and 19.1.3)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.
- Support for Cray Shasta detection.
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.
- [FOR-7417] Track memory allocations for Fortran applications compiled with the -mkl option to the Intel compiler.
- [FOR-7140] Fixed an issue where allocated Fortran arrays are reported as not allocated.
- [FOR-7376] Fixed an issue that caused the offline report memory leak bar charts to flow onto multiple lines.
- [FOR-6985] Fixed an issue that prevented the expansion of Fortran arrays in the Current Line window.
- [FOR-7660] Fixed an issue when launching an application with Slurm 19.0.5.
- [FOR-7661] Arm Forge now auto-detects HPE HMPT.
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.
- Support for Cray Shasta detection.
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.
- [FOR-7366] You can now see a breakdown of time spent calling functions and executing instructions per line on AArch74- and ppc64le-based systems.
- [FOR-7660] Fixed an issue when launching an application with Slurm 19.0.5.
- [FOR-7661] Arm Forge now auto-detects HPE HMPT.
- [FOR-7663] MAP GPU profiling now works as expected when GPUs are in "Exclusive Process" mode.
- [FOR-7879] Autodetection of make-profiler-libraries now works as expected on Cray systems.
Arm Performance Reports 19.1.3
(includes 19.1, 19.1.1, 19.1.2, and 19.1.3)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.
- Support for Cray Shasta detection.
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.
- [FOR-7660] Fixed an issue when launching an application with Slurm 19.0.5.
- [FOR-7661] HPE HMPT is now auto-detected.
- [FOR-7879] Autodetection of make-profiler-libraries now works as expected on Cray systems.
-
Release Note for Arm Allinea Studio 19.3
×Arm Compiler for Linux 19.3
=====================
Arm Compiler for Linux 19.3 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.3.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.3
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.3.0
This release includes multiple Arm Performance Libraries packages, each of which
are optimized for individual Armv8 AArch64 implementations (Cortex-A72 and
ThunderX2CN99). An SVE-enabled version is also provided, although this does not
have tunings for any particular microarchitecture. 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/<OS>/<OS_Version>/gcc-8.2.0/<ARMPL_Name>/19.3.0
Arm Compiler version:
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-19.3/<ARMPL_Name>/19.3
- 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.3:
- D-987 : Product reference guides are now available in HTML format in the
<install_location>/<package_name>/share directory.
- D-983 : Support for the F2008 optional argument "BACK=" was added to the MINLOC and
MAXLOC intrinsics.
- D-865 : When targeting SVE, the option '-z now' is passed implicitly to the compile/link
flags, to disable a feature known as lazy binding. The implementation of lazy
binding in the GNU dynamic loader is currently imcompatible with the draft
Procedure Call Standard (PCS) for the ARM 64-bit Architecture (AArch64) with SVE
support [1]. Once compatible loaders are generally available, this change will
be reverted. If needed, lazy binding can be passing the '-z lazy' option during
compilation. [1] https://developer.arm.com/docs/100986/latest/procedure-call-
standard-for-the-arm-64-bit-architecture-aarch64-with-sve-support
- D-812 : Arm Optimization Report is a new, beta-quality feature of Arm Compiler for
Linux. Arm Optimization Report makes it easier to see what optimization
decisions the compiler is making, in-line with your source code. For more
information, see https://developer.arm.com/tools-and-software/server-and-
hpc/arm-architecture-tools/documentation/arm-opt-report .
- D-804 : The Arm Compiler for Linux package now includes a SLES15 installer.
- D-803 : The Arm Compiler for Linux package now includes a RHEL 8 installer.
- Arm Performance Libraries 19.3.0:
- D-846 : A new interface for sparse matrix-matrix multiplication (SpMM) has been added to
Arm Performance Libraries.
- SpMM is an extension of the existing sparse interface supporting all
functionality from the usual BLAS GEMM interface.
- Matrices can be supplied in CSR, CSC, COO, or dense formats.
- SpMM is available for both C and Fortran, and examples are included for both.
- A sparse matrix addition function, and functions to generate identity and null
matrices, are also provided for convenience. Sparse matrix-vector multiplication
(SpMV) functions have been optimized for parallel cases.
- D-843 : FFT performance improvements.
- Optimizations for transform lengths involving large prime factors.
- Parallel performance improvements for multi-dimensional problems.
- D-675 : Performance enhancements for BLAS level 3 calls. In particular, updated versions
of both ?SYMM and ?HEMM are included for all microarchitectures.
- D-674 : A generic, SVE-enabled version of Arm Performance Libraries is now provided. The
SVE-enabled version has not been tuned for any particular microarchitecture, and
is available to experiment with SVE in an emulated mode, ahead of silicon
deployments. Examples are provided which demonstrate how to run SVE code.
Bug fixes:
- Arm C/C++/Fortran Compiler 19.3:
- H-697 : Fixed a security vulnerability affecting users of the community stack protection
feature. For more information, please see https://kb.cert.org/vuls/id/129209/
- H-692 : Fixed an issue for a crash that could occur when compiling Fortran OpenMP loops
with reductions on boolean variables (which can generate atomic instructions).
- H-689 : Fixed an issue where the LEN Fortran intrinsic could return an argument of
INTEGER(8) type in cases where INTEGER was expected.
- H-681 : Improved vectorization of reductions, for current generation processors.
- H-667 : Fixed an issue where using a parameter array of type INTEGER*8, defined with
implied-do notation in a module, caused an internal compiler error
"interf:new_symbol_and_link, symbol not found".
- H-657 : The compiler now automatically vectorizes sincos and sincosf functions, which
are not standard math.h functions, when the -fsimdmath or -armpl option is
passed on the command line.
- H-634 : Improved the vectorization of Fortran loops that have calls to math routines.
- H-587 : Fixed an issue where the compiler libraries had the psmisc package as a
dependency. The psmisc package is no longer required.
- H-456 : When using the --install-to option, the installer no longer appends /opt/arm to
the user-specified path.
- H-428 : Fixed an issue where Modulefiles did not work correctly when the compiler
installation was relocated.
- Arm Performance Libraries 19.3.0:
- No fixed issues
System Requirements
================
This suite is supported on the following Linux platforms:
- AArch64 Redhat 7 and 8
- AArch64 SUSE 12 and 15
- AArch64 Ubuntu 16.04+
Installation Instructions
=================
To install the Arm Compiler for Linux suite, run the installation script as a
privileged user:
% ./arm-compiler-for-hpc-19.3*.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 <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.
Licensing
=======
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run. To request a license, go to:
https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio
Once you have obtained a license file from Arm, follow these steps to make it
available for use:
1. Save your license:
- If you chose the default <install_location> directory, create a directory
called 'licenses' within /opt/arm/ and copy your client license file to it.
- If you specified a custom <install_location> directory, create an
/opt/arm/licenses directory path, then copy your client license file to the
'licenses' directory.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
separate license for these tools, set the ARM_LICENSE_DIR environment
variable to point to <install_location>/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 <install_location>/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/tools-and-software/server-and-hpc/arm-architecture-tools/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
<install_location>/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:<install_location>/modulefiles
Alternatively you can use the 'module use' command:
% module use <install_location>/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/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/19.3
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 tools:
- Arm C/C++/Fortran Compiler 19.3
Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler/19.3
- Arm Performance Libraries 19.3.0
GCC 8.2.0 version:
<Specific_Core>/<OS>/<OS_Version>/gcc-8.2.0/<ARMPL_Name>/19.3.0
Arm C/C++/Fortran Compiler version:
<Specific_Core>/<OS>/<OS_Version>/arm-hpc-compiler-19.3.0/<ARMPL_Name>/19.3.0
- GNU GCC 8.2.0
Generic-AArch64/<OS>/<OS_Version>/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.3:
- H-741 : Copying module files to a different directory after installation, or using a
symlink to the module files, might result in an error using 'module load'. If
this issue affects you, to get the correct advice for your system configuration,
please contact Arm support. Module configuration flexibility will be improved in
a later release of Arm Compiler for Linux.
- H-734 : Where multiple possible licences are available to the compiler, and where one
licence has no remaining seats, the compiler might fail to obtain a licence.
This has only been observed on Ubuntu 18.04 distributions that were updated in
late July. To resolve, remove the licence which has no remaining seats from the
directory.
- H-571 : If you have multiple versions of Arm Compiler for Linux 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-421 : When the uninstaller is run, it does not remove all of the files. It is safe to
remove the remaining files manually.
- Arm Performance Libraries 19.3.0:
- H-702 : Loading the Arm Performance Library 'armpl' module and then using the Arm
Compiler '-armpl=ilp64' option to select the ILP64 interface to Arm Performance
Libraries, pulls in the LP64 armpl.h include file. To avoid this issue, unload
the 'armpl' module and then load the 'arm-hpc-compiler' module instead. The
'-armpl' option then works as expected. This issue will be fixed in a future
version of Arm Compiler for Linux.
Documentation and Support
====================
To get started with Arm Compiler for Linux and Arm Performance Libraries, see:
Arm C/C++ Compiler:
- https://developer.arm.com/docs/101458/latest/getting-started
Arm Fortran Compiler:
- https://developer.arm.com/docs/101380/latest/get-started
Arm Performance Libraries:
- https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-performance-libraries/getting-started
For more information about Arm Compiler for Linux and Arm Performance Libraries,
refer to the following reference guides:
Arm Fortran Compiler (also available in <install_location>/<package_name>/share):
- https://developer.arm.com/docs/101380/latest
Arm C/C++ Compiler (also available in <install_location>/<package_name>/share):
- https://developer.arm.com/docs/101458/latest
Arm Performance Libraries:
- https://developer.arm.com/docs/101004/latest
To see the changes between releases, refer to the Release History:
https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-allinea-studio/release-history
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/tools-and-software/server-and-hpc/arm-architecture-tools/resources/porting-and-tuning
System Administrator environment configuration information can be found online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help/system-administration
Further documentation about all the tools can be found online at:
https://developer.arm.com/tools-and-software/server-and-hpc/help
If you require support, open a support case.
Example Code
===========
Example code is included in this suite as part of the Arm Performance
Libraries. This code can be found at:
<install_location>/<ARMPL_Name>*<ARMPL_Version>*/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 <install_location>/armpl-19.3.0_*arm-hpc-compiler*/examples ./
% cd examples
# Load the correct environment modules:
% module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/19.3
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-19.3/<ARMPL_Name>/<ARMPL_Version>
# Build it:
% make
Uninstalling
=========For convenience, this package includes an "uninstall.sh" script at:
<install_location>/arm-compiler-for-hpc-19.3*/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. - EULA
- D-987 : Product reference guides are now available in HTML format in the <install_location>/<package_name>/share directory.
-
Arm Allinea Studio: 19.2 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.*/
Bug fixes:
#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);- 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 Arm Allinea Studio 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.
- EULA
-
Arm Allinea Studio: 19.1 March 08, 2019
What's new in 19.1
New features and enhancements
Arm C/C++/Fortran Compiler 19.1:
- D-669 : Arm Compiler for HPC now supports the Fortran 'TRAILZ' intrinsic, which finds the number of trailing zero bits in an integer. Please refer to the Fortran Reference Guide for more information.
- D-668 : Arm Compiler for HPC now supports the Fortran 'UNROLL' directive. This is a hint to the compiler to unroll the preceding loop. Please refer to the Fortran Reference Guide for more information.
- D-632 : A new flag -fno-realloc-lhs has been added, for consistency with GNU compilers. Use this flag in place of -Mallocatable=95, which is no longer documented but is still supported. Refer to the Fortran Reference Guide for information about this flag.
- D-552 : libamath is now the default library used by Arm Compiler for HPC to provide optimized scalar and vector math functions.
- The compiler will link to libamath by default before libm in order to provide better performing implementations.
- libamath is also provided for GCC. GCC users must link to the library explicitly to make use of the optimized math functions.
- Always use the correct build of libamath for the compiler you are using. For example, do not compile and link code with GCC using the version of libamath supplied for Arm Compiler for HPC, use the GCC version.
- D-513 : Arm Compiler for HPC now supports the Huawei Kunpeng 920 CPU. Tuning for Kunpeng 920-based platforms is automatically selected with the -mcpu=native option, when the compiler is run on a Kunpeng 920-based platform. To select this explicitly, use the -mcpu=tsv110 option.
Arm Performance Libraries 19.1.0:
- D-581 : Improved *GEMV performance.
- D-552 : libamath is now the default library used by Arm Compiler for HPC to provide optimized scalar and vector math functions.
- The compiler will link to libamath by default before libm in order to provide better performing implementations.
- libamath is also provided for GCC. GCC users must link to the library explicitly to make use of the optimized math functions.
- Always use the correct build of libamath for the compiler you are using. For example, do not compile and link code with GCC using the version of libamath supplied for Arm Compiler for HPC, use the GCC version.
- D-499 : Performance improvements for [SCZ]GEMM, including stabilized performance for ThunderX2 systems configured in SMT > 1 mode.
- D-498 : Improved MPI FFT parallel scaling.
- D-497 : Support for Fortran MPI FFTW interface.
- D-496 : FFT performance improvements, including for input lengths involving large prime
factors.
- D-495 : Single precision real SpMV performance optimizations.
- D-494 : SpMV support for Compressed Sparse Column (CSC) and Coordinate (COO) sparse matrix formats with both C and Fortran interfaces.
- D-493 : Added sparse matrix-vector multiplication (SpMV) interfaces for Fortran, including an example.
Bug fixes
Arm C/C++/Fortran Compiler 19.1:
- H-489 : The armflang runtime library no longer exposes symbols that conflict with libnuma.
- H-464 : A problem that occurs when a shared variable is accessed in a taskloop has now been fixed.
- H-400 : Fixed an issue where getting the member of sizeless struct rvalue prevented successful compilation.
- H-397 : RPMs and debs now correctly report what libraries they provide.
- H-392 : The runtime performance of the Fortran TRANSFER function has been improved.
- H-296 : Fixed a runtime segmentation fault in subroutines that contain OMP CRITICAL and have one or more ENTRY statements.
- H-98 : The install should now be properly relocatable on RPM-based platforms and will register with the system RPM database if the user has appropriate permissions
- H-59 : Fixed an issue where when the DATA statement was used to assign a value to a Cray pointer, the compiler aborted with the following message "Error: integer constant must have integer type".
Arm Performance Libraries 19.1.0:
- No fixed issuesKnown Issues
Arm C/C++/Fortran Compiler 19.1:
- 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-421 : When the uninstaller is run, it does not remove all of the files. It is safe to remove the remaining files manually.
- H-411 : There is a regression in SVE vectorization which may result in miscompiles of loops with loop-carried dependencies.
- 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 Vector math routines.
Arm Performance Libraries 19.1.0:
- No known issues-
Release Note for Arm Allinea Studio 19.1
×Arm Compiler for HPC 19.1
=========================
Arm Compiler for HPC 19.1 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.1.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.1
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.1.0
This release includes multiple Arm Performance Libraries packages, each of which
are optimized for individual Armv8 AArch64 implementations (Cortex-A72,
ThunderX2CN99 and Kunpeng 920). 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/RHEL/7/gcc-8.2.0/armpl/19.1.0
Arm Compiler version:
% module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.1/armpl/19.1
- 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.1:
- D-669 : Arm Compiler for HPC now supports the Fortran 'TRAILZ' intrinsic, which finds
the number of trailing zero bits in an integer. Please refer to the Fortran
Reference Guide for more information.
- D-668 : Arm Compiler for HPC now supports the Fortran 'UNROLL' directive. This is a
hint to the compiler to unroll the preceding loop. Please refer to the Fortran
Reference Guide for more information.
- D-632 : A new flag -fno-realloc-lhs has been added, for consistency with GNU compilers.
Use this flag in place of -Mallocatable=95, which is no longer documented but is
still supported. Refer to the Fortran Reference Guide for information about this
flag.
- D-552 : libamath is now the default library used by Arm Compiler for HPC to provide
optimized scalar and vector math functions.
- The compiler will link to libamath by default before libm in order to provide
better performing implementations.
- libamath is also provided for GCC. GCC users must link to the library
explicitly to make use of the optimized math functions.
- Always use the correct build of libamath for the compiler you are using. For
example, do not compile and link code with GCC using the version of libamath
supplied for Arm Compiler for HPC, use the GCC version.
- D-513 : Arm Compiler for HPC now supports the Huawei Kunpeng 920 CPU. Tuning for
Kunpeng 920-based platforms is automatically selected with the -mcpu=native
option, when the compiler is run on a Kunpeng 920-based platform. To select this
explicitly, use the -mcpu=tsv110 option.
- Arm Performance Libraries 19.1.0:
- D-581 : Improved *GEMV performance.
- D-552 : libamath is now the default library used by Arm Compiler for HPC to provide
optimized scalar and vector math functions.
- The compiler will link to libamath by default before libm in order to provide
better performing implementations.
- libamath is also provided for GCC. GCC users must link to the library
explicitly to make use of the optimized math functions.
- Always use the correct build of libamath for the compiler you are using. For
example, do not compile and link code with GCC using the version of libamath
supplied for Arm Compiler for HPC, use the GCC version.
- D-499 : Performance improvements for [SCZ]GEMM, including stabilized performance for
ThunderX2 systems configured in SMT > 1 mode.
- D-498 : Improved MPI FFT parallel scaling.
- D-497 : Support for Fortran MPI FFTW interface.
- D-496 : FFT performance improvements, including for input lengths involving large prime
factors.
- D-495 : Single precision real SpMV performance optimizations.
- D-494 : SpMV support for Compressed Sparse Column (CSC) and Coordinate (COO) sparse
matrix formats with both C and Fortran interfaces.
- D-493 : Added sparse matrix-vector multiplication (SpMV) interfaces for Fortran,
including an example.
Bug fixes:
- Arm C/C++/Fortran Compiler 19.1:
- H-489 : The armflang runtime library no longer exposes symbols that conflict with
libnuma.
- H-464 : A problem that occurs when a shared variable is accessed in a taskloop has now
been fixed.
- H-400 : Fixed an issue where getting the member of sizeless struct rvalue prevented
successful compilation.
- H-397 : RPMs and debs now correctly report what libraries they provide.
- H-392 : The runtime performance of the Fortran TRANSFER function has been improved.
- H-296 : Fixed a runtime segmentation fault in subroutines that contain OMP CRITICAL and
have one or more ENTRY statements.
- H-98 : The install should now be properly relocatable on RPM-based platforms and will
register with the system RPM database if the user has appropriate permissions
- H-59 : Fixed an issue where when the DATA statement was used to assign a value to a
Cray pointer, the compiler aborted with the following message "Error: integer
constant must have integer type".
- Arm Performance Libraries 19.1.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.1*.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/RHEL/7/suites/arm-compiler-for-hpc/19.1
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.1
Generic-AArch64/RHEL/7/arm-hpc-compiler/19.1
- Arm Performance Libraries 19.1.0
GCC 8.2.0 version:
<Specific_Core>/RHEL/7/gcc-8.2.0/armpl/19.1.0
Arm C/C++/Fortran Compiler version:
<Specific_Core>/RHEL/7/arm-hpc-compiler-19.1.0/armpl/19.1.0
- GNU GCC 8.2.0
Generic-AArch64/RHEL/7/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.1:
- 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-421 : When the uninstaller is run, it does not remove all of the files. It is safe to
remove the remaining files manually.
- H-411 : There is a regression in SVE vectorization which may result in miscompiles of
loops with loop-carried dependencies.
- 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.1.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.1.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.1.0_*arm-hpc-compiler*/examples ./
# Load the correct environment modules:
% module load Generic-AArch64/RHEL/7/suites/arm-compiler-for-hpc/19.1
% module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.1/armpl/19.1.0
# Build it:
% make
Uninstalling
============
For convenience, this package includes an "uninstall.sh" script at:
/opt/arm/arm-compiler-for-hpc-19.1*/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.
- EULA
-
-
Arm Allinea Studio: 19.0 November 02, 2018
What's new in 19.0
New features and enhancements
Arm C/C++/Fortran Compiler 19.0:
- D-545 : Partial support for the do concurrent Fortran 2008 feature. Partial support because serial code is generated.
- D-544 : Support for the submodules Fortran 2008 feature.
- D-394 : Improvements to the performance of Fortran NINT and DNINT intrinsics.
- D-393 : Improvements to the performance of Fortran math intrinsics, including the ability to auto-vectorize scalar math intrinsics. To benefit from these improvements, add the new compiler option -armpl to your compile and link arguments, and use optimization level -O2 or higher.
- D-388 : Arm Compiler for HPC is now based on LLVM 7.0.
- D-374 : Support for the Fortran 'NOVECTOR' directive, which enables users to disable auto-vectorization on individual loops.
- D-373 : Support for the Fortran 'VECTOR ALWAYS' directive, which enables a user to request that a loop be auto-vectorized, irrespective of the compiler's internal cost-model, if it is safe to do so.
- D-329 : A new C/C++ Compiler Reference Manual is available in <install_location>/<package_name>/share.
Arm Performance Libraries 19.0:
- D-492 : Various changes to C header files:
- BLAS, CBLAS and LAPACK function prototypes have been modified to use 'const' where appropriate, for example, for input array pointers and char * specifiers.
- We now use C-style _Complex numbers instead of our own structure for complex numbers in the armpl.h header. If required, you can use #define to override armpl_singlecomplex_t and armpl_doublecomplex_t to something else that is bitwise-compatible (e.g. C++ std::complex type). This change is bitwise-compatible with the structure we have replaced.
- Complex number manipulation functions have been removed from the header. You are advised to use standard C-style _Complex operations instead (or those appropriate to any redefinition such as C++ std::complex).
- cdotc_, cdotu_, zdotc_, zdotu_, cladiv_ and zladiv_ prototypes have been modified to reflect the correct C-to-Fortran calling convention for a given compiler toolchain.
- D-486 : Libraries tuned for Qualcomm Falkor are no longer provided.
- D-461 : The GCC version of the library is now compatible with GCC 8.2 (previously 7.1).
- D-430 : Enhancements to existing libamath functions.
- D-429 : Support for LAPACK version 3.8.0.
- D-428 : LAPACK parallel scalability tuning has been performed for the following routines on ThunderX2CN99 systems: *POTRF, *GEQRF, *GETRF.
- D-426 : The FFT interface documented in the Arm Performance Libraries User Manual versions up to v18.4.0 has been deprecated. Users are instead encouraged to use the FFTW interface within Arm Performance Libraries for best performance. This release also includes optimizations to key FFT kernels.
- D-425 : Added FFTW MPI single and double precision interfaces in C.
- D-424 : Execution of advanced and guru FFTW plans is now parallelized.
- D-423 : Added FFTW guru single and double precision interfaces in C and Fortran.
- D-422 : Added a new suite of sparse matrix routines in C supporting sparse matrix-vector multiplication supplied in Compressed Sparse Row format, including an optimized double-precision real kernel. Added WAXPBY BLAS extension routine (w = a*x + b*y, for vectors w, x and y and scalars a and b).
- D-421 : Performance enhancements to parallel DGEMM, especially for small to medium-sized problems.
Bug fixes
Arm C/C++/Fortran Compiler 19.0:
- H-423 : Support, by default, for Fortran 2003 semantics for assignments to allocatable variables.
- H-407 : In some corner cases there has been an increase in memory usage observed due to the switch to memory allocatable semantics of Fortran 2003. This can result in a segfault. In these cases the recommended workaround is to use the armflang option -Mallocatable=95 during compilation.
- H-361 : Arm Fortran Compiler now handles the -fsave-optimization-record flag correctly.
- H-333 : Improvements to DWARF source-level debug information for Fortran.
- H-130 : Added missing man page for armclang++.
- H-96 : Fixes an issue with armflang's handling of OpenMP 'threadprivate' module variables.
Arm Performance Libraries 19.0:
- No fixed issues
Refer to the Release Notes for further information about this release.
-
Release Note for Arm Allinea Studio 19.0
×Arm Compiler for HPC 19.0 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 SoCs. This release includes version 19.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.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 19.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-A72 and ThunderX2CN99). 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/RHEL/7/gcc-8.2.0/armpl/19.0
Arm Compiler version:
% module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.0/armpl/19.0
- 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. This is a GNU tool suite and the GPL source code can be downloaded separately.
Changes in this Release
New features and enhancements
Arm C/C++/Fortran Compiler 19.0:
- D-545 : Partial support for the do concurrent Fortran 2008 feature. Partial support because serial code is generated.
- D-544 : Support for the submodules Fortran 2008 feature.
- D-394 : Improvements to the performance of Fortran NINT and DNINT intrinsics.
- D-393 : Improvements to the performance of Fortran math intrinsics, including the ability to auto-vectorize scalar math intrinsics. To benefit from these improvements, add the new compiler option -armpl to your compile and link arguments, and use optimization level -O2 or higher.
- D-388 : Arm Compiler for HPC is now based on LLVM 7.0.
- D-374 : Support for the Fortran 'NOVECTOR' directive, which enables users to disable auto-vectorization on individual loops.
- D-373 : Support for the Fortran 'VECTOR ALWAYS' directive, which enables a user to request that a loop be auto-vectorized, irrespective of the compiler's internal cost-model, if it is safe to do so.
- D-329 : A new C/C++ Compiler Reference Manual is available in <install_location>/<package_name>/share.
Arm Performance Libraries 19.0:
- D-492 : Various changes to C header files:
- BLAS, CBLAS and LAPACK function prototypes have been modified to use 'const' where appropriate, for example, for input array pointers and char * specifiers.
- We now use C-style _Complex numbers instead of our own structure for complex numbers in the armpl.h header. If required, you can use #define to override armpl_singlecomplex_t and armpl_doublecomplex_t to something else that is bitwise-compatible (e.g. C++ std::complex type). This change is bitwise-compatible with the structure we have replaced.
- Complex number manipulation functions have been removed from the header. You are advised to use standard C-style _Complex operations instead (or those appropriate to any redefinition such as C++ std::complex).
- cdotc_, cdotu_, zdotc_, zdotu_, cladiv_ and zladiv_ prototypes have been modified to reflect the correct C-to-Fortran calling convention for a given compiler toolchain.
- D-486 : Libraries tuned for Qualcomm Falkor are no longer provided.
- D-461 : The GCC version of the library is now compatible with GCC 8.2 (previously 7.1).
- D-430 : Enhancements to existing libamath functions.
- D-429 : Support for LAPACK version 3.8.0.
- D-428 : LAPACK parallel scalability tuning has been performed for the following routines on ThunderX2CN99 systems: *POTRF, *GEQRF, *GETRF.
- D-426 : The FFT interface documented in the Arm Performance Libraries User Manual versions up to v18.4.0 has been deprecated. Users are instead encouraged to use the FFTW interface within Arm Performance Libraries for best performance. This release also includes optimizations to key FFT kernels.
- D-425 : Added FFTW MPI single and double precision interfaces in C.
- D-424 : Execution of advanced and guru FFTW plans is now parallelized.
- D-423 : Added FFTW guru single and double precision interfaces in C and Fortran.
- D-422 : Added a new suite of sparse matrix routines in C supporting sparse matrix-vector multiplication supplied in Compressed Sparse Row format, including an optimized double-precision real kernel. Added WAXPBY BLAS extension routine (w = a*x + b*y, for vectors w, x and y and scalars a and b).
- D-421 : Performance enhancements to parallel DGEMM, especially for small to medium-sized problems.
Bug fixes
Arm C/C++/Fortran Compiler 19.0:
- H-423 : Support, by default, for Fortran 2003 semantics for assignments to allocatable variables.
- H-407 : In some corner cases there has been an increase in memory usage observed due to the switch to memory allocatable semantics of Fortran 2003. This can result in a segfault. In these cases the recommended workaround is to use the armflang option -Mallocatable=95 during compilation.
- H-361 : Arm Fortran Compiler now handles the -fsave-optimization-record flag correctly.
- H-333 : Improvements to DWARF source-level debug information for Fortran.
- H-130 : Added missing man page for armclang++.
- H-96 : Fixes an issue with armflang's handling of OpenMP 'threadprivate' module variables.
Arm Performance Libraries 19.0:
- No fixed issues
System Requirements
This suite is supported on the following Linux platforms:
- AArch64 Redhat 7
- AArch64 SUSE 12
- AArch64 Ubuntu 16.04Installation Instructions
To install the Arm Compiler for HPC suite, run the installation script as a privileged user:% ./arm-compiler-for-hpc-19.0*.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:
Once you have obtained a license file from Arm, follow these steps to make it available for use:
- Create a directory called 'licenses' within the /opt/arm directory and copy your client license file to it.
- 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.
- 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.
Refer to the Arm Allinea Studio licensing page on the Arm Developer website for more information about 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 here.
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/RHEL/7/suites/arm-compiler-for-hpc/19.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 C/C++/Fortran Compiler 19.0
Generic-AArch64/RHEL/7/arm-hpc-compiler/19.0
- Arm Performance Libraries 19.0
GCC 8.2.0 version:
<Specific_Core>/RHEL/7/gcc-8.2.0/armpl/19.0
Arm C/C++/Fortran Compiler version:
<Specific_Core>/RHEL/7/arm-hpc-compiler-19.0/armpl/19.0
GNU GCC 8.2.0:
Generic-AArch64/RHEL/7/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.0:
- 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-411 : There is a regression in SVE vectorization which may result in miscompiles of loops with loop-carried dependencies.
- 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 Vector math routines.
Arm Performance Libraries 19.0:
- No known issues
Documentation and Support
Refer to the following topics to get started with Arm Compiler for HPC and Arm Performance Libraries:
- Getting started with Arm C/C++ Compiler
- Getting started with Arm Fortran Compiler
- Getting started with Arm Performance Libraries
- Refer to the Release History to see the changes between releases.
- Access the Arm Fortran Compiler reference manual online or in /opt/arm/<package_name>/share.
- Access the Arm C/C++ Compiler reference manual online or in /opt/arm/<package_name>/share.
- Detailed instructions for building many common scientific applications, benchmarks and libraries using Arm HPC tools.
- Further documentation about all the components.
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.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. For example:
- Copy the examples somewhere writeable:
% cp -r /opt/arm/armpl-19.0_Generic*_19.0_aarch64-linux/examples . - Load the correct environment modules:
% module load Generic-AArch64/RHEL/7/suites/arm-compiler-for-hpc/19.0
% module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.0/armpl/19.0.0 - Build it:
% make
Uninstalling
For convenience, this package includes an "uninstall.sh" script at:
/opt/arm/arm-compiler-for-hpc-19.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 aswell.
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.
- Arm C/C++/Fortran Compiler 19.0
- EULA
-
Arm Allinea Studio: 18.4 - latest update 18.4.2 October 10, 2018
What's new in 18.4 - latest update 18.4.2
Arm Compiler for HPC 18.4 covers the following releases:
- Arm C/C++/Fortran Compiler and Arm Performance Libraries version 18.4 - released 26th July 2018.
- Arm C/C++/Fortran Compiler and Arm Performance Libraries version 18.4.1 - released 7th September 2018.
- Arm C/C++/Fortran Compiler and Arm Performance Libraries version 18.4.2 - released 10th October 2018.
New features and enhancements
Arm C/C++/Fortran Compiler 18.4:
- The -fstack-arrays option is enabled at the -Ofast optimization level.
- Arm Fortran Compiler now supports the general-purpose ivdep directive, and partially supports the OpenMP-specific omp simd directive. These directives instruct the compiler to ignore memory dependencies and can enable a loop to be vectorized.
- The Arm Fortran Compiler Reference guide is now available in /opt/arm/<package_name>/share.
- The new vector procedure call standard has been implemented and is used by the SLEEF math library.
Arm C/C++/Fortran Compiler 18.4.1:
- No new features or enhancements.
Arm C/C++/Fortran Compiler 18.4.2:
- No new features or enhancements.
Arm Performance Libraries 18.4:
- Performance improvements for batched CGEMM and ZGEMM.
- Performance improvements for small-to-medium-sized SGEMM problems.
- Significantly less time spent planning FFTW transforms for levels of rigor greater than FFTW_ESTIMATE.
- Performance enhancements for complex-to-real FFTW transforms, especially multidimensional problems.
- Libraries for Cortex-A57 and Cavium ThunderX are no longer provided.
- New functions in libamath: sinf, cosf, sincosf (single precision).
- Updated functions in libamath: exp, pow, log (double precision).
Arm Performance Libraries 18.4.1:
- No new features or enhancements.
Arm Performance Libraries 18.4.2:
- D-490 : The version of libamath built has been updated.
Bug fixes
Arm C/C++/Fortran Compiler 18.4:
- H-52: Segfault on large array allocation.
- H-87: Arm Fortran Compiler not vectorizing a loop.
- H-92: Fixes for some debug issues related to subroutine arguments.
- H-105: Flag (-E) to run only the preprocessor does not work in the Fortran compiler.
- H-115: Problems with direct access I/O in Fortran programs.
Arm C/C++/Fortran Compiler 18.4.1:
- H-317: In the previous release, when armflang was used to link objects without compilation, it generated unnecessary warnings about unused compilation flags. These warnings have been removed.
- H-149: A problem caused by unaligned offsets in stack layout for SVE replicating loads, which caused the compiler to crash, has been resolved.
Arm C/C++/Fortran Compiler 18.4.2:
- H-361 : Arm Fortran Compiler now handles the
-fsave-optimization-record
flag correctly.
Arm Performance Libraries 18.4:
- H-126: Some multidimensional FFTW transforms return incorrect results.
Arm Performance Libraries 18.4.1:
- No fixed issues
Arm Performance Libraries 18.4.2:
- No fixed issues
Refer to the Release Note for further details.
-
Release Note for Arm Allinea Studio 18.4 - latest update 18.4.2
×Arm Compiler for HPC 18.4 (latest update 18.4.2)
=========================
Arm Compiler for HPC 18.4 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 SoCs. This release includes version
18.4 of the Arm Performance Libraries which provides Fortran compatibility
with the Arm C/C++/Fortran Compiler. This release also includes GNU GCC 7.1 to
provide an 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 18.4
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.4
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-A72,
Qualcomm Falkor 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/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.4.2
Arm Compiler version:
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.4/<ARMPL_Name>/18.4.2
- 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 C/C++/Fortran Compiler 18.4:
- The -fstack-arrays option is enabled at the -Ofast optimization level.
- Arm Fortran Compiler now supports the general-purpose ivdep directive, and partially supports
the OpenMP-specific omp simd directive. These directives instruct the compiler to ignore memory
dependencies and can enable a loop to be vectorized.
- The Arm Fortran Compiler Reference guide is now available in /opt/arm/<package_name>/share.
- The new vector procedure call standard has been implemented and is used by the SLEEF math
library.New features and enhancements:
- Arm C/C++/Fortran Compiler 18.4.1:
- No new features or enhancements.
- Arm Performance Libraries 18.4:
- Performance improvements for batched CGEMM and ZGEMM.
- Performance improvements for small-to-medium-sized SGEMM problems.
- Significantly less time spent planning FFTW transforms for levels of rigor greater than FFTW_ESTIMATE.
- Performance enhancements for complex-to-real FFTW transforms, especially multidimensional problems.
- Libraries for Cortex-A57 and Cavium ThunderX are no longer provided.
- New functions in libamath: sinf, cosf, sincosf (single precision).
- Updated functions in libamath: exp, pow, log (double precision).- Arm Performance Libraries 18.4.1:
- No new features or enhancements.- Arm C/C++/Fortran Compiler 18.4.2:
- No new features or enhancements.- Arm Performance Libraries 18.4.2:
- D-490 : The version of libamath built has been updated.
Bug fixes:
- Arm C/C++/Fortran Compiler 18.4:
- H-52: Segfault on large array allocation.
- H-87: Arm Fortran Compiler not vectorizing a loop.
- H-92: Fixes for some debug issues related to subroutine arguments.
- H-105: Flag-E
to run only the preprocessor does not work in the Fortran compiler.
- H-115: Problems with direct access I/O in Fortran programs.- Arm C/C++/Fortran Compiler 18.4.1:
- H-317 : In the previous release, when armflang was used to link objects without compilation, it generated unnecessary warnings about unused compilation flags. These warnings have been removed.
-H-149 : A problem caused by unaligned offsets in stack layout for SVE replicating loads, which caused the compiler to crash, has been resolved.- Arm Performance Libraries 18.4:
- H-126: Some multidimensional FFTW transforms returning incorrect results.- Arm Performance Libraries 18.4.1:
- No fixed issues.- Arm C/C++/Fortran Compiler 18.4.2:
- H-361 : Arm Fortran Compiler now handles the-fsave-optimization-record
flag correctly.
- Arm Performance Libraries 18.4.2:
- 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, you should run the installation
script as a privileged user:
% ./arm-compiler-for-hpc-18.4.2*.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. Local installs have
the same directory structure starting from the user's chosen
installation root.
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/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/18.4.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 18.4.2
Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler/18.4.2
- Arm Performance Libraries 18.4.2
GCC 7.1.0 version:
<Specific_Core>/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.4.2
Arm C/C++/Fortran Compiler version:
<Specific_Core>/<OS>/<OS_Version>/arm-hpc-compiler-18.4.2/<ARMPL_Name>/18.4.2
- GNU GCC 7.1
Generic-AArch64/<OS>/<OS_Version>/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 C/C++/Fortran Compiler 18.4:
- H-297: For Fortran, option -fopenmp-simd is not supported and the omp simd directive works only
with -fopenmp option.- Arm C/C++/Fortran Compiler 18.4.1:
- H-310 : -fsimdmath is incompatible with a dynamic linker optimization known as 'lazy
binding'. When using -fsimdmath, we recommend you also add '-z now' to the
compile/link flags, in order to disable this optimization during linking. For
more information, see Vector math routines.
Documentation
=============
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
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 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_Name>*<ARMPL_Version>*/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_Name>*<ARMPL_Version>*/examples /some/writable/directory/examples
% cd /some/writeable/directory/examples
# Load the correct environment modules:
% module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/<SUITE_Version>
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.4.2/<ARMPL_Name>/<ARMPL_Version>
# Build it:
% make
Uninstalling
============
For convenience, this package includes an "uninstall.sh" script at:
/opt/arm/arm-compiler-for-hpc-18.4.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. - EULA
-
Arm Allinea Studio: 18.3 May 29, 2018
What's new in 18.3
New features and enhancements
- Arm C/C++/Fortran Compiler 18.3:
- Support for Fortran 2008 feature : Pointers to internal procedure and internal procedure passed as argument.
- Automatic arrays can be allocated on the stack with -fstack-arrays flag.
- Arm Performance Libraries 18.3:
- Support for FFTW wisdom included for the first time.
- Performance enhancements to FFTW functions: complex-to-complex and real-to-complex functions using both basic and advanced interfaces; some complex-to-real performance differences too.
- Parallel performance improvements for S/D/C/ZTRSV and S/DTRMV.
- New library, 'libamath', in the 'lib' directory for each microarchitecture for Arm Compiler builds. This contains optimized versions of exp, pow and log functions in single and double precision. For more information on libamath, see Getting started with Arm Performance Libraries.
Bug fixes
- Arm HPC Compiler 18.3:
- H-14 : Fixed two preprocessor issues. Transpose intrinsic is now supported during initialization.
- H-58 : Fixed failure when a module variable was used to set real kind in two different functions.
- H-61 : __ARM_ARCH macro is now defined in armflang compiler.
- H-74 : Disabled generation of fmas at O0 in armflang. Matches armclang behaviour. Passes fp accuracy tests at O0.
- H-86 : Fixed issue with capturing procedure pointers to OpenMP parallel regions, which was preventing the TeaLeaf mini-app from running correctly.
- Arm Performance Libraries 18.3:
- H-7: Nested parallelism performance improvements.
Known Issues
Arm Compiler 18.3:
- H-105: The '-E' option to armflang does not work. This will be fixed in the next release.
- H-114: Debugging arrays with negative lower bounds is not currently supported.
-
Release Note for Arm Allinea Studio 18.3
×Arm Compiler for HPC 18.3 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 SoCs. This release includes version 18.3 of the Arm Performance Libraries which provides Fortran compatibility with the Arm C/C++/Fortran Compiler. This release also includes GNU GCC 7.1 to provide an 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 18.3
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.3
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/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.3
Arm Compiler version:
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.3/<ARMPL_Name>/18.3
- 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 C/C++/Fortran Compiler 18.3:
- Support for Fortran 2008 feature : Pointers to internal procedure and internal procedure passed as argument.
- Automatic arrays can be allocated on the stack with -fstack-arrays flag.
- Arm Performance Libraries 18.3:
- Support for FFTW wisdom included for the first time.
- Performance enhancements to FFTW functions: complex-to-complex and real-to-complex functions using both basic and advanced interfaces; some complex-to-real performance differences too.
- Parallel performance improvements for S/D/C/ZTRSV and S/DTRMV.
- New library, 'libamath', in the 'lib' directory for each microarchitecture for Arm Compiler builds. This contains optimized versions of exp, pow and log functions in single and double precision. For more information on libamath, see Getting started with Arm Performance Libraries.
Bug fixes:
- Arm HPC Compiler 18.3:
- H-14 : Fixed two preprocessor issues. Transpose intrinsic is now supported during initialization.
- H-58 : Fixed failure when a module variable was used to set real kind in two different functions.
- H-61 : __ARM_ARCH macro is now defined in armflang compiler.
- H-74 : Disabled generation of fmas at O0 in armflang. Matches armclang behaviour. Passes fp accuracy tests at O0.
- H-86 : Fixed issue with capturing procedure pointers to OpenMP parallel regions, which was preventing the TeaLeaf mini-app from running correctly.
- Arm Performance Libraries 18.3:
- H-7: Nested parallelism performance improvements.
Speculation Barrier Support
The Spectre v1 mitigation at https://github.com/ARM-software/speculation-barrier works with Arm Compiler for HPC 18.3. For further background info see https://developer.arm.com/support/security-update.
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, you should run the installation script as a privileged user:
% ./arm-compiler-for-hpc-18.3*.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.
Once you have obtained a license file from Arm, follow these steps to make it available for use:
- Create a directory called 'licenses' within the /opt/arm directory and copy your client license file to it.
- 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.
- 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.
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/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/18.3
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 18.3:
Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler/18.3
- Arm Performance Libraries 18.3:
GCC 7.1.0 version:
<Specific_Core>/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.3
Arm C/C++/Fortran Compiler version:
<Specific_Core>/<OS>/<OS_Version>/arm-hpc-compiler-18.3/<ARMPL_Name>/18.3
- GNU GCC 7.1:
Generic-AArch64/<OS>/<OS_Version>/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.3:
- H-105: The '-E' option to armflang does not work. This will be fixed in the next release.
- H-114: Debugging arrays with negative lower bounds is not currently supported.
Documentation
Refer to the following topics to get started with Arm Compiler for HPC and Arm Performance Libraries:- Getting started with Arm C/C++ Compiler
- Getting started with Arm Fortran Compiler
- Geting started with Arm Performance Libraries
Refer to the Release History to see the changes between releases.See further documentation about all the components.
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_Name>*<ARMPL_Version>*/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. For example:
- Copy the examples somewhere writeable:
% cp -r /opt/arm/<ARMPL_Name>-<ARMPL_Version>_Generic-AArch64_<OS>-<OS_Version>_arm-hpc-compiler_18.3_aarch64-linux/examples /some/writable/directory/examples
% cd /some/writeable/directory/examples
Load the correct environment modules:
% module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/<SUITE_Version>
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.3/<ARMPL_Name>/<ARMPL_Version>
- Build it:
% make
Uninstalling
For convenience, this package includes an "uninstall.sh" script at: /opt/arm/arm-compiler-for-hpc-18.3*/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.
- Arm C/C++/Fortran Compiler 18.3
- EULA
- Arm C/C++/Fortran Compiler 18.3:
-
Arm Allinea Studio: 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 for Arm Allinea Studio 18.2
Arm Compiler for HPC 18.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 SoCs. This release includes version 18.2 of the Arm Performance Libraries which provides Fortran compatibility with the Arm C/C++/Fortran Compiler. This release also includes GNU GCC 7.1 to provide an 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 18.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 18.2
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/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.2
Arm Compiler version:
module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.2/<ARMPL_Name>/18.2
- 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 C/C++/Fortran Compiler 18.2:
- License management is now switched on by default. Please refer to the Arm Allinea Studio licensing page on the Arm Developer website for more information about licensing. If you have difficulty with this feature please contact your ARM representative.
- 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. - 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 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.
Bug fixes:
- Arm HPC Compiler 18.2:
- SC-2094: Support for debugging Fortran adjustable arrays.
- SC-2379: Support for debugging Fortran imported module variables and functions.
- SC-2431: Fixed an issue with codegen of LDNT1/STNT1 instructions which previously caused a segmentation fault.
- SC-2433: Improved compilation times.
- SC-2454: A bug preventing the vectorization of 'sincos' in QMCPACK has been fixed. The fix has been verified on version 3.1.1 of QMCPACK.
- Arm Performance Libraries 18.2:
- A-488: Bug fixes to FFTW routines: handle correctly NULL values passed in for inembed and onembed parameters in the advanced interface.
- A-487: A number of FFT routines have been fixed to cease modifying input data for out-of-place transforms.
- A-472, A-484: Instances of the library compiled with the Arm Compiler are now built with the -Mrecursive armflang flag to ensure local arrays are put on the stack and avoid problems with parallel calls into serial versions of the library.
Speculation Barrier Support
The Spectre v1 mitigation at https://github.com/ARM-software/speculation-barrier works with Arm Compiler for HPC 18.2. For further background info see
https://developer.arm.com/support/security-update
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, you should run the installation script as a privileged user:
./arm-compiler-for-hpc-18.2*.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.
Once you have obtained a license file from Arm, follow these steps to make it available for use:
- Create a directory called 'licenses' within the /opt/arm directory and copy your client license file to it.
- If you are using Arm Forge or Arm Performance Reports, and you do not have a separate license for these tools, set the ALLINEA_LICENSE_DIR environment variable to point to /opt/arm/licenses.
- 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 for more information about 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/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/18.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 18.2:
Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler/18.2
-
Arm Performance Libraries 18.2
GCC 7.1.0 version:<Specific_Core>/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.2
Arm C/C++/Fortran Compiler version:
<Specific_Core>/<OS>/<OS_Version>/arm-hpc-compiler-18.2/<ARMPL_Name>/18.2
-
GNU GCC 7.1
Generic-AArch64/<OS>/<OS_Version>/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.2:
- SC-2540: The vectorization of math routines via -fsimdmath can fail in some cases when targeting SVE.
Documentation
Once installed, each package has a README and Release Notes located at /opt/arm/<package_name>/share.
See Help and tutorials on the Arm Developer website for usage instructions about all the components.
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_Name>*<ARMPL_Version>*/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.
For example:- Copy the examples somewhere writeable:
cp -r /opt/arm/<ARMPL_Name>-<ARMPL_Version>_Generic-AArch64_<OS>-<OS_Version>_arm-hpc-compiler_18.2_aarch64-linux/examples
/some/writable/directory/examples - Change to the directory:
cd /some/writeable/directory/examples
- Load the correct environment modules:
module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/<SUITE_Version>
module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.2/<ARMPL_Name>/<ARMPL_Version> - Build it:
make
Uninstalling
For convenience, this package includes an "uninstall.sh" script at /opt/arm/arm-compiler-for-hpc-18.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 used the --install-to option provided by the installer, you will need to uninstall the packages by manually removing their directories.
- Arm C/C++/Fortran Compiler 18.2
- EULA
-
Arm Allinea Studio: 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 for Arm Allinea Studio 18.1
×Arm Compiler for HPC 18.1
Arm Compiler for HPC 18.1 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.1
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.1
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/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.1
Arm Compiler version:
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.1/<ARMPL_Name>/18.1
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.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.
Bug fixes
Arm Compiler 18.1
SC-2338: Improvements to handling of OpenMP thread placement with OMP_PLACES=cores on ThunderX2 platforms
Arm Performance Libraries 18.1
O-723: Correctly include single precision Fortran FFTW interface.
Known issues
Arm Compiler 18.1
SC-2379: Debugging imported Fortran modules is not currently supported.
SC-2411: Debugging information is not currently provided for Fortran pointer/allocatable arrays.
Speculation Barrier Support
A series of functions are being proposed to the open-source LLVM community, to help protect against the cache timing side-channel vulnerability to speculative processors, also known as Spectre. Further details of this issue can be found at https://developer.arm.com/support/security-update.
This release of Arm Compiler does not provide built-in support for these functions, but users can make use of them by using a header file provided at https://github.com/ARM-software/speculation-barrier.
A future release of Arm Compiler will provide built-in support for these functions without requiring the use of this header file.
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, you should run the installation script as a privileged user:
% ./arm-compiler-for-hpc-18.1*.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.PUBThis 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 themodule 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/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/18.1
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.1
Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler/18.1
- Arm Performance Libraries 18.1
GCC 7.1.0 version:
<Specific_Core>/<OS>/<OS_Version>/gcc-7.1.0/<ARMPL_Name>/18.1
Arm Compiler version:
<Specific_Core>/<OS>/<OS_Version>/arm-hpc-compiler-18.1/<ARMPL_Name>/18.1
- GNU GCC 7.1
Generic-AArch64/<OS>/<OS_Version>/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
Documentation
Once installed these release notes can be found at:
<Install_Dest>/share/
The Performance Libraries provides a manual which can be found at:
/opt/arm/<ARMPL_Name>-<ARMPL_Version>*/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 or would like to provide feedback, 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_Name>*<ARMPL_Version>*/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.
For example:
Copy the examples somewhere writeable:
% cp -r /opt/arm/<ARMPL_Name>-<ARMPL_Version>_Generic-AArch64_<OS>-<OS_Version>_arm-hpc-compiler_18.1_aarch64-linux/examples/some/writable/directory/examples
% cd /some/writeable/directory/examples
Load the correct environment modules:
% module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/<SUITE_Version>
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-18.1/<ARMPL_Name>/<ARMPL_Version>
Build it:
% make
Uninstalling
For convenience, this package includes an "uninstall.sh" script at:
/opt/arm/arm-compiler-for-hpc-18.1*/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. - EULA
-
Arm Allinea Studio: 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 anFP_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 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.
- EULA