Skip to content
Snippets Groups Projects

The HPVM Compiler Infrastcuture

Documentation Status pipeline status

This repository contains the source code and documentation for the HPVM Compiler Infrastructure.

HPVM is a compiler for heterogeneous parallel system. For more about what HPVM is, see our website and publications: PPoPP'18 paper, OOPSLA'19 paper, PPoPP'21 paper.

HPVM is currently at version 2.0.

Getting Started with HPVM

The HPVM compiler infrastructure builds on the LLVM Compiler.

This quick start guide will help you get started with obtaining and building the HPVM source code.

For more detailed instructions on how to use HPVM and information on the different components, please refer to our online documentation.

Checkout HPVM

The HPVM source code can be checked out by cloning our repository as follows:

git clone --recursive -b main https://gitlab.engr.illinois.edu/llvm/hpvm-release.git

Run the install script

HPVM provides an install script that can be used to download the appropriate version of LLVM that is required for the current HPVM version, and build HPVM. This can be done as follows:

cd hpvm/hpvm
./install.sh [options]

some common options to the install script:

  • -h for usage information.
  • --ninja to use the Ninja build system.
  • -j<N> to specify number of threads while building.
  • D<string> to pass in CMAKE options. e.g. DCMAKE_BUILD_TYPE=Release will pass the -DCMAKE_BUILD_TYPE=Release option to cmake.

If no options are provided, the installer will use an interactive mode.

Please visit our Building HPVM page in the online documentation for further information.

Support

All questions can be directed to hpvm-dev@lists.cs.illinois.edu.