Terminology

ROCm is a software stack for programming on AMD GPUs. Essentially, ROCm is the software library for the GPU device. Users will program in a higher-level programming framework (such as HIP or OpenMP) which is then processed by a compiler into ROCm-compatible executable. Tools for working with ROCm compatible devices/applications include roc-prof, roc-tracer, roc-smi, as well as a debugging tool and an assembler/disassembler. 

HIP is a high-level programming framework. It can be used to program both for ROCm and CUDA devices.  ROCm provides a compiler wrapper called hipcc (similar to NVIDIA's nvcc).

Programming with HIP

Transitioning from CUDA

In general, users can replace "hip" in any "cuda" functions.

Know Issue with hipGetLastError

You MUST Call GetLastError Immediately After Kernel Launches!

The current behavior of hipGetLastError and hipPeekAtLastError may lead to silent errors in user applications. Please see the known issue page for details on how this bug manifests and an example of correct code.

GPU-aware MPI

See the MPI section on how to enable GPU-aware MPI. This will allow users to send GPU memory buffers directly via MPI calls. 

Additional Information

More information available in the AMD ROCm Learning Center.

See the slides for Programming the AMD Instinct™ MI300 APU.