Skip to content
Snippets Groups Projects
user avatar
Adel Ejjeh authored
Merge branch 'hpvm-reorg-9-temp' of https://gitlab.engr.illinois.edu/llvm/hpvm into hpvm-reorg-9-temp
50b994ff
History
Name Last commit Last update
.hooks
hpvm
.gitignore
README.md

Heterogeneous Parallel Virtual Machine

This repository contains miscellaneous supporting materals for HPVM.

Paper

PPoPP'18 paper

Dependencies

You would need to download and install the following components for using NVIDIA GPUs to speed up your programs

  • CUDA 9.1

Getting source code and building HPVM

Checkout HPVM:

git clone https://gitlab.engr.illinois.edu/llvm/hpvm.git
git checkout hpvm-reorg-9 (this step may not be needed once code is mirrored on Github)

HPVM installer script can be used to dowwnload, configure and build HPMV along with LLVM and other subprojects including Clang.

bash install.sh

Specifically, the HPVM installer downloads the LLVM, Clang, compiler-rt, libcxxabi and lld, copies HPVM source into llvm/tools and build the entire tree. A modified LLVM C-Backend is also built as a part of HPVM and is currently used to generate OpenCL kernels for GPUs.

Alternatively, CMake can be run manually.

cd hpvm/build
cmake ../llvm [options]

Some common options that can be used with CMake are:

  • -DCMAKE_INSTALL_PREFIX=directory --- Specify for directory the full pathname of where you want the HPVM tools and libraries to be installed.

  • -DCMAKE_BUILD_TYPE=type --- Valid options for type are Debug, Release, RelWithDebInfo, and MinSizeRel. Default is Debug.

  • -DLLVM_ENABLE_ASSERTIONS=On --- Compile with assertion checks enabled (default is Yes for Debug builds, No for all other build types).

To use hpvm to compile benchmarks set environment variable LLVM_SRC_ROOT to llvm directory in your local repository

export LLVM_SRC_ROOT=<full path to hpvm>/llvm

Benchmarks

We are providing the following benchamrks with HPVM:

  • Select benchmarks from the Parboil benchmark suite, located under test/parboil.
  • An edge detection pipeline benchmark, located under test/pipeline.
  • A Camera ISP pipeline, curtosy of our collaborators at Harvard, located under test/cava.