ROCm LLVM compiler infrastructure

ROCm LLVM compiler infrastructure#

The AMD llvm-project is a fork of llvm/llvm-project. The AMD code is open and hosted at ROCm/llvm-project.

ROCm includes multiple compilers of varying origins and purposes as described in the following table:

Name

Description

amdclang++

Clang/LLVM-based compiler that is part of rocm-llvm package. The source code is available at ROCm/llvm-project.

AOCC

Closed-source clang-based compiler that includes additional CPU optimizations. Offered as part of ROCm via the rocm-llvm-alt package. For details, see https://developer.amd.com/amd-aocc.

HIP-Clang

Another name for the amdclang++ compiler.

HIPIFY

Tools used to automatically translate CUDA source code into portable HIP C++, including hipify-clang and hipify-perl. The source code is available at ROCm/HIPIFY.

hipcc

HIP compiler driver utility that invokes clang or nvcc and passes the appropriate include and library options for the target compiler and HIP infrastructure. See the ROCm/llvm-project for more information.

AMD ROCm also provides additional open-source utilities and libraries for building GPU code located in the llvm-project/amd directory:

Name

Description

amd/comgr

The Code Object Manager API, designed to simplify linking, compiling, and inspecting code objects. See the llvm-project/amd/comgr/README for more information.

amd/device-libs

The sources and CMake build system for a set of AMD-specific device-side language runtime libraries. See the llvm-project/amd/device-libs/README for more information.