Build hipCUB from source#

To build hipCUB as part of the ROCm Core SDK, see TheRock build instructions. TheRock is the recommended way to build ROCm components from source.

Alternatively, you can build hipCUB standalone using the following instructions.

Prerequisites#

hipCUB has the following prerequisites on Linux:

amdclang++ is installed with ROCm. rocPRIM is automatically downloaded and installed by the CMake script.

hipCUB has the following prerequisites on Microsoft Windows:

  • HIP SDK for Windows

  • Python version 3.6 or later

  • Visual Studio 2019 with Clang support

  • Strawberry Perl

Get the hipCUB source code#

The hipCUB source code is available from the ROCm libraries GitHub repository. Use sparse checkout when cloning the hipCUB project:

git clone --no-checkout --filter=blob:none https://github.com/ROCm/rocm-libraries.git
cd rocm-libraries
git sparse-checkout init --cone
git sparse-checkout set projects/hipcub

Then use git checkout to check out the branch you need.

The develop branch is the default branch. The develop branch is intended for users who want to preview new features or contribute to the hipCUB code base.

If you don’t intend to contribute to the hipCUB code base and won’t be previewing features, use a branch that matches the version of ROCm installed on your system.

For build instructions, see Build hipCUB from source.

Build with CMake#

You can build and install hipCUB with CMake on Windows or Linux.

Before you begin, set CXX to amdclang++ or hipcc, and set CMAKE_CXX_COMPILER to the compiler’s absolute path. For example:

CXX=amdclang++
CMAKE_CXX_COMPILER=/opt/rocm/bin/amdclang++

Create the build directory under the hipcub root directory, then change directory to the build directory:

mkdir build
cd build

Generate the makefile using the cmake command:

cmake ../. [-D<OPTION1=VALUE1> [-D<OPTION2=VALUE2>] ...]

The available build options are:

  • BUILD_BENCHMARK: Set this to ON to build benchmark tests. Off by default.

  • BUILD_TEST: Set this to ON to build tests. Off by default.

  • BUILD_EXAMPLE: Set this to ON to build the hipCUB examples. Default is OFF.

  • USE_SYSTEM_LIB: Set to ON to use the installed hipCUB from the system when building the tests. Off by default. For this option to take effect, BUILD_TEST must be ON and the hipCUB install (with its dependencies) must be compatible with the version of the tests.

  • BUILD_ADDRESS_SANITIZER: Set this to ON to build with the Clang address sanitizer enabled. Default is OFF.

  • EXTERNAL_DEPS_FORCE_DOWNLOAD: Set this to ON to download the non-ROCm dependencies such as Google Test even if they’re already installed. Default is OFF.

  • BUILD_OFFLOAD_COMPRESS: Set this to OFF to prevent the --offload-compress switch from being passed to the compiler and compressing the binary. On by default.

  • USE_HIPCXX: Set this to ON to build with CMake HIP language support. Setting this to ON eliminates the need to use CXX=hipcc. Default is OFF.

  • ROCPRIM_FETCH_METHOD: Set this to the method to use to download rocPRIM. Can be set to PACKAGE, DOWNLOAD, or MONOREPO. Set to MONOREPO if rocPRIM isn’t already installed and you’re building hipCUB from within a clone of the rocm-libraries repository that also includes rocPRIM. Set to DOWNLOAD if rocPRIM isn’t installed and you aren’t in a clone of the rocm-libraries repository that includes rocPRIM. DOWNLOAD will clone the repository using sparse checkout so that only the necessary files are downloaded. Set to PACKAGE if rocPRIM is already installed. If you specify PACKAGE but rocPRIM isn’t installed, the files will be downloaded using the same method as the DOWNLOAD option. The default method is PACKAGE.

Note

If you’re using a version of git earlier than 2.25, -DROCPRIM_FETCH_METHOD=DOWNLOAD will download the entire rocm-libraries repository.

Build hipCUB using the generated make file:

make -j4

After you’ve built hipCUB, you can optionally generate tar, zip, and deb packages:

make package

Finally, install hipCUB:

make install

Build on Windows#

You can use rmake.py to build and install hipCUB on Microsoft Windows. You can also use CMake if you want more build and installation options.

rmake.py is located in the hipcub root directory. To build and install hipCUB, run:

python rmake.py -i

This command also downloads rocPRIM and installs it in C:\hipSDK.

The -c option builds all clients, including the unit tests:

python rmake.py -c

To see a complete list of rmake.py options, run:

python rmake.py --help