
Software Stack for AMD GPU¶
Machine Learning and High Performance Computing Software Stack for AMD GPU¶
ROCm Binary Package Structure¶
ROCm is a collection of software ranging from drivers and runtimes to libraries and developer tools. In AMD’s package distributions, these software projects are provided as a separate packages. This allows users to install only the packages they need, if they do not wish to install all of ROCm. These packages will install most of the ROCm software into /opt/rocm/
by default.
The packages for each of the major ROCm components are:
ROCm Core Components¶
ROCk Kernel Driver:
rock-dkms rock-dkms-firmware
ROCr Runtime:
hsa-rocr-dev
ROCt Thunk Interface:
hsakmt-roct
,hsakmt-roct-dev
ROCm Support Software¶
ROCm SMI:
rocm-smi
ROCm cmake:
rocm-cmake
rocminfo:
rocminfo
ROCm Bandwidth Test:
rocm_bandwidth_test
ROCm Compilers¶
Clang compiler:
llvm-amdgpu
HIP:
hip_base
,hip_doc
,hip_rocclr
,hip_samples
ROCM Clang-OCL Kernel Compiler:
rocm-clang-ocl
ROCm Device Libraries¶
ROCm Device Libraries:
rocm-device-libs
ROCm OpenCL:
rocm-opencl
,rocm-opencl-devel
(on RHEL/CentOS),rocm-opencl-dev
(on Ubuntu)
ROCm Development ToolChain¶
Asynchronous Task and Memory Interface (ATMI):
atmi
ROCm Debug Agent:
rocm_debug_agent
ROCm Code Object Manager:
comgr
ROC Profiler:
rocprofiler-dev
ROC Tracer:
roctracer-dev
ROCm Libraries¶
rocALUTION:
rocalution
rocBLAS:
rocblas
hipBLAS:
hipblas
hipCUB:
hipCUB
rocFFT:
rocfft
rocRAND:
rocrand
rocSPARSE:
rocsparse
hipSPARSE:
hipsparse
ROCm SMI Lib:
rocm-smi-lib64
rocThrust:
rocThrust
MIOpen:
MIOpen-HIP
(for the HIP version),MIOpen-OpenCL
(for the OpenCL version)MIOpenGEMM:
miopengemm
MIVisionX:
mivisionx
RCCL:
rccl
To make it easier to install ROCm, the AMD binary repositories provide a number of meta-packages that will automatically install multiple other packages. For example, rocm-dkms
is the primary meta-package that is used to install most of the base technology needed for ROCm to operate. It will install the rock-dkms
kernel driver, and another meta-package (rocm-dev
) which installs most of the user-land ROCm core components, support software, and development tools.
The rocm-utils meta-package will install useful utilities that, while not required for ROCm to operate, may still be beneficial to have. Finally, the rocm-libs meta-package will install some (but not all) of the libraries that are part of ROCm.
The chain of software installed by these meta-packages is illustrated below:
└── rocm-dkms
├── rock-dkms
└── rocm-dev
├── comgr
├── hip-base
├── hip-doc
├── hip-rocclr
├── hip-samples
├── hsa-amd-aqlprofile
├── hsakmt-roct
├── hsakmt-roct-dev
├── hsa-rocr-dev
├── llvm-amdgpu
├── rocm-cmake
├── rocm-dbgapi
├── rocm-debug-agent
├── rocm-device-libs
├── rocm-gdb
├── rocm-smi
├── rocm-smi-lib64
├── rocprofiler-dev
└── roctracer-dev
├── rocm-utils
│ ├── rocm-clang-ocl
│ └── rocminfo
rocm-libs
|--miopen
|--hipblas
|--hipcub
|--hipsparse
|--rocalution
|--rocblas
|--rocfft
|--rocprim
|--rocrand
|--rocsolver
|--rocsparse
\--rocthrust
These meta-packages are not required but may be useful to make it easier to install ROCm on most systems.
Note: Some users may want to skip certain packages. For instance, a user that wants to use the upstream kernel drivers (rather than those supplied by AMD) may want to skip the rocm-dkms and rock-dkms packages. Instead, they could directly install rocm-dev.
Similarly, a user that only wants to install OpenCL support instead of HCC and HIP may want to skip the rocm-dkms and rocm-dev packages. Instead, they could directly install rock-dkms, rocm-opencl, and rocm-opencl-dev and their dependencies.
ROCm Platform Packages¶
The following platform packages are for ROCm v4.1.0:
Drivers, ToolChains, Libraries, and Source Code¶
The latest supported version of the drivers, tools, libraries and source code for the ROCm platform have been released and are available from the following GitHub repositories:
ROCm Core Components
ROCm Support Software
ROCm Compilers
Example Applications:
ROCm Device Libraries and Tools
ROCm Libraries
List of ROCm Packages for Supported Operating Systems¶
ROCm-Library Meta Packages¶
Package |
Debian |
RPM |
---|---|---|
rocFFT |
Yes |
Yes |
rocRAND |
Yes |
Yes |
rocBLAS |
Yes |
Yes |
rocSPARSE |
Yes |
Yes |
rocALUTION |
Yes |
Yes |
rocPRIM |
Yes |
Yes |
rocTHRUST |
Yes |
Yes |
rocSOLVER |
Yes |
Yes |
hipBLAS |
Yes |
Yes |
hipSPARSE |
Yes |
Yes |
hipcub |
Yes |
Yes |
Meta Packages¶
Package |
Debian |
RPM |
---|---|---|
ROCm Master Package |
rocm |
rocm-1.6.77-Linux.rpm |
ROCm Developer Master Package |
rocm-dev |
rocm-dev-1.6.77-Linux.rpm |
ROCm Libraries Master Package |
rocm-libs |
rocm-libs-1.6.77-Linux.rpm |
ATMI |
atmi |
atmi-0.3.7-45-gde867f2-Linux.rpm |
HIP Core |
hip_base |
hip_base-1.2.17263.rpm |
HIP Documents |
hip_doc |
hip_doc-1.2.17263.rpm |
HIP Compiler |
hip_hcc |
hip_hcc-1.2.17263.rpm |
HIP Samples |
hip_samples |
hip_samples-1.2.17263.rpm. |
HIPBLAS |
hipblas |
hipblas-0.4.0.3-Linux.rpm |
MIOpen OpenCL Lib |
miopen-opencl. |
MIOpen-OpenCL-1.0.0-Linux.rpm |
rocBLAS |
rocblas |
rocblas-0.4.2.3-Linux.rpm |
rocFFT |
rocfft |
rocm-device-libs-0.0.1-Linux.rpm |
ROCm Device Libs |
rocm-device-libs |
rocm-device-libs-0.0.1-Linux.rpm |
ROCm OpenCL for Dev with CL headers |
rocm-opencl-dev |
rocm-opencl-devel-1.2.0-1424893.x86_64.rpm |
ROCm GDB |
rocm-gdb |
rocm-gdb-1.5.265-gc4fb045.x86_64.rpm |
RCP profiler |
rocm-profiler |
rocm-profiler-5.1.6386-gbaddcc9.x86_64.rpm |
ROCm SMI Tool |
rocm-smi |
rocm-smi-1.0.0_24_g68893bc-1.x86_64.rpm |
ROCm Utilities |
rocm-utils |
rocm-utils-1.0.0-Linux.rpm |