Skip to content
This repository has been archived by the owner on Oct 15, 2019. It is now read-only.

Install Minerva

Yutian Li edited this page Apr 27, 2015 · 12 revisions

Install Minerva

Requirements and Dependencies

OS

Minerva is built and tested on Ubuntu 14.04.1 LTS, although it should also work on any *nix system, as long as you have the correct libraries installed.

Libraries

Minerva depends on several packages. If they are not in the system search path, please set variable EXTERN_INCLUDE_PATH and EXTERN_LIB_PATH in configure.in accordingly.

  • CUDA 6.5
  • cuDNN v2

In addition, Minerva also depends on the following packages. Since system package managers usually have poor support for them, the script resolve_deps.sh can be used to help resolve. Running this script will download and install them in the deps directory relative to the root of the repository.

  • Boost
  • Boost.NumPy
  • glog
  • gflags
  • Protocol Buffers and its Python binding

Following packages are needed for use with Owl (Minerva's python binding). You could disable it by passing --disable-owl during configure if you only need c++ library (and thus none of the followings is needed).

  • Python library (python-dev)
  • LMDB and its Python binding
  • NumPy
  • SciPy

Please consult configure.in.example for a sample configuration of the paths.

Building Minerva

  1. Set CXX_COMPILER, and C_COMPILER in configure.in. g++-4.8 is strongly recommended.
  2. Set CUDA_ROOT to the root directory of CUDA SDK, if you have installed it to some non-default location; set CUDNN_ROOT to the root directory of CUDNN package.
  3. If you are using the provided resolve_deps.sh, then all the dependencies should be tracked by cmake; Otherwise, set EXTERN_INCLUDE_PATH, and EXTERN_LIB_PATH in configure.in to reflect any dependency not in the system search path. If there are more than one, use a semicolon-separated list.
  4. Run ./configure --prefix=/path/to/install <other_options>.
  5. Change directory into release (or debug for more verbose logging) and run make.

Building Owl

Owl is Minerva's python binding. With Owl, you could directly use Minerva's NDArray programming interface in python. In fact, when building Minerva, Owl is also built by default (one could turn this off by passing --disable-owl during configure).

To install owl, one could choose either:

  1. Run make install in release directory. This will build and install Minerva (libminerva.so) into install path and (libowl.so) into python module location (/path/to/minerva/owl/owl).
    • Make sure libowl.so can find libminerva.so (for example, by properly setting LD_LIBRARY_PATH to include path to libminerva.so). Check this by ldd /path/to/minerva/owl/owl/libowl.so.
  2. Choose either export PYTHONPATH=/path/to/minerva/owl or ./setup install --user in Minerva's root directory.

or we provide a simple script for you:

  1. Run source owl_environ.sh.

Both install method should work and you could test it by python -c 'import owl' or ./run_owl_shell.sh.

More on building

You could also specify options during configuration:

  1. Build debug version: add --build-debug
  2. Build mnist examples in c++: add --build-apps
  3. Build unit tests: add --build-tests (GoogleTest is required).
  4. Build without owl library: add --disable-owl
Clone this wiki locally