Installing pre-built packages
HIP can be easily installed using pre-built binary packages using the package manager for your platform.
Prerequisites
HIP code can be developed either on AMD ROCm platform using HIP-Clang compiler, or a CUDA platform with nvcc installed.
AMD Platform
1 sudo apt install mesa-common-dev
4 sudo apt-get -y install rocm-dkms
Public link for Rocm installation https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html
HIP-Clang is the compiler for compiling HIP programs on AMD platform.
HIP-Clang can be built manually:
1 git clone -b rocm-3.9.x https://github.com/RadeonOpenCompute/llvm-project.git
3 mkdir -p build && cd build
4 cmake -DCMAKE_INSTALL_PREFIX=/opt/rocm/llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=1 -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" -DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt" ../llvm
Rocm device library can be manually built as following,
1 export PATH=/opt/rocm/llvm/bin:$PATH
2 git clone -b rocm-3.9.x https://github.com/RadeonOpenCompute/ROCm-Device-Libs.git
4 mkdir -p build && cd build
5 CC=clang CXX=clang++ cmake -DLLVM_DIR=/opt/rocm/llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_WERROR=1 -DLLVM_ENABLE_ASSERTIONS=1 -DCMAKE_INSTALL_PREFIX=/opt/rocm ..
NVIDIA Platform
HIP-nvcc is the compiler for HIP program compilation on NVIDIA platform.
- Add the ROCm package server to your system as per the OS-specific guide available here.
- Install the "hip-nvcc" package. This will install CUDA SDK and the HIP porting layer.
1 apt-get install hip-nvcc
- Default paths and environment variables:
- By default HIP looks for CUDA SDK in /usr/local/cuda (can be overriden by setting CUDA_PATH env variable).
- By default HIP is installed into /opt/rocm/hip (can be overridden by setting HIP_PATH environment variable).
- Optionally, consider adding /opt/rocm/bin to your path to make it easier to use the tools.
Building HIP from source
Build ROCclr
ROCclr is defined on AMD platform that HIP use Radeon Open Compute Common Language Runtime (ROCclr), which is a virtual device interface that HIP runtimes interact with different backends. See https://github.com/ROCm-Developer-Tools/ROCclr
1 git clone -b rocm-3.9.x https://github.com/ROCm-Developer-Tools/ROCclr.git
2 export ROCclr_DIR="$(readlink -f ROCclr)"
3 git clone -b rocm-3.9.x https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git
4 export OPENCL_DIR="$(readlink -f ROCm-OpenCL-Runtime)"
6 mkdir -p build;cd build
7 cmake -DOPENCL_DIR="$OPENCL_DIR" -DCMAKE_INSTALL_PREFIX=/opt/rocm/rocclr ..
9 sudo make install (this is optional)
Build HIP
1 git clone -b rocm-3.9.x https://github.com/ROCm-Developer-Tools/HIP.git
2 export HIP_DIR="$(readlink -f HIP)"
4 mkdir -p build; cd build
5 cmake -DCMAKE_BUILD_TYPE=Release -DHIP_COMPILER=clang -DHIP_PLATFORM=rocclr -DCMAKE_PREFIX_PATH="$ROCclr_DIR/build;/opt/rocm/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
Default paths and environment variables
- By default HIP looks for HSA in /opt/rocm/hsa (can be overridden by setting HSA_PATH environment variable).
- By default HIP is installed into /opt/rocm/hip (can be overridden by setting HIP_PATH environment variable).
- By default HIP looks for clang in /opt/rocm/llvm/bin (can be overridden by setting HIP_CLANG_PATH environment variable)
- By default HIP looks for device library in /opt/rocm/lib (can be overridden by setting DEVICE_LIB_PATH environment variable).
- Optionally, consider adding /opt/rocm/bin to your PATH to make it easier to use the tools.
- Optionally, set HIPCC_VERBOSE=7 to output the command line for compilation.
After installation, make sure HIP_PATH is pointed to /where/to/install/hip
Verify your installation
Run hipconfig (instructions below assume default installation path) :
1 /opt/rocm/bin/hipconfig --full
Compile and run the square sample.