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 Release History 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 Note
Arm Compiler for Linux 20.3 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