ROCm Core SDK components#
The ROCm Core SDK is the foundation of the ROCm software stack. It provides the libraries, runtimes, compilers, and tools needed to develop and run GPU-accelerated applications on AMD hardware.
Math and compute libraries#
A comprehensive set of GPU-accelerated math libraries covering dense and sparse linear algebra, FFTs, random number generation, and more.
Libraries prefixed with
roc*are native, high-performance implementations written in HIP specifically for AMD GPUs.Libraries prefixed with
hip*are portable wrappers that implement NVIDIA CUDA-equivalent APIs, allowing CUDA applications to be ported to AMD GPUs with minimal code changes.
Libraries include:
Composable Kernel – Provides a programming model for writing performance critical kernels for machine learning workloads across multiple architectures.
hipBLAS – BLAS-marshalling library that supports rocBLAS and cuBLAS backends.
hipBLASLt – Provides general matrix-matrix operations with a flexible API and extends functionalities beyond traditional BLAS library.
hipCUB – Thin header-only wrapper library on top of rocPRIM or CUB that allows project porting using the CUB library to the HIP layer.
hipFFT – Fast Fourier Transforms (FFT)-marshalling library that supports rocFFT or cuFFT backends.
hipRAND – Ports CUDA applications that use the cuRAND library into the HIP layer.
hipSOLVER – LAPACK-marshalling library that supports rocSOLVER and cuSOLVER backends.
hipSPARSE – SPARSE-marshalling library that supports rocSPARSE and cuSPARSE backends.
MIOpen – An open source deep-learning library.
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.
rocPRIM – Header-only library for HIP parallel primitives.
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).
rocThrust – Parallel algorithm library.
rocWMMA – C++ library for accelerating mixed-precision matrix multiply-accumulate (MMA) operations.
Communication libraries#
Runtime and compilers#
HIP – A C++ runtime API and kernel programming language designed for AMD GPUs. By providing an interface closely aligned with NVIDIA CUDA, HIP allows developers to write portable applications and efficiently migrate existing CUDA code to AMD platforms.
HIPIFY – Translates CUDA source code into portable HIP C++.
LLVM – AMD’s LLVM-based compiler infrastructure, including the ROCm device compiler (amdclang), which compiles HIP and OpenCL code for AMD GPUs.
SPIRV-LLVM-Translator
Profiling and debugging tools#
ROCdbgapi – ROCm debugger API library.
ROCgdb – Source-level debugger for Linux, based on the GNU Debugger (GDB).
ROCm Compute Profiler – Kernel-level profiling for machine learning and higithub_repo performance computing (HPC) workloads.
ROCm Systems Profiler – Comprehensive profiling and tracing of applications running on the CPU or the CPU and GPU.
ROCprofiler-SDK – Toolkit for developing analysis tools for profiling and tracing GPU compute applications.
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.
Control and monitoring tools#
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.
Media libraries#
Storage#
hipFile – AMD’s Infinity Storage library that provides direct-to-GPU I/O for the ROCm platform.