|
--- |
|
title: Installation |
|
--- |
|
|
|
# Installation |
|
|
|
Prior to installing, have a glance through this guide and take note of the details for your platform. |
|
We install and run Caffe on Ubuntu 16.04–12.04, OS X 10.11–10.8, and through Docker and AWS. |
|
The official Makefile and `Makefile.config` build are complemented by a [community CMake build](#cmake-build). |
|
|
|
**Step-by-step Instructions**: |
|
|
|
- [Docker setup](https://github.com/BVLC/caffe/tree/master/docker) *out-of-the-box brewing* |
|
- [Ubuntu installation](install_apt.html) *the standard platform* |
|
- [Debian installation](install_apt_debian.html) *install caffe with a single command* |
|
- [OS X installation](install_osx.html) |
|
- [RHEL / CentOS / Fedora installation](install_yum.html) |
|
- [Windows](https://github.com/BVLC/caffe/tree/windows) *see the Windows branch led by Guillaume Dumont* |
|
- [OpenCL](https://github.com/BVLC/caffe/tree/opencl) *see the OpenCL branch led by Fabian Tschopp* |
|
- [AWS AMI](https://aws.amazon.com/marketplace/pp/B01M0AXXQB) *official deep learning amazon machine image from AWS* |
|
|
|
**Overview**: |
|
|
|
- [Prerequisites](#prerequisites) |
|
- [Compilation](#compilation) |
|
- [Hardware](#hardware) |
|
|
|
When updating Caffe, it's best to `make clean` before re-compiling. |
|
|
|
## Prerequisites |
|
|
|
Caffe has several dependencies: |
|
|
|
* [CUDA](https://developer.nvidia.com/cuda-zone) is required for GPU mode. |
|
* library version 7+ and the latest driver version are recommended, but 6.* is fine too |
|
* 5.5, and 5.0 are compatible but considered legacy |
|
* [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) via ATLAS, MKL, or OpenBLAS. |
|
* [Boost](http://www.boost.org/) >= 1.55 |
|
* `protobuf`, `glog`, `gflags`, `hdf5` |
|
|
|
Optional dependencies: |
|
|
|
* [OpenCV](http://opencv.org/) >= 2.4 including 3.0 |
|
* IO libraries: `lmdb`, `leveldb` (note: leveldb requires `snappy`) |
|
* cuDNN for GPU acceleration (v7) |
|
|
|
Pycaffe and Matcaffe interfaces have their own natural needs. |
|
|
|
* For Python Caffe: `Python 2.7` or `Python 3.3+`, `numpy (>= 1.7)`, boost-provided `boost.python` |
|
* For MATLAB Caffe: MATLAB with the `mex` compiler. |
|
|
|
**cuDNN Caffe**: for fastest operation Caffe is accelerated by drop-in integration of [NVIDIA cuDNN](https://developer.nvidia.com/cudnn). To speed up your Caffe models, install cuDNN then uncomment the `USE_CUDNN := 1` flag in `Makefile.config` when installing Caffe. Acceleration is automatic. The current version is cuDNN v7; older versions are supported in older Caffe. |
|
|
|
**CPU-only Caffe**: for cold-brewed CPU-only Caffe uncomment the `CPU_ONLY := 1` flag in `Makefile.config` to configure and build Caffe without CUDA. This is helpful for cloud or cluster deployment. |
|
|
|
### CUDA and BLAS |
|
|
|
Caffe requires the CUDA `nvcc` compiler to compile its GPU code and CUDA driver for GPU operation. |
|
To install CUDA, go to the [NVIDIA CUDA website](https://developer.nvidia.com/cuda-downloads) and follow installation instructions there. Install the library and the latest standalone driver separately; the driver bundled with the library is usually out-of-date. **Warning!** The 331.* CUDA driver series has a critical performance issue: do not use it. |
|
|
|
For best performance, Caffe can be accelerated by [NVIDIA cuDNN](https://developer.nvidia.com/cudnn). Register for free at the cuDNN site, install it, then continue with these installation instructions. To compile with cuDNN set the `USE_CUDNN := 1` flag set in your `Makefile.config`. |
|
|
|
Caffe requires BLAS as the backend of its matrix and vector computations. |
|
There are several implementations of this library. The choice is yours: |
|
|
|
* [ATLAS](http://math-atlas.sourceforge.net/): free, open source, and so the default for Caffe. |
|
* [Intel MKL](http://software.intel.com/en-us/intel-mkl): commercial and optimized for Intel CPUs, with [free](https://registrationcenter.intel.com/en/forms/?productid=2558) licenses. |
|
1. Install MKL. |
|
2. Set up MKL environment (Details: [Linux](https://software.intel.com/en-us/node/528499), [OS X](https://software.intel.com/en-us/node/528659)). Example: *source /opt/intel/mkl/bin/mklvars.sh intel64* |
|
3. Set `BLAS := mkl` in `Makefile.config` |
|
* [OpenBLAS](http://www.openblas.net/): free and open source; this optimized and parallel BLAS could require more effort to install, although it might offer a speedup. |
|
1. Install OpenBLAS |
|
2. Set `BLAS := open` in `Makefile.config` |
|
|
|
### Python and/or MATLAB Caffe (optional) |
|
|
|
#### Python |
|
|
|
The main requirements are `numpy` and `boost.python` (provided by boost). `pandas` is useful too and needed for some examples. |
|
|
|
You can install the dependencies with |
|
|
|
pip install -r requirements.txt |
|
|
|
but we suggest first installing the [Anaconda](https://store.continuum.io/cshop/anaconda/) Python distribution, which provides most of the necessary packages, as well as the `hdf5` library dependency. |
|
|
|
To import the `caffe` Python module after completing the installation, add the module directory to your `$PYTHONPATH` by `export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH` or the like. You should not import the module in the `caffe/python/caffe` directory! |
|
|
|
*Caffe's Python interface works with Python 2.7. Python 3.3+ should work out of the box without protobuf support. For protobuf support please install protobuf 3.0 alpha (https://developers.google.com/protocol-buffers/). Earlier Pythons are your own adventure.* |
|
|
|
#### MATLAB |
|
|
|
Install MATLAB, and make sure that its `mex` is in your `$PATH`. |
|
|
|
*Caffe's MATLAB interface works with versions 2015a, 2014a/b, 2013a/b, and 2012b.* |
|
|
|
## Compilation |
|
|
|
Caffe can be compiled with either Make or CMake. Make is officially supported while CMake is supported by the community. |
|
|
|
### Compilation with Make |
|
|
|
Configure the build by copying and modifying the example `Makefile.config` for your setup. The defaults should work, but uncomment the relevant lines if using Anaconda Python. |
|
|
|
cp Makefile.config.example Makefile.config |
|
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired) |
|
make all |
|
make test |
|
make runtest |
|
|
|
- For CPU & GPU accelerated Caffe, no changes are needed. |
|
- For cuDNN acceleration using NVIDIA's proprietary cuDNN software, uncomment the `USE_CUDNN := 1` switch in `Makefile.config`. cuDNN is sometimes but not always faster than Caffe's GPU acceleration. |
|
- For CPU-only Caffe, uncomment `CPU_ONLY := 1` in `Makefile.config`. |
|
|
|
To compile the Python and MATLAB wrappers do `make pycaffe` and `make matcaffe` respectively. |
|
Be sure to set your MATLAB and Python paths in `Makefile.config` first! |
|
|
|
**Distribution**: run `make distribute` to create a `distribute` directory with all the Caffe headers, compiled libraries, binaries, etc. needed for distribution to other machines. |
|
|
|
**Speed**: for a faster build, compile in parallel by doing `make all -j8` where 8 is the number of parallel threads for compilation (a good choice for the number of threads is the number of cores in your machine). |
|
|
|
Now that you have installed Caffe, check out the [MNIST tutorial](gathered/examples/mnist.html) and the [reference ImageNet model tutorial](gathered/examples/imagenet.html). |
|
|
|
### CMake Build |
|
|
|
In lieu of manually editing `Makefile.config` to configure the build, Caffe offers an unofficial CMake build thanks to @Nerei, @akosiorek, and other members of the community. It requires CMake version >= 2.8.7. |
|
The basic steps are as follows: |
|
|
|
mkdir build |
|
cd build |
|
cmake .. |
|
make all |
|
make install |
|
make runtest |
|
|
|
See [PR #1667](https://github.com/BVLC/caffe/pull/1667) for options and details. |
|
|
|
## Hardware |
|
|
|
**Laboratory Tested Hardware**: Berkeley Vision runs Caffe with Titan Xs, K80s, GTX 980s, K40s, K20s, Titans, and GTX 770s including models at ImageNet/ILSVRC scale. We have not encountered any trouble in-house with devices with CUDA capability >= 3.0. All reported hardware issues thus-far have been due to GPU configuration, overheating, and the like. |
|
|
|
**CUDA compute capability**: devices with compute capability <= 2.0 may have to reduce CUDA thread numbers and batch sizes due to hardware constraints. Brew with caution; we recommend compute capability >= 3.0. |
|
|
|
Once installed, check your times against our [reference performance numbers](performance_hardware.html) to make sure everything is configured properly. |
|
|
|
Ask hardware questions on the [caffe-users group](https://groups.google.com/forum/#!forum/caffe-users). |
|
|