This page gives instructions on how to build and install the nnvm compiler package from scratch on various systems. It consists of two steps:
- First build the shared library from the C++ codes (
libnnvm_compiler.so
for linux/osx andlibnnvm_compiler.dll
for windows). - Setup for the language packages (e.g. Python Package).
To get started, clone nnvm repo from github. It is important to clone the submodules along, with --recursive
option.
git clone --recursive https://github.com/dmlc/nnvm
For windows users who use github tools, you can open the git shell, and type the following command.
git submodule init
git submodule update --recursive
NNVM compiler depend on TVM and TOPI, so make sure you install them by following TVM document. Note that it is necessary to build TVM with LLVM support to take full benefit of NNVM compiler.
Our goal is to build the shared library:
- On Linux/OSX the target library is
libnnvm_compiler.so
- On Windows the target library is
libnnvm_compiler.dll
The minimal building requirement is
- A recent c++ compiler supporting C++ 11 (g++-4.8 or higher)
You can edit make/config.mk
to change the compile options, and then build by
make
. If everything goes well, we can go to the specific language installation section.
NNVM support build via MSVC using cmake. The minimum required VS version is Visual Studio Community 2015 Update 3. In order to generate the VS solution file using cmake, make sure you have a recent version of cmake added to your path. NNVM compiler depend on tvm, please follow TVM document to build the TVM windows library. You can build the TVM in the submodule folder under nnvm.
After tvm is built, we can then start to build nnvm, using the following command.
mkdir build
cd build
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CONFIGURATION_TYPES="Release" ..
This will generate the VS project using the MSVC 14 64 bit generator. Open the .sln file in the build directory and build with Visual Studio.
The python package is located at python. There are several ways to install the package, in all these cases the TVM library must be present in the python env:
-
Set the environment variable
PYTHONPATH
to tell python where to find the library. For example, assume we clonednnvm
on the home directory~
. then we can added the following line in~/.bashrc
. It is recommended for developers who may change the codes. The changes will be immediately reflected once you pulled the code and rebuild the project (no need to callsetup
again)export PYTHONPATH=/path/to/nnvm/python:${PYTHONPATH}
-
Install nnvm python bindings by
setup.py
:# install nnvm package for the current user # NOTE: if you installed python via homebrew, --user is not needed during installaiton # it will be automatically installed to your user directory. # providing --user flag may trigger error during installation in such case. cd python; python setup.py install --user; cd ..