Skip to content
Snippets Groups Projects
Commit 03f7d4de authored by Yifan Zhao's avatar Yifan Zhao
Browse files

Updated documents to include audience, submodule info, and doc-passing badge

parent 360dd5ef
No related branches found
No related tags found
No related merge requests found
# The HPVM Compiler Infrastructure
[![Documentation Status](https://readthedocs.org/projects/hpvm/badge/?version=latest)](https://hpvm.readthedocs.io/en/latest/?badge=latest)
This repository contains the source code and documentation for the HPVM Compiler Infrastructure.
HPVM is a compiler for heterogeneous parallel system.
......
......@@ -6,16 +6,41 @@ The HPVM Compiler Infrastructure
HPVM is a compiler for heterogeneous parallel system.
For more about what HPVM is, see `our website <https://publish.illinois.edu/hpvm-project/>`_
and publications:
`PPoPP'18 paper <https://dl.acm.org/doi/pdf/10.1145/3200691.3178493>`_,
`OOPSLA'19 paper <https://dl.acm.org/doi/10.1145/3360612>`_,
`PPoPP'21 paper <https://dl.acm.org/doi/10.1145/3437801.3446108>`_.
`HPVM (PPoPP'18) <https://dl.acm.org/doi/pdf/10.1145/3200691.3178493>`_,
`ApproxHPVM (OOPSLA'19) <https://dl.acm.org/doi/10.1145/3360612>`_,
`ApproxTuner (PPoPP'21) <https://dl.acm.org/doi/10.1145/3437801.3446108>`_.
This is the documentation of HPVM at **version 1.0**.
Audience
--------
TODO: write something here.
The intended audience for HPVM includes researchers and developers working in the areas of
compilers,programming languages, approximate computing, software optimization,
static and dynamic program analysis, and systems for machine learning.
`HPVM <https://dl.acm.org/doi/pdf/10.1145/3200691.3178493>`_
includes a retargetable compiler infrastructure that targets CPUs, CPUs, and accelerators
(this release does not include accelerator support)
and uses a portable compiler IR that explicitly represents data flow at the IR level,
and supports task, data, and pipelined parallelism.
HPVM provides an extensible platform that compiler and programming languages
researchers can use as part of their work.
`ApproxHPVM <https://dl.acm.org/doi/10.1145/3360612>`_
and `ApproxTuner <https://dl.acm.org/doi/10.1145/3437801.3446108>`_
extend the HPVM compiler with support for high-level linear algebra tensor operations
(e.g., convolution, matrix multiplication)
and a framework that optimizes tensor-based programs using approximations
that tradeoff accuracy for performance and/or energy.
ApproxHPVM and ApproxTuner support many popular CNN models.
ApproxTuner supports an approximation tuning system
that automatically selects per-operation approximation knobs
to maximize program performance,
while allowing users to specify an acceptable degradation in accuracy.
ApproxHPVM and ApproxTuner provide an extensible system that researchers in compilers,
approximate computing and machine learning can use to optimize their applications,
and experiment with new custom approximation techniques.
Documentation
-------------
......
......@@ -61,6 +61,10 @@ Checkout HPVM and go to directory ``./hpvm`` under project root:
git clone --recursive -b approx_hpvm_reorg --single-branch https://gitlab.engr.illinois.edu/llvm/hpvm.git
cd hpvm/
If you have already cloned the repository without using ``--recursive``,
the directory ``hpvm/projects/predtuner`` should be empty,
which can be fixed with ``git submodule update --recursive --init``.
HPVM needs to be able to find CUDA.
If CUDA is installed in your system's $PATH (e.g. if it was installed at the default location),
HPVM can find CUDA automatically.
......
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