Skip to content
Snippets Groups Projects
Commit a7d9f35e authored by Akash Kothari's avatar Akash Kothari :speech_balloon:
Browse files

Update README.md with some major changes

parent d0b8aa31
No related branches found
No related tags found
No related merge requests found
# Heterogeneous Parallel Virtual Machine # Heterogeneous Parallel Virtual Machine
This repository contains miscellaneous supporting materals for HPVM. This repository contains the source code and documentation for the HPVM Compiler Infrastructure.
The README briefly describes how to get started with building and installing HPVM. It also provides a
benchmark suite to test the HPVM infrastructure.
## Paper ## Paper
...@@ -12,8 +15,12 @@ This repository contains miscellaneous supporting materals for HPVM. ...@@ -12,8 +15,12 @@ This repository contains miscellaneous supporting materals for HPVM.
[HPVM-C Language Specification](/hpvm/docs/hpvm-c.md) [HPVM-C Language Specification](/hpvm/docs/hpvm-c.md)
## Dependencies ## Dependencies
You would need to download and install the following components for using NVIDIA GPUs to speed up your programs You would need to download and install the following components for to use HPVM.
* GCC (>=5.1.0)
* CMake (>=3.4.3)
* Python (>=2.7)
* GNU Make (>=3.79.1)
* CUDA 9.1 * CUDA 9.1
## Getting source code and building HPVM ## Getting source code and building HPVM
...@@ -24,18 +31,37 @@ git clone https://gitlab.engr.illinois.edu/llvm/hpvm.git ...@@ -24,18 +31,37 @@ 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) 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. HPVM installer script can be used to download, configure and build HPVM along with LLVM and other subprojects including Clang.
```shell ```shell
bash install.sh bash install.sh
``` ```
Specifically, the HPVM installer downloads the LLVM, Clang, compiler-rt, libcxxabi and lld, copies HPVM source into Specifically, the HPVM installer downloads 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. llvm/tools and builds the entire tree. It also builds a modified LLVM C-Backend as a part of HPVM and is currently used
to generate OpenCL kernels for GPUs.
In the beginning of the building process, the installer provides users the choice of automatically or manually building HPVM.
If HPVM is selected to be automatically built, the installer allows users to type in the number of threads they want to use.
The default number of threads used to build HPVM is 2.
Alternatively, CMake can be run manually.
```shell
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 In order to manually build and install HPVM, GNU Make can be run using the following.
```shell ```shell
export LLVM_SRC_ROOT=<full path to hpvm>/llvm make -j<Number of threads>
make installl
``` ```
With all the aforementioned steps, HPVM should be built, installed and ready for use!
### Benchmarks ### Benchmarks
We are providing the following benchamrks with HPVM: We are providing the following benchamrks with HPVM:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment