Skip to content
Snippets Groups Projects
user avatar
Adel Ejjeh authored
b30e5f02
History
Name Last commit Last update
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

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. LLVM C-Backend is also built as a part of HPVM and is currently used to perform code generation in OpenCL 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).

Building hpvm runtime

HPVM also includes a runtime library which comprises of low-level, target-specific wrappers required by HPVM's code generation.

cd projects/visc-rt
make
cd ..

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

Benchmark Suites

Benchmark suites have been migrated to the LLVM 4.0 build. They are located in VISC.