Graphics Hardware Codexery

ROCm

AMD's open-source GPU computing stack for HPC and machine learning.

ROCm

ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming, spanning domains such as general-purpose computing on GPUs (GPGPU), high-performance computing (HPC), and heterogeneous computing. It offers several programming models including HIP, OpenMP, and OpenCL, and is notable for being free, libre, and open-source software (except GPU firmware blobs), distributed under various licenses. The name initially stood for Radeon Open Compute platform but no longer functions as an acronym due to trademark issues.

Quick Facts

Developer
AMD
Genre
GPGPU libraries and APIs
Released
2016-11-14
Repo
Meta-repository https: · github.com/ROCm/ROCm
Operating System
Linux, Windows
Platform
Supported GPUs
Programming Language
C, C++, Python, Fortran, Julia
Middleware
HIP
Engine
AMDgpu kernel driver, HIPCC, a LLVM-based compiler
Replaces
Close to metal, Stream, HSA
License
MIT License

Facts from the source article.

Lore & Background

ROCm was launched around 2016 with the Boltzmann Initiative, building upon previous AMD GPU stacks such as Close to Metal (which became Stream) and tools tracing back to GPUOpen and the Heterogeneous System Architecture (HSA). The stack originally aimed to use HSAIL, a middle-level hardware-agnostic intermediate representation for JIT compilation, but this approach was dropped; ROCm now builds only GPU code using LLVM with its AMDGPU backend, though research on enhanced modularity with LLVM MLIR continues.

ROCm ranges from the kernel driver to end-user applications. It is primarily targeted at discrete professional GPUs, but consumer GPUs and APUs of the same architecture as supported professional GPUs are known to work—for example, all professional RDNA 2 GPUs are officially supported by ROCm 5.x, and users report that consumer RDNA 2 units like the Radeon 6800M APU and Radeon 6700XT also work. The stack includes a kernel-space component (ROCk) and roughly a hundred user-space modules, with an unofficial typographic policy of uppercase 'ROC' followed by lowercase for low-level libraries (e.g., ROCt) and the reverse for user-facing libraries (e.g., rocBLAS).

ROCm competes with Nvidia CUDA (closed-source) and Intel OneAPI. It is gaining significant traction in the top 500 supercomputers and is used with the exascale supercomputers El Capitan and Frontier. AMD is active in the LLVM community, but upstreaming lags as of January 2022, leading AMD to package various LLVM forks for proprietary optimizations, debug support, and OpenMP offloading.

Reader's Guide

ROCm's significance lies in its role as AMD's primary open-source GPU computing stack, providing an alternative to Nvidia's closed-source CUDA. It supports a wide range of programming models (HIP, OpenMP, OpenCL) and has gained traction in high-performance computing, notably powering the exascale supercomputers El Capitan and Frontier. The stack's open-source nature (except GPU firmware blobs) has fostered a growing third-party ecosystem, with Linux distributions like Arch Linux, Gentoo, Debian, Fedora, GNU Guix, and NixOS packaging it natively, and Spack packages available. Its machine learning ecosystem includes backends for PyTorch, TensorFlow, ONNX, MXNet, CuPy, MIOpen, Caffe, Iree (using LLVM MLIR), and llama.cpp. The stack's legacy includes its evolution from earlier AMD GPU stacks (Close to Metal, Stream, GPUOpen, HSA) and its adaptation to a six-week release cycle announced in July 2026. Despite lagging behind competitors in OpenCL support (shipping OpenCL 2.2 as of January 2022), ROCm's integration with tools like Blender (HIP compute kernels for Cycles renderer since version 3.0) and Julia (via AMDGPU.jl) demonstrates its versatility. The stack's architecture—from kernel driver (ROCk) through thunk (ROCt), runtime (ROCr), and high-level libraries (rocBLAS, rocSOLVER)—provides a comprehensive framework for GPU programming, though its primary focus on professional hardware limits consumer GPU support.

Did You Know?

More in Graphics Hardware 1-24

Spotted an error? Know more?

Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced

Comments

Loading…
Open in the interactive codex →