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
Switch to hpvm-dev
git checkout hpvm-dev
Build hpvm
mkdir install
mkdir build && cd build
cmake ../llvm -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD="X86" -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.