Compare commits

...

30 Commits

Author SHA1 Message Date
Lad, Aditya
224a45379f ROCm 4.0 Release 2020-12-18 12:53:33 -08:00
Roopa Malavally
f521943747 Update README.md 2020-12-18 12:52:04 -08:00
Roopa Malavally
2b7f806b10 AMD ROCm Release Notes v4.0 (#1342)
* Update README.md

* Update README.md

* Add files via upload

* Delete AMD_ROCm_Release_Notes_v3.10.pdf

* Delete AMD_ROCm_DataCenter_Tool_User_Guide.pdf

* Delete ROCm_Data_Center_API_Guide.pdf

* Delete ROCm_SMI_API_Guide_v3.10.pdf

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Add files via upload

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-12-18 12:46:40 -08:00
Roopa Malavally
cd55ef67c9 Add files via upload 2020-12-18 12:32:43 -08:00
Roopa Malavally
9320669eee Delete AMD_ROCm_Release_Notes_v3.10.pdf 2020-12-18 08:19:51 -08:00
Roopa Malavally
c1211c66e3 Delete ROCm_SMI_API_Guide_v3.10.pdf 2020-12-18 08:19:36 -08:00
Roopa Malavally
c8fcff6488 Delete ROCm_Data_Center_API_Guide.pdf 2020-12-18 08:19:18 -08:00
Roopa Malavally
7118076ab4 Delete AMD_ROCm_DataCenter_Tool_User_Guide.pdf 2020-12-18 08:18:58 -08:00
Roopa Malavally
ec5523395a Add files via upload 2020-12-17 21:00:59 -08:00
Roopa Malavally
41d8f6a235 Add files via upload 2020-12-17 14:00:59 -08:00
Roopa Malavally
c69eef858a Update README.md 2020-12-10 13:38:07 -08:00
Aditya Lad
5b902ca38c Merge pull request #1316 from RadeonOpenCompute/roc-3.10.x
add rdc and half
2020-12-02 16:11:11 -08:00
Aditya Lad
68c5c198df add rdc and half 2020-12-02 16:07:15 -08:00
Aditya Lad
761ed4e70f Merge pull request #1314 from RadeonOpenCompute/roc-3.10.x
3.10 : Manifest Files
2020-12-01 16:31:55 -08:00
Lad, Aditya
8d5a160f0a 3.10 : Manifest Files 2020-12-01 16:24:12 -08:00
Roopa Malavally
f61c2ad155 Add files via upload 2020-12-01 15:45:33 -08:00
Roopa Malavally
3e2e30cc9a Delete AMD_ROCm_DataCenter_Tool_User_Guide.pdf 2020-12-01 15:44:56 -08:00
Roopa Malavally
a1f3b4e6b8 Update README.md 2020-12-01 15:08:53 -08:00
Roopa Malavally
7a3a012e6a Update README.md 2020-11-30 15:45:42 -08:00
Roopa Malavally
5b6ab31db3 Update README.md 2020-11-30 14:12:01 -08:00
Roopa Malavally
acabe2c532 Update README.md 2020-11-30 14:10:06 -08:00
Roopa Malavally
39d8bcd504 Release notes for v3.10 (#1312)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Add files via upload

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Delete matrix.png

* Delete ROCMCLI3.PNG

* Delete ROCMCLI2.PNG

* Delete ROCMCLI1.PNG

* Delete GEMM2.PNG

* Add files via upload

* Delete ROCm_SMI_Manual_v3.9.pdf

* Delete AMD_ROCm_Release_Notes_v3.9.pdf

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-11-30 14:07:52 -08:00
Roopa Malavally
af6d1e9b26 Add files via upload 2020-11-30 14:01:36 -08:00
Roopa Malavally
1fa1d4a935 Add files via upload 2020-11-30 09:53:49 -08:00
Roopa Malavally
03d93c1948 Delete AMD_ROCm_Release_Notes_v3.9.pdf 2020-11-30 08:55:35 -08:00
Roopa Malavally
93984b0956 Add files via upload 2020-11-30 08:54:52 -08:00
Roopa Malavally
6ccb1cfc0f Add files via upload 2020-11-30 07:29:29 -08:00
Roopa Malavally
f054f82173 Delete ROCm_SMI_Manual_v3.9.pdf 2020-11-30 07:28:11 -08:00
Xu Huisheng
bb6756b58d remove dumplicated remote=roc-github (#1248) 2020-11-18 08:19:23 -08:00
Roopa Malavally
d957b8a17c Update README.md 2020-11-12 13:47:48 -08:00
18 changed files with 55213 additions and 411 deletions

Binary file not shown.

Binary file not shown.

54972
HIP-API_Guide_v4.0.pdf Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

625
README.md
View File

@@ -1,11 +1,5 @@
# AMD ROCm™ Patch Release Notes v3.9.1
Users of RPM-based operating systems (RHEL, CentOS, and others) are recommended to use the ROCm v3.9.1 patch release due to a potential compatibility issue with certain drivers.
# AMD ROCm Release Notes v3.9.0
# AMD ROCm™ Release Notes v4.0
This page describes the features, fixed issues, and information about downloading and installing the ROCm software.
It also covers known issues in this release.
@@ -16,17 +10,23 @@ It also covers known issues in this release.
* [AMD ROCm Documentation Updates](#AMD-ROCm-Documentation-Updates)
- [What\'s New in This Release](#Whats-New-in-This-Release)
* [ROCm Compiler Enhancements](#ROCm-Compiler-Enhancements)
* [INTRODUCING AMD INSTINCT MI100](#INTRODUCING-AMD-INSTINCT-MI100)
* [RAS Enhancements](#RAS-Enhancements)
* [Using CMake with AMD ROCm](#Using-CMake-with-AMD-ROCm)
* [AMD ROCm and Mesa Multimedia](#AMD-ROCm-and-Mesa-Multimedia)
* [ROCm System Management Information](#ROCm-System-Management-Information)
* [ROCm Math and Communication Libraries](#ROCm-Math-and-Communication-Libraries)
* [ROCM AOMP Enhancements](#ROCm-AOMP-Enhancements)
- [Fixed Defects](#Fixed-Defects)
* [AMD GPU Debugger Enhancements](#AMD-GPU-Debugger-Enhancements)
- [Known Issues](#Known-Issues)
- [Deprecations](#Deprecations)
* [Compiler Generated Code Object Version 2 Deprecation ](#Compiler-Generated-Code-Object-Version-2-Deprecation)
* [ROCr Runtime Deprecations](#ROCr-Runtime-Deprecations)
* [AOMP Deprecation](#AOMP-Deprecation)
- [Deploying ROCm](#Deploying-ROCm)
- [Hardware and Software Support](#Hardware-and-Software-Support)
@@ -39,33 +39,24 @@ It also covers known issues in this release.
# Supported Operating Systems
## Support for Ubuntu 20.04.1
In this release, AMD ROCm extends support to Ubuntu 20.04.1, including v5.4 and v5.6-oem.
**Note**: AMD ROCm only supports Long Term Support (LTS) versions of Ubuntu. Versions other than LTS may work with ROCm, however, they are not officially supported.
## Support for SLES 15 SP2
This release extends support to SLES 15 SP2.
## List of 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.8 & RHEL 7.8 (Kernel 3.10.0-1127) (Using devtoolset-7 runtime support)
* CentOS 7.8 (3.10.0-1127) & RHEL 7.9 (3.10.0-1160.6.1.el7) (Using devtoolset-7 runtime support)
* CentOS 8.2 & RHEL 8.2 (Kernel 4.18.0 ) (devtoolset is not required)
* CentOS 8.2 (4.18.0-193.el8) and RHEL 8.2 (4.18.0-193.1.1.el8) (devtoolset is not required)
* SLES 15 SP2
# ROCm Installation Updates
## Fresh Installation of AMD ROCm v3.9 Recommended
A fresh and clean installation of AMD ROCm v3.9 is recommended. An upgrade from previous releases to AMD ROCm v3.9 is not supported.
## Fresh Installation of AMD ROCm v4.0 Recommended
A fresh and clean installation of AMD ROCm v4.0 is recommended. An upgrade from previous releases to AMD ROCm v4.0 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
@@ -78,19 +69,21 @@ https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
* For ROCm v3.3 and older releases, the *clinfo* path remains unchanged - */opt/rocm/opencl/bin/x86_64/clinfo*.
**Note**: After an operating system upgrade, AMD ROCm may upgrade automatically and result in an error. This is because AMD ROCm does not support upgrades currently. You must uninstall and reinstall AMD ROCm after an operating system upgrade.
## ROCm MultiVersion Installation Update
With the AMD ROCm v3.9 release, the following ROCm multi-version installation changes apply:
With the AMD ROCm v4.0 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 <= 3.9.0
* Version files must be created for each multi-version rocm <= 4.0.0
* command: echo <version> | sudo tee /opt/rocm-<version>/.info/version
* example: echo 3.9.0 | sudo tee /opt/rocm-3.9.0/.info/version
* example: echo 4.0.0 | sudo tee /opt/rocm-4.0.0/.info/version
* The rock-dkms loadable kernel modules should be installed using a single rock-dkms package.
@@ -107,66 +100,45 @@ The meta packages rocm-dkms<version> are now deprecated for multi-version ROCm i
The AMD ROCm Installation Guide in this release includes:
* Updated Supported Environments
* Multi-version Installation Instructions
* Supported Environments
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
* Installation Instructions for v4.0
* HIP Installation Instructions
## ROCm Compiler Documentation Updates
* AMD ROCm and Mesa Multimedia Installation
The ROCm Compiler documentation updates include,
* Using CMake with AMD ROCm
* OpenMP Extras v12.9-0
* OpenMP-Extras Installation
* OpenMP-Extras Source Build
* AOMP-v11.9-0
* AOMP Source Build
For more information, see
https://rocmdocs.amd.com/en/latest/Programming_Guides/openmp_support.html
For the updated ROCm SMI API Guide, see
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_SMI_Manual_v3.9.pdf
## ROCm System Management Information
ROCM-SMI version: 1.4.1 | Kernel version: 5.6.20
* ROCm SMI and Command Line Interface
* ROCm SMI APIs for Compute Unit Occupancy
* Usage
* Optional Arguments
* Display Options
* Topology
* Pages Information
* Hardware-related Information
* Software-related/controlled information
* Set Options
* Reset Options
* Auto-response Options
* Output Options
For more information, refer to
https://rocmdocs.amd.com/en/latest/ROCm_System_Managment/ROCm-System-Managment.html#rocm-command-line-interface
For ROCm SMI API Guide, see
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_SMI_Manual_v3.9.pdf
For more information, refer to the ROCm documentation website at:
https://rocmdocs.amd.com/en/latest/
## AMD ROCm - HIP Documentation Updates
* HIP Porting Guide CU_Pointer_Attribute_Memory_Type
* HIP Programming Guide v4.0
https://github.com/RadeonOpenCompute/ROCm/blob/master/HIP_Programming_Guide_v4.0.pdf
* HIP API Guide v4.0
https://github.com/RadeonOpenCompute/ROCm/blob/master/HIP-API_Guide_v4.0.pdf
* HIP FAQ
For more information, refer to
https://rocmdocs.amd.com/en/latest/Programming_Guides/HIP-porting-guide.html#hip-porting-guide
https://rocmdocs.amd.com/en/latest/Programming_Guides/HIP-FAQ.html#hip-faq
## ROCm SMI API Documentation Updates
* xGMI API
For more information, refer to the ROCm SMI API Guide at,
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_SMI_API_Guide_v4.0.pdf
## General AMD ROCm Documentation Links
@@ -183,378 +155,146 @@ Access the following links for more information:
* For AMD ROCm binary structure, see
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html#build-amd-rocm
https://rocmdocs.amd.com/en/latest/Installation_Guide/Software-Stack-for-AMD-GPU.html
* For AMD ROCm Release History, see
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html#amd-rocm-version-history
https://rocmdocs.amd.com/en/latest/Current_Release_Notes/ROCm-Version-History.html
# What\'s New in This Release
## ROCm Compiler Enhancements
## INTRODUCING AMD INSTINCT MI100
The ROCm compiler support in the llvm-amdgpu-12.0.dev-amd64.deb package is enhanced to include support for OpenMP. To utilize this support, the additional package openmp-extras_12.9-0_amd64.deb is required.
The AMD Instinct™ MI100 accelerator is the worlds fastest HPC GPU, and a culmination of the AMD CDNA architecture, with all-new Matrix Core Technology, and AMD ROCm™ open ecosystem to deliver new levels of performance, portability, and productivity. AMD CDNA is an all-new GPU architecture from AMD to drive accelerated computing into the era of exascale computing. The new architecture augments scalar and vector processing with new Matrix Core Engines and adds Infinity Fabric™ technology to scale up to larger systems. The open ROCm ecosystem puts customers in control and is a robust, mature platform that is easy to develop for and capable of running the most critical applications. The overall result is that the MI100 is the first GPU to break the 10TFLOP/s FP64 barrier designed as the steppingstone to the next generation of Exascale systems that will deliver pioneering discoveries in machine learning and scientific computing.
Note, by default, both packages are installed during the ROCm v3.9 installation. For information about ROCm installation, refer to the ROCm Installation Guide.
AMD ROCm supports the following compilers:
### Key Features of AMD Instinct™ MI100
* C++ compiler - Clang++
* C compiler - Clang
* Flang - FORTRAN compiler (FORTRAN 2003 standard)
Important features of the AMD Instinct™ MI100 accelerator include:
**NOTE** : All of the above-mentioned compilers support:
* Extended matrix core engine with Matrix Fused Multiply-Add (MFMA) for mixed-precision arithmetic and operates on KxN matrices (FP32, FP16, BF16, Int8)
* OpenMP standard 4.5 and an evolving subset of the OpenMP 5.0 standard
* OpenMP computational offloading to the AMD GPUs
* Added native support for the bfloat16 data type
For more information about AMD ROCm compilers, see the Compiler Documentation section at,
* 3 Infinity fabric connections per GPU enable a fully connected group of 4 GPUs in a hive
https://rocmdocs.amd.com/en/latest/index.html
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/keyfeatures.PNG)
### Matrix Core Engines and GFX908 Considerations
The AMD CDNA architecture builds on GCNs foundation of scalars and vectors and adds matrices while simultaneously adding support for new numerical formats for machine learning and preserving backward compatibility for any software written for the GCN architecture. These Matrix Core Engines add a new family of wavefront-level instructions, the Matrix Fused MultiplyAdd or MFMA. The MFMA family performs mixed-precision arithmetic and operates on KxN matrices using four different types of input data: 8-bit integers (INT8), 16-bit half-precision FP (FP16), 16-bit brain FP (bf16), and 32-bit single-precision (FP32). All MFMA instructions produce either a 32-bit integer (INT32) or FP32 output, which reduces the likelihood of overflowing during the final accumulation stages of matrix multiplication.
On nodes with gfx908, MFMA instructions are available to substantially speed up matrix operations. This hardware feature is used only in matrix multiplications functions in rocBLAS and supports only three base types f16_r, bf16_r, and f32_r.
* For half precision (f16_r and bf16_r) GEMM, use the function rocblas_gemm_ex, and set the compute_type parameter to f32_r.
* For single precision (f32_r) GEMM, use the function rocblas_sgemm.
* For single precision complex (f32_c) GEMM, use the function rocblas_cgemm.
### References
* For more information about bfloat16, see
https://rocblas.readthedocs.io/en/master/usermanual.html
* For more details about AMD Instinct™ MI100 accelerator key features, see
https://www.amd.com/system/files/documents/instinct-mi100-brochure.pdf
* For more information about the AMD Instinct MI100 accelerator, refer to the following sources:
- AMD CDNA whitepaper at https://www.amd.com/system/files/documents/amd-cdna-whitepaper.pdf
### Auxiliary Package Supporting OpenMP
- MI100 datasheet at https://www.amd.com/system/files/documents/instinct-mi100-brochure.pdf
The openmp-extras_12.9-0_amd64.deb auxiliary package supports OpenMP within the ROCm compiler. It contains OpenMP specific header files, which are installed in /opt/rocm/llvm/include as well as runtime libraries, fortran runtime libraries, and device bitcode files in /opt/rocm/llvm/lib. The auxiliary package also consists of examples in the /opt/rocm/llvm/examples folder.
* AMD Instinct MI100/CDNA1 Shader Instruction Set Architecture (Dec. 2020) This document describes the current environment, organization, and program state of AMD CDNA “Instinct MI100” devices. It details the instruction set and the microcode formats native to this family of processors that are accessible to programmers and compilers.
**NOTE**: The optional AOMP package resides in /opt/rocm//aomp/bin/clang and the ROCm compiler, which supports OpenMP for AMDGPU, is located in /opt/rocm/llvm/bin/clang.
https://developer.amd.com/wp-content/resources/CDNA1_Shader_ISA_14December2020.pdf
### AOMP Optional Package Deprecation
Before the AMD ROCm v3.9 release, the optional AOMP package provided support for OpenMP. While AOMP is available in this release, the optional package may be deprecated from ROCm in the future. It is recommended you transition to the ROCm compiler or AOMP standalone releases for OpenMP support.
## RAS ENHANCEMENTS
### Understanding ROCm Compiler OpenMP Support and AOMP OpenMP Support
RAS (Reliability, Availability, and Accessibility) features provide help with data center GPU management. It is a method provided to users to track and manage data points via options implemented in the ROCm-SMI Command Line Interface (CLI) tool.
The AOMP OpenMP support in ROCm v3.9 is based on the standalone AOMP v11.9-0, with LLVM v11 as the underlying system. However, the ROCm compiler's OpenMP support is based on LLVM v12 (upstream).
For more information about rocm-smi, see
**NOTE**: Do not combine the object files from the two LLVM implementations. You must rebuild the application in its entirety using either the AOMP OpenMP or the ROCm OpenMP implementation.
https://github.com/RadeonOpenCompute/ROC-smi
### Example OpenMP Using the ROCm Compiler
The command options are wrappers of the system calls into the device driver interface as described here:
```
https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#amdgpu-ras-support
$ cat helloworld.c
#include <stdio.h>
#include <omp.h>
int main(void) {
int isHost = 1;
#pragma omp target map(tofrom: isHost)
{
isHost = omp_is_initial_device();
printf("Hello world. %d\n", 100);
for (int i =0; i<5; i++) {
printf("Hello world. iteration %d\n", i);
}
}
printf("Target region executed on the %s\n", isHost ? "host" : "device");
return isHost;
}
$ /opt/rocm/llvm/bin/clang -O3 -target x86_64-pc-linux-gnu -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx900 helloworld.c -o helloworld
$ export LIBOMPTARGET_KERNEL_TRACE=1
$ ./helloworld
DEVID: 0 SGN:1 ConstWGSize:256 args: 1 teamsXthrds:( 1X 256) reqd:( 1X 0) n:__omp_offloading_34_af0aaa_main_l7
Hello world. 100
Hello world. iteration 0
Hello world. iteration 1
Hello world. iteration 2
Hello world. iteration 3
Hello world. iteration 4
Target region executed on the device
```
For more examples, see */opt/rocm/llvm/examples*.
## USING CMake with AMD ROCm
Most components in AMD ROCm support CMake 3.5 or higher out-of-the-box and do not require any special Find modules. A Find module is often used downstream to find the files by guessing locations of files with platform-specific hints. Typically, the Find module is required when the upstream is not built with CMake or the package configuration files are not available.
## ROCm SYSTEM MANAGEMENT INFORMATION
AMD ROCm provides the respective config-file packages, and this enables find_package to be used directly. AMD ROCm does not require any Find module as the config-file packages are shipped with the upstream projects.
The AMD ROCm v3.9 release consists of the following ROCm System Management Information (SMI) enhancements:
For more information, see
* Shows the hardware topology
https://rocmdocs.amd.com/en/latest/Installation_Guide/Using-CMake-with-AMD-ROCm.html
* The ROCm-SMI showpids option shows per-process Compute Unit (CU) Occupancy, VRAM usage, and SDMA usage
* Support for GPU Reset Event and Thermal Throttling Event in ROCm-SMI Library
## AMD ROCm and Mesa Multimedia
### ROCm-SMI Hardware Topology
AMD ROCm extends support to Mesa Multimedia. Mesa is an open-source software implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.
The ROCm-SMI Command Line Interface (CLI) is enhanced to include new options to denote GPU inter-connect topology in the system along with the relative distance between each other and the closest NUMA (CPU) node for each GPU.
For detailed installation instructions, refer to
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/ROCMCLI1.PNG)
https://rocmdocs.amd.com/en/latest/Installation_Guide/Mesa-Multimedia-Installation.html
### Compute Unit Occupancy
The AMD ROCm stack now supports a user process in querying Compute Unit (CU) occupancy at a particular moment. This service can be accessed to determine if a process P is using sufficient compute units.
## ROCm System Management Information
A periodic collection is used to build the profile of a compute unit occupancy for a workload.
The following enhancements are made to ROCm System Management Interface (SMI).
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/ROCMCLI2.PNG)
### Support for Printing PCle Information on AMD Instinct™100
AMD ROCm extends support for printing PCle information on AMD Instinct MI100.
ROCm supports this capability only on GFX9 devices. Users can access the functionality in two ways:
To check the pp_dpm_pcie file, use *"rocm-smi --showclocks"*.
* indirectly from the SMI library
*/opt/rocm-4.0.0-6132/bin/rocm_smi.py --showclocks*
* directly via Sysfs
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/SMI.PNG)
**NOTE**: On systems that have both GFX9 and non-GFX9 devices, users should interpret the compute unit (CU) occupancy value carefully as the service does not support non-GFX9 devices.
### Accessing Compute Unit Occupancy Indirectly
### New API for xGMI
The ROCm System Management Interface (SMI) library provides a convenient interface to determine the CU occupancy for a process. To get the CU occupancy of a process reported in percentage terms, invoke the SMI interface using rsmi_compute_process_info_by_pid_get(). The value is reported through the member field cu_occupancy of struct rsmi_process_info_t.
Rocm_smi_lib now provides an API that exposes xGMI (inter-chip Global Memory Interconnect) throughput from one node to another.
```
/**
* @brief Encodes information about a process
* @cu_occupancy Compute Unit usage in percent
*/
typedef struct {
- - -,
uint32_t cu_occupancy;
} rsmi_process_info_t;
Refer to the rocm_smi_lib API documentation for more details.
/**
* API to get information about a process
rsmi_status_t
rsmi_compute_process_info_by_pid_get(uint32_t pid,
rsmi_process_info_t *proc);
```
https://github.com/RadeonOpenCompute/ROCm/blob/master/ROCm_SMI_API_Guide_v4.0.pdf
### Accessing Compute Unit Occupancy Directly Using SYSFS
Information provided by SMI library is built from sysfs. For every valid device, ROCm stack surfaces a file by the name cu_occupancy in Sysfs. Users can read this file to determine how that device is being used by a particular workload. The general structure of the file path is /proc/<pid>/stats_<gpuid>/cu_occupancy
```
/**
* CU occupancy files for processes P1 and P2 on two devices with
* ids: 1008 and 112326
*/
/sys/devices/virtual/kfd/kfd/proc/<Pid_1>/stats_1008/cu_occupancy
/sys/devices/virtual/kfd/kfd/proc/<Pid_1>/stats_2326/cu_occupancy
/sys/devices/virtual/kfd/kfd/proc/<Pid_2>/stats_1008/cu_occupancy
/sys/devices/virtual/kfd/kfd/proc/<Pid_2>/stats_2326/cu_occupancy
// To get CU occupancy for a process P<i>
for each valid-device from device-list {
path-1 = Build path for cu_occupancy file;
path-2 = Build path for file Gpu-Properties;
cu_in_use += Open and Read the file path-1;
cu_total_cnt += Open and Read the file path-2;
}
cu_percent = ((cu_in_use * 100) / cu_total_cnt);
```
### GPU Reset Event and Thermal Throttling Event
## AMD GPU Debugger Enhancements
The ROCm-SMI library clients can now register for the following events:
In this release, AMD GPU Debugger has the following enhancements:
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/ROCMCLI3.PNG)
* ROCm v4.0 ROCgdb is based on gdb 10.1
* Extended support for AMD Instinct™ MI100
## ROCm Math and Communication Libraries
### rocfft_execution_info_set_stream API
rocFFT is a software library for computing Fast Fourier Transforms (FFT). It is part of AMDs software ecosystem based on ROCm. In addition to AMD GPU devices, the library can be compiled with the CUDA compiler using HIP tools for running on Nvidia GPU devices.
The rocfft_execution_info_set_stream API is a function to specify optional and additional information to control execution. This API specifies the compute stream, which must be invoked before the call to rocfft_execute. Compute stream is the underlying device queue/stream where the library computations are inserted.
#### PREREQUISITES
Using the compute stream API makes the following assumptions:
* This stream already exists in the program and assigns work to the stream
* The stream must be of type hipStream_t. Note, it is an error to pass the address of a hipStream_t object
#### PARAMETERS
Input
* info execution info handle
* stream underlying compute stream
### Improved GEMM Performance
Currently, rocblas_gemm_ext2() supports matrix multiplication D <= alpha * A * B + beta * C, where the A, B, C, and D matrices are single-precision float, column-major, and non-transposed, except that the row stride of C may equal 0. This means the first row of C is broadcast M times in C:
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/GEMM2.PNG)
If an optimized kernel solution for a particular problem is not available, a slow fallback algorithm is used, and the first time a fallback algorithm is used, the following message is printed to standard error:
*“Warning: Using slow on-host algorithm, because it is not implemented in Tensile yet.”
**NOTE**: ROCBLAS_LAYER controls the logging of the calls. It is recommended to use logging with the rocblas_gemm_ext2() feature, to identify the precise parameters which are passed to it.
* Setting the ROCBLAS_LAYER environment variable to 2 will print the problem parameters as they are being executed.
* Setting the ROCBLAS_LAYER environment variable to 4 will collect all of the sizes, and print them out at the end of program execution.
For more logging information, refer to https://rocblas.readthedocs.io/en/latest/logging.html.
### New Matrix Pruning Functions
In this release, the following new Matrix Pruning functions are introduced.
![Screenshot](https://github.com/Rmalavally/ROCm/blob/master/images/matrix.png)
### rocSOLVER General Matrix Singular Value Decomposition API
The rocSOLVER General Matrix Singular Value Decomposition (GESVD) API is now available in the AMD ROCm v3.9 release.
GESVD computes the Singular Values and, optionally, the Singular Vectors of a general m-by-n matrix A (Singular Value Decomposition).
The SVD of matrix A is given by:
```
A = U * S * V'
```
For more information, refer to
https://rocsolver.readthedocs.io/en/latest/userguide_api.html
## ROCm AOMP ENHANCEMENTS
### AOMP v11.9-0
The source code base for this release is the upstream LLVM 11 monorepo release/11.x sources as of August 18, 2020, with the hash value
*1e6907f09030b636054b1c7b01de36f281a61fa2*
The llvm-project branch used to build this release is aomp11. In addition to completing the source tarball, the artifacts of this release include the file llvm-project.patch. This file shows the delta from the llvm-project upstream release/11.x. The size of this patch XXXX lines in XXX files. These changes include support for flang driver, OMPD support, and the hsa libomptarget plugin. The goal is to reduce this with continued upstreaming activity.
The changes for this release of AOMP are:
* Fix compiler warnings for build_project.sh and build_openmp.sh.
* Fix: [flang] The AOMP 11.7-1 Fortran compiler claims to support the -isystem flag, but ignores it.
* Fix: [flang] producing internal compiler error when a character is used with KIND.
* Fix: [flang] openmp map clause on complex allocatable expressions !$omp target data map( chunk%tiles(1)%field%density0).
* DeviceRTL memory footprint has been reduced from ~2.3GB to ~770MB for AMDGCN target.
* Workaround for red_bug_51 failing on gfx908.
* Switch to python3 for ompd and rocgdb.
* Now require cmake 3.13.4 to compile from source.
* Fix aompcc to accept file type cxx.
### AOMP v11.08-0
The source code base for this release is the upstream LLVM 11 monorepo release/11.x sources as of August 18, 2020 with the hash value
*aabff0f7d564b22600b33731e0d78d2e70d060b4*
The amd-llvm-project branch used to build this release is amd-stg-openmp. In addition to complete source tarball, the artifacts of this release includes the file llvm-project.patch. This file shows the delta from the llvm-project upstream release/11.x which is currently at 32715 lines in 240 files. These changes include support for flang driver, OMPD support and the hsa libomptarget plugin. Our goal is to reduce this with continued upstreaming activity.
These are the major changes for this release of AOMP:
* Switch to the LLVM 11.x stable code base.
* OMPD updates for flang.
* To support debugging OpenMP, selected OpenMP runtime sources are included in lib-debug/src/openmp. The ROCgdb debugger will find these automatically.
* Threadsafe hsa plugin for libomptarget.
* Updates to support device libraries.
* Openmpi configure issue with real16 resolved.
* DeviceRTL memory use is now independent of number of openmp binaries.
* Startup latency on first kernel launch reduced by order of magnitude.
### AOMP v11.07-1
The source code base for this release is the upstream LLVM 11 monorepo development sources as July 10, 2020 with hash valued 979c5023d3f0656cf51bd645936f52acd62b0333 The amd-llvm-project branch used to build this release is amd-stg-openmp. In addition to complete source tarball, the artifacts of this release includes the file llvm-project.patch. This file shows the delta from the llvm-project upstream trunk which is currently at 34121 lines in 277 files. Our goal is to reduce this with continued upstreaming activity.
* Inclusion of OMPD support which is not yet upstream
* Build of ROCgdb
* Host runtime optimisation. GPU image information is now mostly read on the host instead of from the GPU.
* Fixed the source build scripts so that building from the source tarball does not fail because of missing test directories. This fixes issue #116.
# Fixed Defects
The following defects are fixed in this release:
* Random Soft Hang Observed When Running ResNet-Based Models
* (AOMP) Undefined Hidden Symbol Linker Error Causes Compilation Failure in HIP
* MIGraphx -> test_gpu_ops_test FAILED
* Unable to install RDC on CentOS/RHEL 7.8/8.2 & SLES
# Known Issues
The following are the known issues in this release.
## (AOMP) HIP EXAMPLE DEVICE_LIB FAILS TO COMPILE
## Upgrade to AMD ROCm v4.0 Not Supported
The HIP example device_lib fails to compile and displays the following error:
*lld: error: undefined hidden symbol: inc_arrayval
The recommended workaround is to use */opt/rocm/hip/bin/hipcc to compile HIP applications*.
## HIPFORT INSTALLATION FAILURE
Hipfort fails to install during the ROCm installation.
As a workaround, you may force install hipfort using the following instructions:
### Ubuntu
```
sudo apt-get -o Dpkg::Options::="--force-overwrite" install hipfort
```
### SLES
Zypper gives you an option to continue with the overwrite during the installation.
### CentOS
Download hipfort to a temporary location and force install with rpm:
```
yum install --downloadonly --downloaddir=/tmp/hipfort hipfort
rpm -i --replacefiles hipfort<package-version>
```
## MEMORY FAULT ACCESS ERROR DURING MEMORY TEST OF ROCM VALIDATION SUITE
When the ROCm Validation Suite (RVS) is installed using the prebuilt Debian/rpm package and run for the first time, the memory module displays the following error message,
“Memory access fault by GPU node-<x> (Agent handle: 0xa55170) on address 0x7fc268c00000. Reason: Page not present or supervisor privilege.
Aborted (core dumped)”
As a workaround, run the test again. Subsequent runs appear to fix the error.
**NOTE**: The error may appear after a system reboot. Run the test again to fix the issue.
Note, reinstallation of ROCm Validation Suite is not required.
An upgrade from previous releases to AMD ROCm v4.0 is not supported. A fresh and clean installation of AMD ROCm v4.0 is recommended.
@@ -562,21 +302,120 @@ Note, reinstallation of ROCm Validation Suite is not required.
This section describes deprecations and removals in AMD ROCm.
## WARNING: COMPILER-GENERATED CODE OBJECT VERSION 2 DEPRECATION
## Compiler Generated Code Object Version 2 Deprecation
**WARNING**
Compiler-generated code object version 2 is no longer supported and will be removed shortly. AMD ROCm users must plan for the code object version 2 deprecation immediately.
Support for loading code object version 2 is also being deprecated with no announced removal release.
## ROCr Runtime Deprecations
The following ROCr Runtime enumerations, functions, and structs are deprecated in the AMD ROCm v4.0 release.
### Deprecated ROCr Runtime Functions
* hsa_isa_get_info
* hsa_isa_compatible
* hsa_executable_create
* hsa_executable_get_symbol
* hsa_executable_iterate_symbols
* hsa_code_object_serialize
* hsa_code_object_deserialize
* hsa_code_object_destroy
* hsa_code_object_get_info
* hsa_executable_load_code_object
* hsa_code_object_get_symbol
* hsa_code_object_get_symbol_from_name
* hsa_code_symbol_get_info
* hsa_code_object_iterate_symbols
### Deprecated ROCr Runtime Enumerations
* HSA_ISA_INFO_CALL_CONVENTION_COUNT
* HSA_ISA_INFO_CALL_CONVENTION_INFO_WAVEFRONT_SIZE
* HSA_ISA_INFO_CALL_CONVENTION_INFO_WAVEFRONTS_PER_COMPUTE_UNIT
* HSA_EXECUTABLE_SYMBOL_INFO_MODULE_NAME_LENGTH
* HSA_EXECUTABLE_SYMBOL_INFO_MODULE_NAME
* HSA_EXECUTABLE_SYMBOL_INFO_AGENT
* HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_ALLOCATION
* HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_SEGMENT
* HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_ALIGNMENT
* HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_SIZE
* HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_IS_CONST
* HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_CALL_CONVENTION
* HSA_EXECUTABLE_SYMBOL_INFO_INDIRECT_FUNCTION_CALL_CONVENTION
- hsa_code_object_type_t
- hsa_code_object_info_t
- hsa_code_symbol_info_t
### Deprecated ROCr Runtime Structs
* hsa_code_object_t
* hsa_callback_data_t
* hsa_code_symbol_t
## AOMP Deprecation
As of AMD ROCm v4.0, AOMP (aomp-amdgpu) is deprecated. OpenMP support has moved to the openmp-extras auxiliary package, which leverages the ROCm compiler on LLVM 12.
For more information, refer to
https://rocmdocs.amd.com/en/latest/Programming_Guides/openmp_support.html
# Deploying ROCm
AMD hosts both Debian and RPM repositories for the ROCm v3.9.x packages.
AMD hosts both Debian and RPM repositories for the ROCm v4.0.0 packages.
For more information on ROCM installation on all platforms, see
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
## Machine Learning and High Performance Computing Software Stack for AMD GPU
For an updated version of the software stack for AMD GPU, see
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html#software-stack-for-amd-gpu
# Hardware and Software Support
ROCm is focused on using AMD GPUs to accelerate computational tasks such as machine learning, engineering workloads, and scientific computing.
In order to focus our development efforts on these domains of interest, ROCm supports a targeted set of hardware configurations which are detailed further in this section.
@@ -584,14 +423,20 @@ In order to focus our development efforts on these domains of interest, ROCm sup
#### Supported GPUs
Because the ROCm Platform has a focus on particular computational domains, we offer official support for a selection of AMD GPUs that are designed to offer good performance and price in these domains.
**Note:** The integrated GPUs of Ryzen are not officially supported targets for ROCm.
ROCm officially supports AMD GPUs that use following chips:
* GFX8 GPUs
* "Fiji" chips, such as on the AMD Radeon R9 Fury X and Radeon Instinct MI8
* "Polaris 10" chips, such as on the AMD Radeon RX 580 and Radeon Instinct MI6
* GFX9 GPUs
* "Vega 10" chips, such as on the AMD Radeon RX Vega 64 and Radeon Instinct MI25
* "Vega 7nm" chips, such as on the Radeon Instinct MI50, Radeon Instinct MI60 or AMD Radeon VII
* GFX9 GPUs
- "Vega 10" chips, such as on the AMD Radeon RX Vega 64 and Radeon Instinct MI25
- "Vega 7nm" chips, such as on the Radeon Instinct MI50, Radeon Instinct MI60 or AMD Radeon VII,
* CDNA GPUs
- MI100 chips such as on the AMD Instinct™ MI100
ROCm is a collection of software ranging from drivers and runtimes to libraries and developer tools.
Some of this software may work with more GPUs than the "officially supported" list above, though AMD does not make any official claims of support for these devices on the ROCm software platform.
@@ -698,8 +543,4 @@ For users that have the option of using either AMD's or the upstreamed driver, t
## Machine Learning and High Performance Computing Software Stack for AMD GPU
For an updated version of the software stack for AMD GPU, see
https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html#software-stack-for-amd-gpu

View File

@@ -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-3.9.0"
<default revision="refs/tags/rocm-4.0.0"
remote="roc-github"
sync-c="true"
sync-j="4" />
@@ -21,7 +21,7 @@ sync-j="4" />
<project name="ROCT-Thunk-Interface" />
<project name="ROCR-Runtime" />
<project name="ROC-smi" />
<project name="rocm_smi_lib" remote="roc-github" />
<project name="rocm_smi_lib" />
<project name="rocm-cmake" />
<project name="rocminfo" />
<project name="rocprofiler" remote="rocm-devtools" />
@@ -35,17 +35,19 @@ sync-j="4" />
<project name="ROCclr" remote="rocm-devtools" />
<project name="HIPIFY" remote="rocm-devtools" />
<!-- The following projects are all associated with the AMDGPU LLVM compiler -->
<project name="llvm-project" path="llvm_amd-stg-open" />
<project name="llvm-project" />
<project name="ROCm-Device-Libs" />
<project name="atmi" />
<project name="ROCm-CompilerSupport" />
<project name="rocr_debug_agent" remote="rocm-devtools" />
<project name="rocm_bandwidth_test" />
<project name="half" remote="rocm-swplat" revision="37742ce15b76b44e4b271c1e66d13d2fa7bd003e" />
<project name="RCP" remote="gpuopen-tools" revision="3a49405a1500067c49d181844ec90aea606055bb" />
<!-- gdb projects -->
<project name="ROCgdb" remote="rocm-devtools" />
<project name="ROCdbgapi" remote="rocm-devtools" />
<!-- ROCm Libraries -->
<project name="rdc" remote="roc-github" />
<project name="rocBLAS" remote="rocm-swplat" />
<project name="hipBLAS" remote="rocm-swplat" />
<project name="rocFFT" remote="rocm-swplat" />
@@ -64,21 +66,8 @@ sync-j="4" />
<project name="hipfort" remote="rocm-swplat" />
<project name="AMDMIGraphX" remote="rocm-swplat" />
<project name="ROCmValidationSuite" remote="rocm-devtools" />
<!-- Projects for AOMP -->
<project name="ROCT-Thunk-Interface" path="aomp/roct-thunk-interface" remote="roc-github" />
<project name="ROCR-Runtime" path="aomp/rocr-runtime" remote="roc-github" />
<project name="ROCm-Device-Libs" path="aomp/rocm-device-libs" remote="roc-github" />
<project name="ROCm-CompilerSupport" path="aomp/rocm-compilersupport" remote="roc-github" />
<project name="rocminfo" path="aomp/rocminfo" remote="roc-github" />
<project name="HIP" path="aomp/hip-on-vdi" remote="rocm-devtools" />
<project name="aomp" path="aomp/aomp" remote="rocm-devtools" />
<project name="aomp-extras" path="aomp/aomp-extras" remote="rocm-devtools" />
<project name="flang" path="aomp/flang" remote="rocm-devtools" />
<project name="amd-llvm-project" path="aomp/amd-llvm-project" remote="rocm-devtools" />
<project name="ROCclr" path="aomp/vdi" remote="rocm-devtools" />
<project name="ROCm-OpenCL-Runtime" path="aomp/opencl-on-vdi" remote="roc-github" />
<!-- Projects for OpenMP-Extras -->
<project name="aomp" path="openmp-extras/aomp" remote="rocm-devtools" revision="refs/tags/rocm-uc-3.9.0" />
<project name="aomp-extras" path="openmp-extras/aomp-extras" remote="rocm-devtools" revision="refs/tags/rocm-uc-3.9.0" />
<project name="flang" path="openmp-extras/flang" remote="rocm-devtools" revision="refs/tags/rocm-uc-3.9.0" />
<project name="aomp" path="openmp-extras/aomp" remote="rocm-devtools" />
<project name="aomp-extras" path="openmp-extras/aomp-extras" remote="rocm-devtools" />
<project name="flang" path="openmp-extras/flang" remote="rocm-devtools" />
</manifest>

BIN
images/CLI1.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
images/CLI2.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
images/SMI.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
images/keyfeatures.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
images/latestGPU.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 KiB

BIN
images/rocsolverAPI.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB