diff --git a/README.md b/README.md index 1ac8a32868c51f192646af9171e49e6416f60da2..c0a5d9cbad6d7d9246fbbe6cb99fa11bc79d0a67 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,24 @@ please refer to our [online documentation](https://hpvm.readthedocs.io/en/latest The HPVM source code can be checked out by cloning our repository as follows: ```shell git clone --recursive -b main https://gitlab.engr.illinois.edu/llvm/hpvm-release.git +cd hpvm-release +``` + +### Python Environment + +It is strongly recommended to use some Python virtual environment, as HPVM will install a few Python packages during +this installation process. These packages are only required for Tensor-domain extensions ApproxHPVM and ApproxTuner. + +If you use Anaconda for package management, we provide a conda environment file that covers all Python and package +requirements (hpvm/env.yaml can be found in the repository): + +```shell +conda env create -n hpvm -f hpvm/env.yaml +``` + +This creates the conda environment hpvm. If you use this method, remember to activate the environment each time you enter a bash shell: +```shell +conda activate hpvm ``` ### Run the install script @@ -34,7 +52,7 @@ git clone --recursive -b main https://gitlab.engr.illinois.edu/llvm/hpvm-release HPVM provides an install script that can be used to download the appropriate version of LLVM that is required for the current HPVM version, and build HPVM. This can be done as follows: ``` -cd hpvm/hpvm +cd hpvm ./install.sh [options] ``` some common options to the install script: diff --git a/hpvm/docs/build-hpvm.rst b/hpvm/docs/build-hpvm.rst index ddc56ff22db90f8dd6970dd873e3e5434281a361..c24b430a876c9f1f403bed0d1f549f88b224f483 100644 --- a/hpvm/docs/build-hpvm.rst +++ b/hpvm/docs/build-hpvm.rst @@ -29,7 +29,10 @@ Dependencies * CUDA (>=9.0, <=10.2) with CUDNN 7 + * GCC (<8.0) + * CUDNN 7 is unsupported beyond CUDA 10.2 (starting from CUDA 11) + * OpenMP (>= 4.0) @@ -39,32 +42,6 @@ Dependencies * In addition, each version of CUDA-nvcc requires GCC to be not newer than a certain version. See `here <https://gist.github.com/ax3l/9489132>`__ for the support matrix. -Python Environment -^^^^^^^^^^^^^^^^^^ - -It is strongly recommended to use some Python virtual environment, -as HPVM will install a few Python packages during this installation process. -These packages are only required for Tensor-domain extensions ``ApproxHPVM`` and ``ApproxTuner``. - -* Some HPVM Python packages contain executables. If you don't use a virtual environment, - these executables are installed to your local ``bin`` directory, usually ``$HOME/.local/bin``. - Please ensure this directory is in your `$PATH` variable. - Below it is assumed that these executables are visible through `$PATH`. - -If you use Anaconda for package management, -we provide a conda environment file that covers all Python and package requirements -(``hpvm/env.yaml`` can be found in the repository): - -.. code-block:: bash - - conda env create -n hpvm -f hpvm/env.yaml - -This creates the conda environment ``hpvm``. -If you use this method, remember to activate the environment each time you enter a bash shell: - -.. code-block:: bash - - conda activate hpvm Supported Operating Systems --------------------------- @@ -106,6 +83,9 @@ tested with our FPGA back end and confirmed to work: * Intel Arria 10 GX FPGA Development Kit + + + Cloning HPVM ------------ @@ -124,6 +104,34 @@ which can be fixed with ``git submodule update --recursive --init``. .. If CUDA is installed in your system's ``$PATH`` (e.g. if it was installed at the default location), .. HPVM can find CUDA automatically. + +Python Environment +^^^^^^^^^^^^^^^^^^ + +It is strongly recommended to use some Python virtual environment, +as HPVM will install a few Python packages during this installation process. +These packages are only required for Tensor-domain extensions ``ApproxHPVM`` and ``ApproxTuner``. + +* Some HPVM Python packages contain executables. If you don't use a virtual environment, + these executables are installed to your local ``bin`` directory, usually ``$HOME/.local/bin``. + Please ensure this directory is in your `$PATH` variable. + Below it is assumed that these executables are visible through `$PATH`. + +If you use Anaconda for package management, +we provide a conda environment file that covers all Python and package requirements +(``env.yaml`` can be found in the repository): + +.. code-block:: bash + + conda env create -n hpvm -f env.yaml + +This creates the conda environment ``hpvm``. +If you use this method, remember to activate the environment each time you enter a bash shell: + +.. code-block:: bash + + conda activate hpvm + Using HPVM installer Script --------------------------- @@ -285,8 +293,7 @@ Tests We provide a number of test cases written in HPVM. -``make`` targets ``check-hpvm-pass``, ``check-hpvm-dnn``, ``check-hpvm-tensor-rt``, -test the various components of HPVM. +``make`` targets ``check-hpvm-pass``, ``check-hpvm-dnn``, ``check-hpvm-tensor-rt``, ``check-hetero-pass`` test the various components of HPVM. You can run tests by simply providing the appropriate target to ``make``: for example, .. code-block:: shell