mirror of
https://github.com/ROCm/ROCm.git
synced 2026-01-10 15:18:11 -05:00
Compare commits
51 Commits
rocm-4.1.0
...
rocm-4.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12e3bb376b | ||
|
|
a44e82f263 | ||
|
|
9af988ffc8 | ||
|
|
5fed386cf1 | ||
|
|
d729428302 | ||
|
|
8611c5f450 | ||
|
|
ae0b56d029 | ||
|
|
3862c69b09 | ||
|
|
be34f32307 | ||
|
|
08c9cce749 | ||
|
|
a83a7c9206 | ||
|
|
71faa9c81f | ||
|
|
6b021edb23 | ||
|
|
3936d236e6 | ||
|
|
dbcb26756d | ||
|
|
96de448de6 | ||
|
|
ee0bc562e6 | ||
|
|
376b8673b7 | ||
|
|
e9147a9103 | ||
|
|
fab1a697f0 | ||
|
|
a369e642b8 | ||
|
|
9101972654 | ||
|
|
f3ba8df53d | ||
|
|
ba7a87a2dc | ||
|
|
df6d746d50 | ||
|
|
2b2bab5bf3 | ||
|
|
5ec9b12f99 | ||
|
|
803148affd | ||
|
|
9275fb6298 | ||
|
|
b6ae3f145e | ||
|
|
f80eefc965 | ||
|
|
c5d91843a7 | ||
|
|
733a9c097c | ||
|
|
ff2b3f8a23 | ||
|
|
5a4cf1cee1 | ||
|
|
dccf5ca356 | ||
|
|
8b20bd56a6 | ||
|
|
65cb10e5e8 | ||
|
|
ac2625dd26 | ||
|
|
3716310e93 | ||
|
|
2dee17f7d6 | ||
|
|
61e8b0d70e | ||
|
|
8a3304a8d9 | ||
|
|
55488a9424 | ||
|
|
ff4a1d4059 | ||
|
|
4b2d93fb7e | ||
|
|
061ccd21b8 | ||
|
|
0ed1bd9f8e | ||
|
|
856c74de55 | ||
|
|
12c6f60e45 | ||
|
|
897b1e8e2d |
BIN
AMD HIP Programming Guide_v4.2.pdf
Normal file
BIN
AMD HIP Programming Guide_v4.2.pdf
Normal file
Binary file not shown.
Binary file not shown.
52690
AMD_HIP_API_Guide_4.2.pdf
Normal file
52690
AMD_HIP_API_Guide_4.2.pdf
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
BIN
AMD_ROCm_DataCenter_Tool_User_Guide_v4.2.pdf
Normal file
BIN
AMD_ROCm_DataCenter_Tool_User_Guide_v4.2.pdf
Normal file
Binary file not shown.
Binary file not shown.
BIN
AMD_ROCm_Release_Notes_v4.2.pdf
Normal file
BIN
AMD_ROCm_Release_Notes_v4.2.pdf
Normal file
Binary file not shown.
Binary file not shown.
BIN
HIP_Supported_CUDA_API_Reference_Guide_v4.2.pdf
Normal file
BIN
HIP_Supported_CUDA_API_Reference_Guide_v4.2.pdf
Normal file
Binary file not shown.
456
README.md
456
README.md
@@ -1,22 +1,21 @@
|
||||
# AMD ROCm™ v4.1 Release Notes
|
||||
This document describes the features, fixed issues, and information about downloading and installing the AMD ROCm™ software. It also covers known issues and deprecations in the AMD ROCm v4.1 release.
|
||||
# AMD ROCm™ v4.2 Release Notes
|
||||
|
||||
This document describes the features, fixed issues, and information about downloading and installing the AMD ROCm™ software. It also covers known issues and deprecations in this release.
|
||||
|
||||
- [Supported Operating Systems and Documentation Updates](#Supported-Operating-Systems-and-Documentation-Updates)
|
||||
* [Supported Operating Systems](#Supported-Operating-Systems)
|
||||
* [ROCm Installation Updates](#ROCm-Installation-Updates)
|
||||
* [AMD ROCm Documentation Updates](#AMD-ROCm-Documentation-Updates)
|
||||
|
||||
- [Driver Compatibility Issue in This Release](#Driver-Compatibility-Issue-in-This-Release)
|
||||
|
||||
- [What\'s New in This Release](#Whats-New-in-This-Release)
|
||||
* [TargetID for Multiple Configurations](#TargetID-for-Multiple-Configurations)
|
||||
* [ROCm Data Center Tool](#ROCm-Data-Center-Tool)
|
||||
* [ROCm Math and Communication Libraries](#ROCm-Math-and-Communication-Libraries)
|
||||
* [HIP Enhancements](#HIP-Enhancements)
|
||||
* [OpenMP Enhancements and Fixes](#OpenMP-Enhancements-and-Fixes)
|
||||
* [MIOpen Tensile Integration](#MIOpen-Tensile-Integration)
|
||||
* [ROCm Data Center Tool](#ROCm-Data-Center-Tool)
|
||||
* [ROCm Math and Communication Libraries](#ROCm-Math-and-Communication-Libraries)
|
||||
|
||||
|
||||
- [Fixed Defects](#Fixed-Defects)
|
||||
|
||||
|
||||
- [Known Issues](#Known-Issues)
|
||||
|
||||
- [Deprecations](#Deprecations)
|
||||
@@ -36,18 +35,20 @@ This document describes the features, fixed issues, and information about downlo
|
||||
|
||||
## ROCm Installation Updates
|
||||
|
||||
### List of Supported Operating Systems
|
||||
### Supported Operating Systems
|
||||
|
||||
The AMD ROCm platform is designed to support the following operating systems:
|
||||
|
||||
* Ubuntu 20.04.1 (5.4 and 5.6-oem) and 18.04.5 (Kernel 5.4)
|
||||
* CentOS 7.9 (3.10.0-1127) & RHEL 7.9 (3.10.0-1160.6.1.el7) (Using devtoolset-7 runtime support)
|
||||
* CentOS 8.3 (4.18.0-193.el8) and RHEL 8.3 (4.18.0-193.1.1.el8) (devtoolset is not required)
|
||||
* Ubuntu 20.04.2 HWE (5.4 and 5.6-oem) and 18.04.5 (Kernel 5.4)
|
||||
* CentOS 7.9 (3.10.0-1127) & RHEL 7.9 (3.10.0-1160.6.1.el7) (Using devtoolset-7 runtime support)
|
||||
* CentOS 8.3 (4.18.0-193.el8)and RHEL 8.3 (4.18.0-193.1.1.el8) (devtoolset is not required)
|
||||
* SLES 15 SP2
|
||||
|
||||
### FRESH INSTALLATION OF AMD ROCM V4.1 RECOMMENDED
|
||||
|
||||
A complete uninstallation of previous ROCm versions is required before installing a new version of ROCm. An upgrade from previous releases to AMD ROCm v4.1 is not supported. For more information, refer to the AMD ROCm Installation Guide at
|
||||
|
||||
### Complete Installation of AMD ROCM V4.2 Recommended
|
||||
|
||||
Complete uninstallation of previous ROCm versions is required before installing a new version of ROCm. **An upgrade from previous releases to AMD ROCm v4.2 is not supported**. For more information, refer to the AMD ROCm Installation Guide at
|
||||
|
||||
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
|
||||
|
||||
@@ -59,20 +60,14 @@ https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
|
||||
|
||||
* For ROCm v3.3 and older releases, the clinfo path remains /opt/rocm/opencl/bin/x86_64/clinfo.
|
||||
|
||||
### ROCM MULTI-VERSION INSTALLATION UPDATE
|
||||
## ROCm Multi-Version Installation Update
|
||||
|
||||
With the AMD ROCm v4.1 release, the following ROCm multi-version installation changes apply:
|
||||
With the AMD ROCm v4.2 release, the following ROCm multi-version installation changes apply:
|
||||
|
||||
The meta packages rocm-dkms<version> are now deprecated for multi-version ROCm installs. For example, rocm-dkms3.7.0, rocm-dkms3.8.0.
|
||||
|
||||
* Multi-version installation of ROCm should be performed by installing rocm-dev<version> using each of the desired ROCm versions. For example, rocm-dev3.7.0, rocm-dev3.8.0, rocm-dev3.9.0.
|
||||
|
||||
* Version files must be created for each multi-version rocm <= 4.1.0
|
||||
|
||||
* Command: echo <version> | sudo tee /opt/rocm-<version>/.info/version
|
||||
|
||||
* Example: echo 4.1.0 | sudo tee /opt/rocm-4.1.0/.info/version
|
||||
|
||||
* The rock-dkms loadable kernel modules should be installed using a single rock-dkms package.
|
||||
|
||||
* ROCm v3.9 and above will not set any ldconfig entries for ROCm libraries for multi-version installation. Users must set LD_LIBRARY_PATH to load the ROCm library version of choice.
|
||||
@@ -80,46 +75,31 @@ The meta packages rocm-dkms<version> are now deprecated for multi-version ROCm i
|
||||
**NOTE**: The single version installation of the ROCm stack remains the same. The rocm-dkms package can be used for single version installs and is not deprecated at this time.
|
||||
|
||||
|
||||
### Updated HIP Instructions for ROCm Installation
|
||||
|
||||
# Driver Compatibility Issue in This Release
|
||||
The hip-base package has a dependency on Perl modules that some operating systems may not have in their default package repositories. Use the following commands to add repositories that have the required Perl packages:
|
||||
|
||||
In certain scenarios, the ROCm 4.1 run-time and userspace environment are not compatible with ROCm v4.0 and older driver implementations for 7nm-based (Vega 20) hardware (MI50 and MI60).
|
||||
|
||||
To mitigate issues, the ROCm v4.1 or newer userspace prevents running older drivers for these GPUs.
|
||||
#### For SLES 15 SP2
|
||||
|
||||
Users are notified in the following scenarios:
|
||||
sudo zypper addrepo
|
||||
|
||||
* Bare Metal
|
||||
* Containers
|
||||
|
||||
## Bare Metal
|
||||
|
||||
In the bare-metal environment, the following error message displays in the console:
|
||||
For more information, see
|
||||
|
||||
*“HSA Error: Incompatible kernel and userspace, Vega 20 disabled. Upgrade amdgpu.”*
|
||||
https://download.opensuse.org/repositories/devel:languages:perl/SLE_15/devel:languages:perl.repo
|
||||
|
||||
To test the compatibility, run the ROCm v4.1 version of rocminfo using the following instruction:
|
||||
|
||||
*/opt/rocm-4.1.0/bin/rocminfo 2>&1 | less*
|
||||
|
||||
## Containers
|
||||
#### For CentOS8.3
|
||||
|
||||
A container (built with error detection for this issue) using a ROCm v4.1 or newer run-time is initiated to execute on an older kernel. The container fails to start and the following warning appears:
|
||||
sudo yum config-manager --set-enabled powertools
|
||||
|
||||
|
||||
*Error: Incompatible ROCm environment. The Docker container requires the latest kernel driver to operate correctly.
|
||||
Upgrade the ROCm kernel to v4.1 or newer, or use a container tagged for v4.0.1 or older.*
|
||||
#### For RHEL8.3
|
||||
|
||||
To inspect the version of the installed kernel driver, run either:
|
||||
|
||||
* dpkg --status rock-dkms [Debian-based]
|
||||
|
||||
or
|
||||
|
||||
* rpm -ql rock-dkms [RHEL, SUSE, and others]
|
||||
|
||||
To install or update the driver, follow the installation instructions at:
|
||||
|
||||
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
|
||||
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
|
||||
|
||||
|
||||
|
||||
# AMD ROCm Documentation Updates
|
||||
@@ -130,7 +110,7 @@ The AMD ROCm Installation Guide in this release includes:
|
||||
|
||||
* Supported Environments
|
||||
|
||||
* Installation Instructions for v4.1
|
||||
* Installation Instructions
|
||||
|
||||
* HIP Installation Instructions
|
||||
|
||||
@@ -141,42 +121,43 @@ https://rocmdocs.amd.com/en/latest/
|
||||
|
||||
## AMD ROCm - HIP Documentation Updates
|
||||
|
||||
* HIP Programming Guide v4.1
|
||||
* HIP Programming Guide v4.2
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_Programming_Guide_v4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD%20HIP%20Programming%20Guide_v4.2.pdf
|
||||
|
||||
|
||||
* HIP API Guide v4.1
|
||||
* HIP API Guide v4.2
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_API_Guide_v4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_API_Guide_4.2.pdf
|
||||
|
||||
|
||||
* HIP-Supported CUDA API Reference Guide v4.1
|
||||
* HIP-Supported CUDA API Reference Guide v4.2
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/HIP_Supported_CUDA_API_Reference_Guide_v4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/HIP_Supported_CUDA_API_Reference_Guide_v4.2.pdf
|
||||
|
||||
* HIP FAQ
|
||||
|
||||
For more information, refer to
|
||||
|
||||
https://rocmdocs.amd.com/en/latest/Programming_Guides/HIP-FAQ.html#hip-faq
|
||||
https://rocmdocs.amd.com/en/latest/Programming_Guides/HIP-FAQ.html#hip-faq
|
||||
|
||||
|
||||
## ROCm Data Center User and API Guide
|
||||
|
||||
* ROCm Data Center Tool User Guide
|
||||
|
||||
- Grafana Plugin Integration
|
||||
- Reliability, Accessibility, and Serviceability (RAS) Plugin Integration
|
||||
|
||||
For more information, refer to the ROCm Data Center User Guide at,
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_ROCm_DataCenter_Tool_User_Guide_v4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_ROCm_DataCenter_Tool_User_Guide_v4.2.pdf
|
||||
|
||||
|
||||
* ROCm Data Center Tool API Guide
|
||||
|
||||
For more information, refer to the ROCm Data Center API Guide at,
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_Data_Center_Tool_API_Manual_4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_Data_Center_Tool_API_Guide_v4.2.pdf
|
||||
|
||||
|
||||
## ROCm SMI API Documentation Updates
|
||||
@@ -185,18 +166,17 @@ https://rocmdocs.amd.com/en/latest/
|
||||
|
||||
For more information, refer to the ROCm SMI API Guide at,
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_SMI_API_GUIDE_v4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_SMI_Manual_4.2.pdf
|
||||
|
||||
## ROC Debugger User and API Guide
|
||||
|
||||
* ROC Debugger User Guide
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_Debugger_User_Guide_v4.2.pdf
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/Debugging%20with%20ROCGDB%20User%20Guide%20v4.1.pdf
|
||||
|
||||
|
||||
* Debugger API Guide
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD-Debugger%20API%20Guide%20v4.1.pdf
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_Debugger_API_Guide_v4.2.pdf
|
||||
|
||||
|
||||
## General AMD ROCm Documentation Links
|
||||
@@ -224,260 +204,254 @@ Access the following links for more information:
|
||||
|
||||
# What\'s New in This Release
|
||||
|
||||
## TARGETID FOR MULTIPLE CONFIGURATIONS
|
||||
## HIP Enhancements
|
||||
|
||||
The new TargetID functionality allows compilations to specify various configurations of the supported hardware.
|
||||
### HIP Target Platform Macro
|
||||
|
||||
Previously, ROCm supported only a single configuration per target.
|
||||
The platform macros are updated to target either the AMD or NVIDIA platform in HIP projects. They now include corresponding headers and libraries for compilation/linking.
|
||||
|
||||
With the TargetID enhancement, ROCm supports configurations for Linux, PAL and associated configurations such as XNACK. This feature addresses configurations for the same target in different modes and allows applications to build executables that specify the supported configurations, including the option to be agnostic for the desired setting.
|
||||
* *__HIP_PLATFORM_AMD__* is defined if the HIP platform targets AMD. Note, __HIP_PLATFORM_HCC__ was used previously if the HIP platform targeted AMD.
|
||||
This is now deprecated.
|
||||
|
||||
* *__HIP_PLATFORM_NVIDIA__* is defined if the HIP platform targets NVIDIA. Note, _HIP_PLATFORM_NVCC__ was used previously if the HIP platform targeted NVIDIA. This is now deprecated.
|
||||
|
||||
For example,
|
||||
|
||||
```
|
||||
|
||||
#if (defined(__HIP_PLATFORM_AMD__)) && !(defined(__HIP_PLATFORM_NVIDIA__))
|
||||
|
||||
#include <hip/amd_detail/hip_complex.h>
|
||||
|
||||
#elif !(defined(__HIP_PLATFORM_AMD__)) && (defined(__HIP_PLATFORM_NVIDIA__))
|
||||
|
||||
#include <hip/nvidia_detail/hip_complex.h>
|
||||
|
||||
```
|
||||
|
||||
### Updated HIP 'Include' Directories
|
||||
|
||||
In the ROCm4.2 release, HIP *include* header directories for platforms are updated as follows:
|
||||
|
||||
* *amd_detail/* - includes source header details for the ‘amd’ platform implementation. In previous releases, the "hcc_detail" directory was defined, and it it is now deprecated.
|
||||
|
||||
* *nvidia_detail/* - includes source header details for the ‘nvidia’ platform implementation. In previous releases, the "nvcc_detail" directory was defined, and it is now deprecated.
|
||||
|
||||
|
||||
### New Code Object Format Version for TargetID
|
||||
### HIP Stream Memory Operations
|
||||
|
||||
* A new clang option -mcode-object-version can be used to request the legacy code object version 3 or code object version 2. For more information, refer to
|
||||
The ROCm v4.2 extends support to Stream Memory Operations to enable direct synchronization between Network Nodes and GPU. The following new APIs are added:
|
||||
|
||||
https://llvm.org/docs/AMDGPUUsage.html#elf-code-object
|
||||
* hipStreamWaitValue32
|
||||
* hipStreamWaitValue64
|
||||
* hipStreamWriteValue32
|
||||
* hipStreamWriteValue64
|
||||
|
||||
* A new clang --offload-arch= option is introduced to specify the offload target architecture(s) for the HIP language.
|
||||
For more details, see the HIP API guide at
|
||||
|
||||
* The clang --offload-arch= and -mcpu options accept a new Target ID syntax. This allows both the processor and target feature settings to be specified. For more details, refer to
|
||||
|
||||
https://llvm.org/docs/AMDGPUUsage.html#amdgpu-target-id
|
||||
|
||||
- If a target feature is not specified, it defaults to a new concept of "any". The compiler, then, produces code,
|
||||
which executes on a target configured for either value of the setting impacting the overall performance.
|
||||
|
||||
It is recommended to explicitly specify the setting for more efficient performance.
|
||||
|
||||
- In particular, the setting for XNACK now defaults to produce less performant code than previous ROCm releases.
|
||||
|
||||
- The legacy clang -mxnack, -mno-xnack, -msram-ecc, and -mno-sram-ecc options are deprecated. They are still
|
||||
supported, however, they will be removed in a future release.
|
||||
|
||||
- The new Target ID syntax renames the SRAM ECC feature from sram-ecc to sramecc.
|
||||
|
||||
* The clang offload bundler uses the new offload hipv4 for HIP code object version 4. For more information, see
|
||||
https://clang.llvm.org/docs/ClangOffloadBundler.html
|
||||
|
||||
* ROCm v4.1 corrects code object loading to enforce target feature settings of the code object to match the setting of the agent. It also corrects the recording of target feature settings in the code object. As a consequence, the legacy code objects may no longer load due to mismatches.
|
||||
|
||||
* gfx802, gfx803, and gfx805 do not support the XNACK target feature in the ROCm v4.1 release.
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_API_Guide_4.2.pdf
|
||||
|
||||
|
||||
### New Code Object Tools
|
||||
### HIP Events in Kernel Dispatch
|
||||
|
||||
AMD ROCm v4.1 provides new code object tools *roc-obj-ls* and *roc-obj-extract*. These tools allow for the listing and extraction of AMD GPU ROCm code objects that are embedded in HIP executables and shared objects. Each tool supports a --help option that provides more information.
|
||||
HIP events in kernel dispatch using *hipExtLaunchKernelGGL/hipExtLaunchKernel* and passed in the API are not explicitly recorded and should only be used to get elapsed time for that specific launch.
|
||||
|
||||
Refer to the HIP Programming Guide v4.1 for additional information and examples.
|
||||
Events used across multiple dispatches, for example, start and stop events from different *hipExtLaunchKernelGGL/hipExtLaunchKernel* calls, are treated as invalid unrecorded events. In such scenarios, HIP will display the error *"hipErrorInvalidHandle"* from *hipEventElapsedTime*.
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_Programming_Guide_v4.1.pdf
|
||||
For more details, refer to the HIP API Guide at
|
||||
|
||||
**Note**
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_HIP_API_Guide_4.2.pdf
|
||||
|
||||
The extractkernel tool in previous AMD ROCm releases has been removed from the AMD ROCm v4.1 release
|
||||
and will no longer be supported.
|
||||
|
||||
**Note**
|
||||
|
||||
The roc-obj-ls and roc-obj-extract tools may generate an error about the following missing Perl modules:
|
||||
### Changed Environment Variables for HIP
|
||||
|
||||
* File::Which
|
||||
* File::BaseDir
|
||||
* File::Copy
|
||||
* URI::Encode
|
||||
In the ROCm v3.5 release, the Heterogeneous Compute Compiler (HCC) compiler was deprecated, and the HIP-Clang compiler was introduced for compiling Heterogeneous-Compute Interface for Portability (HIP) programs. In addition, the HIP runtime API was implemented on top of Radeon Open Compute Common Language Runtime (ROCclr). ROCclr is an abstraction layer that provides the ability to interact with different runtime backends such as ROCr.
|
||||
|
||||
This error is due to the missing dependencies in the hip-base installer package. As a workaround, you may use the
|
||||
following instructions to install the Perl modules:
|
||||
While the HIP_PLATFORM=hcc environment variable was functional in subsequent releases, in the ROCm v4.1 release, the following environment variables were changed:
|
||||
|
||||
*Ubuntu*
|
||||
|
||||
apt-get install libfile-which-perl libfile-basedir-perl libfile-copy-recursive-perl liburi-encode-perl
|
||||
|
||||
*CentOS*
|
||||
|
||||
yum install “ perl(File::Which) perl(File::BaseDir) perl(File::Copy) perl(URI::Encode)
|
||||
* *HIP_PLATFORM=hcc to HIP_PLATFORM=amd*
|
||||
|
||||
* *HIP_PLATFORM=nvcc to HIP_PLATFORM=nvidia*
|
||||
|
||||
Therefore, any applications continuing to use the HIP_PLATFORM=hcc variable will fail. You must update the environment variables to reflect the changes as mentioned above.
|
||||
|
||||
|
||||
|
||||
## ROCm Data Center Tool
|
||||
|
||||
### Grafana Integration
|
||||
### RAS Integration
|
||||
|
||||
The ROCm Data Center (RDC) Tool is enhanced with the Grafana plugin. Grafana is a common monitoring stack used for storing and visualizing time series data. Prometheus acts as the storage backend, and Grafana is used as the interface for analysis and visualization. Grafana has a plethora of visualization options and can be integrated with Prometheus for the ROCm Data Center (RDC) dashboard.
|
||||
The ROCm Data Center (RDC) Tool is enhanced with the Reliability, Accessibility, and Serviceability (RAS) plugin.
|
||||
|
||||
For more information about Grafana integration and installation, refer to the ROCm Data Center Tool User guide at:
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_ROCm_DataCenter_Tool_User_Guide_v4.1.pdf
|
||||
For more information about RAS integration and installation, refer to the ROCm Data Center Tool User guide at:
|
||||
|
||||
https://github.com/RadeonOpenCompute/ROCm/blob/master/AMD_ROCm_DataCenter_Tool_User_Guide_v4.2.pdf
|
||||
|
||||
|
||||
## ROCm Math and Communication Libraries
|
||||
|
||||
### rocSPARSE
|
||||
### rocBLAS
|
||||
|
||||
rocSPARSE extends support for:
|
||||
Enhancements and fixes:
|
||||
|
||||
* gebsrmm
|
||||
* gebsrmv
|
||||
* gebsrsv
|
||||
* coo2dense and dense2coo
|
||||
* generic API including axpby, gather, scatter, rot, spvv, spmv, spgemm, sparsetodense, densetosparse
|
||||
* mixed indexing types in matrix formats
|
||||
* Added option to install script to build only rocBLAS clients with a pre-built rocBLAS library
|
||||
|
||||
For more information, see
|
||||
* Supported gemm ext for unpacked int8 input layout on gfx908 GPUs
|
||||
|
||||
https://rocsparse.readthedocs.io/en/latest/
|
||||
* Added new flags rocblas_gemm_flags::rocblas_gemm_flags_pack_int8x4 to specify if using the packed layout
|
||||
|
||||
* Set the rocblas_gemm_flags_pack_int8x4 when using packed int8x;, this should be always set on GPUs before gfx908
|
||||
|
||||
* For gfx908 GPUs, unpacked int8 is supported. Setting of this flag is no longer required
|
||||
|
||||
* Notice the default flags 0 uses unpacked int8 and changes the behaviour of int8 gemm from ROCm 4.1.0
|
||||
|
||||
* Added a query function rocblas_query_int8_layout_flag to get the preferable layout of int8 for gemm by device
|
||||
|
||||
For more information, refer to
|
||||
|
||||
https://rocblas.readthedocs.io/en/master/
|
||||
|
||||
|
||||
### rocSOLVER
|
||||
### rocRAND
|
||||
|
||||
rocSOLVER extends support for:
|
||||
* Performance fixes
|
||||
|
||||
* Eigensolver routines for symmetric/hermitian matrices:
|
||||
- STERF, STEQR
|
||||
|
||||
* Linear solvers for general non-square systems:
|
||||
- GELS (API added with batched and strided_batched versions. Only the overdetermined non-transpose case is implemented in
|
||||
this release. Other cases will return rocblas_status_not_implemented status for now.)
|
||||
|
||||
* Extended test coverage for functions returning information
|
||||
For more information, refer to
|
||||
|
||||
* Changelog file
|
||||
https://rocrand.readthedocs.io/en/latest/
|
||||
|
||||
* Tridiagonalization routines for symmetric and hermitian matrices:
|
||||
- LATRD
|
||||
- SYTD2, SYTRD (with batched and strided_batched versions)
|
||||
- HETD2, HETRD (with batched and strided_batched versions)
|
||||
|
||||
* Sample code and unit test for unified memory model/Heterogeneous Memory Management (HMM)
|
||||
|
||||
For more information, see
|
||||
### rocSOLVER
|
||||
|
||||
Support for:
|
||||
|
||||
* Multi-level logging functionality
|
||||
|
||||
* Implementation of the Thin-SVD algorithm
|
||||
|
||||
* Reductions of generalized symmetric- and hermitian-definite eigenproblems:
|
||||
|
||||
* SYGS2, SYGST (with batched and strided_batched versions)
|
||||
* HEGS2, HEGST (with batched and strided_batched versions)
|
||||
|
||||
* Symmetric and hermitian matrix eigensolvers:
|
||||
|
||||
* SYEV (with batched and strided_batched versions)
|
||||
* HEEV (with batched and strided_batched versions)
|
||||
|
||||
* Generalized symmetric- and hermitian-definite eigensolvers:
|
||||
|
||||
* SYGV (with batched and strided_batched versions)
|
||||
* HEGV (with batched and strided_batched versions)
|
||||
|
||||
For more information, refer to
|
||||
|
||||
https://rocsolver.readthedocs.io/en/latest/
|
||||
|
||||
### hipCUB
|
||||
|
||||
The new iterator DiscardOutputIterator in hipCUB represents a special kind of pointer that ignores values written to it upon dereference. It is useful for ignoring the output of certain algorithms without wasting memory capacity or bandwidth. DiscardOutputIterator may also be used to count the size of an algorithm's output, which was not known previously.
|
||||
### rocSPARSE
|
||||
|
||||
For more information, see
|
||||
Enhancements:
|
||||
|
||||
https://hipcub.readthedocs.io/en/latest/
|
||||
* SpMM (CSR, COO)
|
||||
* Code coverage analysis
|
||||
|
||||
For more information, refer to
|
||||
|
||||
https://rocsparse.readthedocs.io/en/latest/usermanual.html#rocsparse-gebsrmv
|
||||
|
||||
|
||||
## HIP Enhancements
|
||||
### hipSPARSE
|
||||
|
||||
### Support for hipEventDisableTiming Flag
|
||||
Enhancements:
|
||||
|
||||
HIP now supports the hipEventDisableTiming flag for hipEventCreateWithFlags. Note, events created with this flag do not record profiling data and provide optimal performance when used for synchronization.
|
||||
* Generic API support, including SpMM (CSR, COO)
|
||||
* csru2csr, csr2csru
|
||||
|
||||
### Cooperative Group Functions
|
||||
For more information, refer to
|
||||
|
||||
Cooperative Groups defines, synchronizes, and communicates between groups of threads and blocks for efficiency and ease of management. HIP now supports the following kernel language Cooperative Groups types and functions:
|
||||
|
||||

|
||||

|
||||

|
||||
https://rocsparse.readthedocs.io/en/latest/usermanual.html#types
|
||||
|
||||
|
||||
### Support for Extern Shared Declarations
|
||||
|
||||
Previously, it was required to declare dynamic shared memory using the HIP_DYNAMIC_SHARED macro for accuracy as using static shared memory in the same kernel could result in overlapping memory ranges and data-races.
|
||||
Now, the HIP-Clang compiler provides support for extern shared declarations, and the HIP_DYNAMIC_SHARED option is no longer required.
|
||||
# Fixed Defects
|
||||
|
||||
You may use the standard extern definition:
|
||||
## Performance Impact for LDS-BOUND Kernels
|
||||
|
||||
extern __shared__ type var[];
|
||||
The following issue is fixed in the ROCm v4.2 release.
|
||||
|
||||
|
||||
## OpenMP Enhancements and Fixes
|
||||
|
||||
This release includes the following OpenMP changes:
|
||||
|
||||
* Usability Enhancements
|
||||
* Fixes to Internal Clang Math Headers
|
||||
* OpenMP Defect Fixes
|
||||
|
||||
### Usability Enhancements
|
||||
|
||||
* OMPD updates for flang
|
||||
* To support OpenMP debugging, the selected OpenMP runtime sources are included in lib-debug/src/openmp. The ROCgdb debugger
|
||||
will find these automatically.
|
||||
* Threadsafe hsa plugin for libomptarget
|
||||
* Support multiple devices with malloc and hostrpc
|
||||
* Improve hostrpc version check
|
||||
* Add max reduction offload feature to flang
|
||||
* Integration of changes to support HPC Toolkit
|
||||
* Support for fprintf
|
||||
* Initial support for GPU malloc and Free. The internal (device rtl) is required for GPU malloc and Free for nested parallelism.
|
||||
GPU malloc and Free are now replaced, which improves the device memory footprint.
|
||||
* Increase detail of debug printing controlled by LIBOMPTARGET_KERNEL_TRACE environment variable
|
||||
* Add support for -gpubnames in Flang Driver
|
||||
* Increase detail of debug printing controlled by LIBOMPTARGET_KERNEL_TRACE environment variable
|
||||
* Add support for -gpubnames in Flang Driver
|
||||
|
||||
### Fixes to Internal Clang Math Headers
|
||||
|
||||
This release includes a set of changes applied to Clang internal headers to support OpenMP C, C++, FORTRAN, and HIP C. This establishes consistency between NVPTX and AMDGCN offloading, and OpenMP, HIP, and CUDA. OpenMP uses function variants and header overlays to define device versions of functions. This causes Clang LLVM IR codegen to mangle names of variants in both the definition and callsites of functions defined in the internal Clang headers. The changes apply to headers found in the installation subdirectory lib/clang/11.0.0/include.
|
||||
|
||||
The changes also temporarily eliminate the use of the libm bitcode libraries for C and C++. Although math functions are now defined with internal clang headers, a bitcode library of the C functions defined in the headers is still built for the FORTRAN toolchain linking. This is because FORTRAN cannot use C math headers. This bitcode library is installed in lib/libdevice/libm-.bc. The source build of the bitcode library is implemented with the aomp-extras repository and the component-built script build_extras.sh.
|
||||
|
||||
### OpenMP Defect Fixes
|
||||
|
||||
The following OpenMP defects are fixed in this release:
|
||||
|
||||
* Openmpi configuration issue with real16.
|
||||
* [flang] The AOMP 11.7-1 Fortran compiler claims to support the -isystem flag, but ignores it.
|
||||
* [flang] producing internal compiler error when the character is used with KIND.
|
||||
* [flang] openmp map clause on complex allocatable expressions !$omp target data map( chunk%tiles(1)%field%density0).
|
||||
* Add a fatal error if missing -Xopenmp-target or -march options when -fopenmp-targets is specified. However, this requirement is not
|
||||
applicable for offloading to the host when there is only a single target and that target is the host.
|
||||
* Openmp error message output for no_rocm_device_lib was asserting.
|
||||
* Linkage on constant per-kernel symbols from external to weaklinkageonly to prevent duplicate symbols when building kokkos.
|
||||
* Add environment variables ROCM_LLD_ARGS ROCM_LINK_ARGS ROCM_SELECT_ARGS to test driver options without compiler rebuild.
|
||||
* Fix problems with device math functions being ambiguous, especially the pow function.ix aompcc to accept file type cxx.
|
||||
* Fix a latent race between host runtime and devicertl.
|
||||
|
||||
## MIOPEN TENSILE INTEGRATION
|
||||
|
||||
MIOpenTensile provides host-callable interfaces to the Tensile library and supports the HIP programming model. You may use the Tensile feature in the HIP backend by setting the building environment variable value to ON.
|
||||
|
||||
MIOPEN_USE_MIOPENTENSILE=ON
|
||||
|
||||
MIOpenTensile is an open-source collaboration tool where external entities can submit source pull requests (PRs) for updates. MIOpenTensile maintainers review and approve the PRs using standard open-source practices.
|
||||
|
||||
For more information about the sources and the build system, see
|
||||
|
||||
https://github.com/ROCmSoftwarePlatform/MIOpenTensile
|
||||
The compiler in ROCm v4.1 generates LDS load and stores instructions that incorrectly assume equal performance between aligned and misaligned accesses. While this does not impact code correctness, it may result in sub-optimal performance.
|
||||
|
||||
|
||||
# Known Issues
|
||||
|
||||
The following are the known issues in this release.
|
||||
|
||||
## Upgrade to AMD ROCm v4.1 Not Supported
|
||||
## Upgrade to AMD ROCm v4.2 Not Supported
|
||||
|
||||
An upgrade from previous releases to AMD ROCm v4.1 is not supported. A complete uninstallation of previous ROCm versions is required before installing a new version of ROCm.
|
||||
An upgrade from previous releases to AMD ROCm v4.2 is not supported. Complete uninstallation of previous ROCm versions is required before installing a new version of ROCm.
|
||||
|
||||
## Performance Impact for Kernel Launch Bound Attribute
|
||||
The hip-base package has a dependency on Perl modules that some operating systems may not have in their default package repositories. Use the following commands to add repositories that have the required Perl packages:
|
||||
|
||||
Kernels without the *__launch_bounds__* attribute assume the default maximum threads per block value. In the previous ROCm release, this value was 256. In the ROCm v4.1 release, it is changed to 1024. The objective of this change ensures the actual threads per block value used to launch a kernel, by default, are always within the launch bounds, thus, establishing the correctness of HIP programs.
|
||||
|
||||
**NOTE**: Using the above-mentioned approach may incur performance degradation in certain cases. Users must add a minimum launch bound to each kernel, which covers all possible threads per block values used to launch that kernel for correctness and performance.
|
||||
#### For SLES 15 SP2
|
||||
|
||||
The recommended workaround to recover the performance is to add *--gpu-max-threads-per-block=256* to the compilation options for HIP programs.
|
||||
sudo zypper addrepo
|
||||
|
||||
## Issue with Passing a Subset of GPUs in a Multi-GPU System
|
||||
|
||||
ROCm support for passing individual GPUs via the docker --device flag in a Docker run command has a known issue when passing a subset of GPUs in a multi-GPU system. The command runs without any warning or error notification. However, all GPU executable run outputs are randomly corrupted.
|
||||
For more information, see
|
||||
|
||||
Using GPU targeting via the Docker command is not recommended for users of ROCm 4.1. There is no workaround for this issue currently.
|
||||
https://download.opensuse.org/repositories/devel:languages:perl/SLE_15/devel:languages:perl.repo
|
||||
|
||||
## Performance Impact for LDS-Bound Kernels
|
||||
|
||||
The compiler in ROCm v4.1 generates LDS load and stores instructions that incorrectly assume equal performance between aligned and misaligned accesses. While this does not impact code correctness, it may result in sub-optimal performance.
|
||||
|
||||
This issue is under investigation, and there is no known workaround at this time.
|
||||
#### For CentOS8.3
|
||||
|
||||
sudo yum config-manager --set-enabled powertools
|
||||
|
||||
|
||||
#### For RHEL8.3
|
||||
|
||||
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
|
||||
|
||||
|
||||
## Modulefile Fails to Install Automatically in ROCm Multi-Version Environment
|
||||
|
||||
The ROCm v4.2 release includes a preliminary implementation of environment modules to enable switching between multi versions of ROCm installation. The modulefile in */opt/rocm-4.2/lib/rocmmod* fails to install automatically in the ROCm multi-version environment.
|
||||
|
||||
This is a known limitation for environment modules in ROCm, and the issue is under investigation at this time.
|
||||
|
||||
**Workaround**
|
||||
|
||||
Ensure you install the modulefile in */opt/rocm-4.2/lib/rocmmod* manually in a multi-version installation environment.
|
||||
|
||||
For general information about modules, see
|
||||
http://modules.sourceforge.net/
|
||||
|
||||
## Issue with Input/Output Types for Scan Algorithms in rocThrust
|
||||
|
||||
As rocThrust is updated to match CUDA Thrust 1.10, the different input/output types for scan algorithms in rocThrust/CUDA Thrust are no longer officially supported. In this situation, the current C++ standard does not specify the intermediate accumulator type leading to potentially incorrect results and ill-defined behavior.
|
||||
|
||||
As a workaround, users can:
|
||||
|
||||
* Use the same types for input and output
|
||||
|
||||
Or
|
||||
|
||||
* For exclusive_scan, explicitly specify an *InitialValueType* in the last argument
|
||||
|
||||
Or
|
||||
|
||||
* For inclusive_scan, which does not have an initial value argument, use a transform_iterator to explicitly cast the input iterators to match the output’s value_type
|
||||
|
||||
|
||||
## Precision Issue in AMD RADEON™ PRO VII and AMD RADEON™ VII
|
||||
|
||||
In AMD Radeon™ Pro VII AND AMD Radeon™ VII, a precision issue can occur when using the Tensorflow XLA path.
|
||||
|
||||
This issue is currently under investigation.
|
||||
|
||||
|
||||
|
||||
# Deprecations
|
||||
|
||||
BIN
ROCm_Debugger_API_Guide_v4.2.pdf
Normal file
BIN
ROCm_Debugger_API_Guide_v4.2.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ROCm_SMI_Manual_4.2.pdf
Normal file
BIN
ROCm_SMI_Manual_4.2.pdf
Normal file
Binary file not shown.
@@ -12,7 +12,7 @@ fetch="https://github.com/GPUOpen-ProfessionalCompute-Libraries/" />
|
||||
fetch="https://github.com/GPUOpen-Tools/" />
|
||||
<remote name="KhronosGroup"
|
||||
fetch="https://github.com/KhronosGroup/" />
|
||||
<default revision="refs/tags/rocm-4.1.0"
|
||||
<default revision="refs/tags/rocm-4.2.0"
|
||||
remote="roc-github"
|
||||
sync-c="true"
|
||||
sync-j="4" />
|
||||
@@ -20,7 +20,7 @@ fetch="https://github.com/KhronosGroup/" />
|
||||
<project name="ROCK-Kernel-Driver" />
|
||||
<project name="ROCT-Thunk-Interface" />
|
||||
<project name="ROCR-Runtime" />
|
||||
<project name="ROC-smi" />
|
||||
<project name="ROC-smi" revision="refs/tags/rocm-4.1.0" />
|
||||
<project name="rocm_smi_lib" />
|
||||
<project name="rocm-cmake" />
|
||||
<project name="rocminfo" />
|
||||
@@ -52,6 +52,7 @@ fetch="https://github.com/KhronosGroup/" />
|
||||
<project name="Tensile" remote="rocm-swplat" />
|
||||
<project name="hipBLAS" remote="rocm-swplat" />
|
||||
<project name="rocFFT" remote="rocm-swplat" />
|
||||
<project name="hipFFT" remote="rocm-swplat" />
|
||||
<project name="rocRAND" remote="rocm-swplat" />
|
||||
<project name="rocSPARSE" remote="rocm-swplat" />
|
||||
<project name="rocSOLVER" remote="rocm-swplat" />
|
||||
|
||||
BIN
images/CGMain.PNG
Normal file
BIN
images/CGMain.PNG
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 221 KiB |
Reference in New Issue
Block a user