From 03f7d4de13b234c25df0e0e2a867400fd1915d99 Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Sat, 27 Mar 2021 15:25:41 -0500 Subject: [PATCH] Updated documents to include audience, submodule info, and doc-passing badge --- README.md | 2 ++ hpvm/docs/index.rst | 33 +++++++++++++++++++++++++++++---- hpvm/docs/install.rst | 4 ++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c902d71c5f..0cfffa8444 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # The HPVM Compiler Infrastructure +[](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. diff --git a/hpvm/docs/index.rst b/hpvm/docs/index.rst index 694a51148d..8bf0744c50 100644 --- a/hpvm/docs/index.rst +++ b/hpvm/docs/index.rst @@ -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 ------------- diff --git a/hpvm/docs/install.rst b/hpvm/docs/install.rst index 4876cf960c..fa4a3f747b 100644 --- a/hpvm/docs/install.rst +++ b/hpvm/docs/install.rst @@ -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. -- GitLab