-
Notifications
You must be signed in to change notification settings - Fork 172
Install Minerva
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.
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.
- Set
CXX_COMPILER
, andC_COMPILER
inconfigure.in
.g++-4.8
is strongly recommended. - Set
CUDA_ROOT
to the root directory of CUDA SDK, if you have installed it to some non-default location; setCUDNN_ROOT
to the root directory of CUDNN package. - If you are using the provided
resolve_deps.sh
, then all the dependencies should be tracked by cmake; Otherwise, setEXTERN_INCLUDE_PATH
, andEXTERN_LIB_PATH
inconfigure.in
to reflect any dependency not in the system search path. If there are more than one, use a semicolon-separated list. - Run
./configure --prefix=/path/to/install <other_options>
. - Change directory into
release
(ordebug
for more verbose logging) and runmake
.
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:
- Run
make install
inrelease
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 findlibminerva.so
(for example, by properly setting LD_LIBRARY_PATH to include path tolibminerva.so
). Check this byldd /path/to/minerva/owl/owl/libowl.so
.
- Make sure
- 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:
- 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
.
You could also specify options during configuration:
- Build debug version: add
--build-debug
- Build mnist examples in c++: add
--build-apps
- Build unit tests: add
--build-tests
(GoogleTest is required). - Build without owl library: add
--disable-owl