Installation

You may choose one of two methods to install treelite on your system:

Compile treelite from the source

Installation consists of two steps:

  1. Build the shared libraries from C++ code (See the note below for the list.)
  2. Install the Python package.

Note

List of libraries created

There will be two libraries created: the main library, for producing optimized prediction subroutines; and the runtime library, for deploying these subroutines in the wild for actual prediction tasks.

Operating System Main library Runtime library
Windows treelite.dll treelite_runtime.dll
Mac OS X libtreelite.dylib libtreelite_runtime.dylib
Linux / other UNIX libtreelite.so libtreelite_runtime.so

To get started, clone treelite repo from GitHub. It is important to clone the submodules with --recursive option.

git clone --recursive https://github.com/dmlc/treelite.git
cd treelite

The next step is to build the shared libraries.

1-1. Compiling shared libraries on Linux and Mac OS X

Here, we use CMake to generate a Makefile:

mkdir build
cd build
cmake ..

Once CMake finished running, simply invoke GNU Make to obtain the shared libraries.

make

The compiled libraries will be under the lib/ directory.

Note

Compiling treelite with multithreading on Mac OS X

The default clang installation on Mac OS X does not support OpenMP, the language construct for multithreading. To enable multithreading in treelite, we recommend that you install gcc 7.x using Homebrew:

brew install gcc@7

After g++ is installed, run CMake again with gcc as the C++ compiler:

cmake .. -DCMAKE_CXX_COMPILER=g++-7 -DCMAKE_C_COMPILER=gcc-7

1-2. Compiling shared libraries on Windows

We can use CMake to generate a Visual Studio project. The following snippet assumes that Visual Studio 2017 is installed. Adjust the version depending on the copy that’s installed on your system.

mkdir build
cd build
cmake .. -G"Visual Studio 15 2017 Win64"

Note

Visual Studio 2015 or newer is required

A large part of treelite has been written using the C++11 standard. Visual Studio 2015 is the first version that supports the new standard to fullest extent.

Once CMake finished running, open the generated solution file (treelite.sln) in Visual Studio. From the top menu, select Build > Build Solution. The compiled libraries will be under the lib/ directory.

2. Installing Python package

The Python package is located at the python subdirectory. There are several ways to install the package:

1. Install system-wide, which requires root permission

cd python
sudo python setup.py install

You will need Python setuptools module for this to work. It is often part of the core Python installation. Should it be necessary, the package can be installed using pip:

pip install -U pip setuptools

2. Install for only current user

This is useful if you do not have the administrative rights.

cd python
python setup.py develop --user

Note

Recompiling treelite

Every time the C++ portion of treelite gets re-compiled, the Python package must be re-installed for the new library to take effect.

3. Set the environment variable PYTHONPATH to locate treelite package

Only set the environment variable PYTHONPATH to tell Python where to find the treelite package. This is useful for developers, as any changes made to C++ code will be immediately visible to Python side without re-running setup.py.

export PYTHONPATH=path/to/treelite/python
python          # enter interactive session

Note

Compiling with Protocol Buffers support

If your system has Protocol Buffers (google/protobuf) library installed, treelite will be compiled with Protocol Buffers support. That is, you will able to read tree ensemble models that had been serialized using Protocol Buffers. Protocol Buffers support is strictly optional; treelite can be compiled without it. Should you decide to use Protocol Buffers, you should specify your ensemble model according to the specification src/tree.proto.

Binary releases hosted on PyPI have been compiled with Protocol Buffers support.

On Windows, you should specify the root directory containing Protobuf compilers and libraries by setting the environment variable CMAKE_PREFIX_PATH as follows:

mkdir build
cd build

:: Specify location of protobuf (Protocol Buffers)
set CMAKE_PREFIX_PATH=C:\path\to\protobuf
cmake .. -G"Visual Studio 15 2017 Win64"