Heterogeneous Parallel Virtual Machine
This repository contains miscellaneous supporting materals for HPVM.
Paper
Dependencies
You would need to download and install the following components for using AVX and NVIDIA GPUs to speed up your programs
- Intel OpenCL SDK for Linux from software.intel.com/sdk/opencl. Follow the installation instructions (no special requirements).
- CUDA
Build
# Get dependencies
cd llvm/projects
git clone https://github.com/llvm-mirror/compiler-rt
git checkout release_40
cd ../..
Switch to 4.0 branch
git checkout update_llvm4
Build hpvm
mkdir install
mkdir build && cd build
cmake ../llvm -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="X86;NVPTX" -DCMAKE_INSTALL_PREFIX=../install
make -j<number of threads you want to use to build hpvm>
Build hpvm runtime
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.
Running an example (sgemm in parboil)
cd llvm/test/VISC/parboil/benchmarks/sgemm
make
make run
Other Old Components
Search this repository for "visc", case-insensitive.