What is ROCm?#
2025-09-11
6 min read time
ROCm is a software stack, composed primarily of open-source software, that provides the tools for programming AMD Graphics Processing Units (GPUs), from low-level kernels to high-level end-user applications.

Specifically, ROCm provides the tools for HIP (Heterogeneous-computing Interface for Portability), OpenCL and OpenMP. These include compilers, libraries for high-level functions, debuggers, profilers and runtimes.
ROCm components#
ROCm consists of the following components. For information on the license associated with each component, see ROCm licensing.
Libraries#
Machine Learning & Computer Vision#
Component |
Description |
---|---|
Composable Kernel |
Provides a programming model for writing performance critical kernels for machine learning workloads across multiple architectures |
MIGraphX |
Graph inference engine that accelerates machine learning model inference |
MIOpen |
An open source deep-learning library |
MIVisionX |
Set of comprehensive computer vision and machine learning libraries, utilities, and applications |
ROCm Performance Primitives (RPP) |
Comprehensive high-performance computer vision library for AMD processors with HIP/OpenCL/CPU back-ends |
rocAL |
An augmentation library designed to decode and process images and videos |
rocDecode |
High-performance SDK for access to video decoding features on AMD GPUs |
rocJPEG |
Library for decoding JPG images on AMD GPUs |
rocPyDecode |
Provides access to rocDecode APIs in both Python and C/C++ languages |
Communication#
Component |
Description |
---|---|
RCCL |
Standalone library that provides multi-GPU and multi-node collective communication primitives |
rocSHMEM |
An intra-kernel networking library that provides GPU-centric networking through an OpenSHMEM-like interface |
Math#
Component |
Description |
---|---|
C++ header-only library that provides an IEEE 754 conformant, 16-bit half-precision floating-point type, along with corresponding arithmetic operators, type conversions, and common mathematical functions |
|
hipBLAS |
BLAS-marshaling library that supports rocBLAS and cuBLAS backends |
hipBLASLt |
Provides general matrix-matrix operations with a flexible API and extends functionalities beyond traditional BLAS library |
hipFFT |
Fast Fourier transforms (FFT)-marshalling library that supports rocFFT or cuFFT backends |
hipfort |
Fortran interface library for accessing GPU Kernels |
hipRAND |
Ports CUDA applications that use the cuRAND library into the HIP layer |
hipSOLVER |
An LAPACK-marshalling library that supports rocSOLVER and cuSOLVER backends |
hipSPARSE |
SPARSE-marshalling library that supports rocSPARSE and cuSPARSE backends |
hipSPARSELt |
SPARSE-marshalling library with multiple supported backends |
rocALUTION |
Sparse linear algebra library for exploring fine-grained parallelism on ROCm runtime and toolchains |
rocBLAS |
BLAS implementation (in the HIP programming language) on the ROCm runtime and toolchains |
rocFFT |
Software library for computing fast Fourier transforms (FFTs) written in HIP |
rocRAND |
Provides functions that generate pseudorandom and quasirandom numbers |
rocSOLVER |
An implementation of LAPACK routines on ROCm software, implemented in the HIP programming language and optimized for AMD’s latest discrete GPUs |
rocSPARSE |
Exposes a common interface that provides BLAS for sparse computation implemented on ROCm runtime and toolchains (in the HIP programming language) |
rocWMMA |
C++ library for accelerating mixed-precision matrix multiply-accumulate (MMA) operations |
Tensile |
Creates benchmark-driven backend libraries for GEMMs, GEMM-like problems, and general N-dimensional tensor contractions |
Primitives#
Component |
Description |
---|---|
hipCUB |
Thin header-only wrapper library on top of rocPRIM or CUB that allows project porting using the CUB library to the HIP layer |
hipTensor |
AMD’s C++ library for accelerating tensor primitives based on the composable kernel library |
rocPRIM |
Header-only library for HIP parallel primitives |
rocThrust |
Parallel algorithm library |
Tools#
System Management#
Component |
Description |
---|---|
AMD SMI |
System management interface to control AMD GPU settings, monitor performance, and retrieve device and process information |
ROCm Data Center Tool |
Simplifies administration and addresses key infrastructure challenges in AMD GPUs in cluster and data-center environments |
rocminfo |
Reports system information |
ROCm SMI |
C library for Linux that provides a user space interface for applications to monitor and control GPU applications |
ROCm Validation Suite |
Detects and troubleshoots common problems affecting AMD GPUs running in a high-performance computing environment |
Performance#
Component |
Description |
---|---|
ROCm Bandwidth Test |
Captures the performance characteristics of buffer copying and kernel read/write operations |
ROCm Compute Profiler |
Kernel-level profiling for machine learning and high performance computing (HPC) workloads |
ROCm Systems Profiler |
Comprehensive profiling and tracing of applications running on the CPU or the CPU and GPU |
ROCProfiler |
Profiling tool for HIP applications |
ROCprofiler-SDK |
Toolkit for developing analysis tools for profiling and tracing GPU compute applications. This toolkit is in beta and subject to change |
ROCTracer |
Intercepts runtime API calls and traces asynchronous activity |
Note
ROCprof Compute Viewer is a tool for visualizing and analyzing GPU thread trace data collected using rocprofv3. Note that ROCprof Compute Viewer is in an early access state. Running production workloads is not recommended.
Development#
Component |
Description |
---|---|
HIPIFY |
Translates CUDA source code into portable HIP C++ |
ROCm CMake |
Collection of CMake modules for common build and development tasks |
ROCdbgapi |
ROCm debugger API library |
ROCm Debugger (ROCgdb) |
Source-level debugger for Linux, based on the GNU Debugger (GDB) |
ROCr Debug Agent |
Prints the state of all AMD GPU wavefronts that caused a queue error by sending a SIGQUIT signal to the process while the program is running |
Compilers#
Component |
Description |
---|---|
HIPCC |
Compiler driver utility that calls Clang or NVCC and passes the appropriate include and library options for the target compiler and HIP infrastructure |
ROCm compilers |
ROCm LLVM compiler infrastructure |
An out-of-tree Fortran compiler targeting LLVM |
Runtimes#
Component |
Description |
---|---|
AMD Compute Language Runtime (CLR) |
Contains source code for AMD’s compute language runtimes: HIP and OpenCL |
HIP |
AMD’s GPU programming language extension and the GPU runtime |
ROCR-Runtime |
User-mode API interfaces and libraries necessary for host applications to launch compute kernels on available HSA ROCm kernel agents |