Install TVM and NNVM from source

Free book on Binary Tree

Get this book -> Problems on Array: For Interviews and Competitive Programming

Reading time: 10 minutes | Installing time: 15 minutes

In this guide, we will walk you through the process of installing TVM and NNVM compiler from source along with all its dependencies such as HalideIR, DMLC-CORE, DLPACK and COMPILER-RT. Once installed, you can enjoy compiling models in any frameworks on any backend of your choice.


Step 1: Clone the source

Clone the source code of TVM using the following command:

git clone --recursive

Once done, move to the cloned repository using the following command:

cd tvm

Step 2: Prepare your build settings

Update your system and install the dependencies:

sudo apt-get update
sudo apt-get install -y python python-dev python-setuptools gcc libtinfo-dev zlib1g-dev
mkdir build
cp cmake/config.cmake build

Edit build/config.cmake to change SET(USE_LLVM OFF) to SET(USE_LLVM ON).

If you want to use another backend like CUDA, then change SET(USE_CUDA OFF) to SET(USE_CUDA ON) and accordingly for other available backends.

vi build/config.cmake

Step 3: Install LLVM as a backend

For TVM, you need a backend like LLVM, CUDA, METAL and others. We will install LLVM as a backend:

sudo apt-get install clang-6.0 lldb-6.0 lld-6.0

Step 4: Build the shared libraries

cd build
cmake ..
make -j4

Step 5: Build dependent libraries

First, we need to build the Python libraries of TVM:

cd ..
cd python
python install --user
cd ..

Next, we need to build NNVM:

cd nnvm
python install --user
cd ..

Next, we need to build the dependent libraries like HalideIR:

cd 3rdparty
cd HalideIR
make -j4
cd ..
cd dmlc-core
make -j4
cd ..
cd dlpack
make -j4
cd ..
cd ..

Step 6: Install some other dependencies

pip install --user numpy decorator
pip install --user tornado psutil xgboost
pip install --user tornado

Congratulations, you have successfully installed TVM Stack

You can, now, move to using TVM and realizing its performance compared to other frameworks.