GPU Version의 Caffe를 설치하는 방법이다.
지난 포스팅 Ubuntu 16.04(64bit), CUDA 8.0, cuDNN 5.1 Install에서 다루었던. Ubuntu 16.04(64bit), CUDA 8.0, cuDNN 5.1 설치과정을 마치고나서 이 작업을 진행해야 한다.

설치할 내용은 Python 2.7, OpenCV 3.2.0, Caffe 이다.
패키지 업데이트와 Caffe 설치에 필요한 각종 패키지/라이브러리들을 다운받는다.

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev

# (Python general)
sudo apt-get install -y python-pip

# (Python 2.7 development files)
sudo apt-get install -y python-dev
sudo apt-get install -y python-numpy python-scipy

Ubuntu 16.04(64bit), OpenCV 3.2.0 Install 를 참고해서 OpenCV를 설치한다.
그리고 Caffe를 git에서 클론해온다.

cd ~
git clone https://github.com/BVLC/caffe.git

Caffe를 build하기 위해 Makefile.config 파일을 수정해야한다.
수정하기위해 기본 백업 파일로 저장되어있는 Makefile.config.example를 복사하고 수정하자.

cd ~/caffe
cp Makefile.config.example Makefile.config
sudo gedit Makefile.config

gedit으로 열린 Makefile.config에서

USE_CUDNN := 1
OPENCV_VERSION := 3
CUDA_DIR := /usr/local/cuda 를
CUDA_DIR := /usr/local/cuda-8.0 로 변경해주고
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
로 변경 해준다.

Makefile도 다음과 같이 수정해준다.

cd ~/caffe
sudo gedit Makefile

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
이 내용을 찾아서
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
이렇게 변경 해주면 된다.

Python requirements를 설치하기 위해 다음 명령어들을 수행한다.

cd ~/caffe/python
for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done

Caffe를 build하고 runtest를 통해 동작 테스트를 수행한다.

cd ~/caffe
make all -j $(($(nproc) + 1))
make test
make runtest

make runtest에서 만약 이런 에러가 발생한다면
error while loading shared libraries: libcudart.so.8.0

~/.bashrc 파일에 다음 내용을 추가하고
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
source ~/.bashrc
를 수행해 주면 해결된다

make pycaffe
make distribute

Python에서 Caffe를 사용할 수 있도록 ~/.bashrc 파일의 맨 마지막 줄에 PATH를 추가해 설정을 해준다.

export PYTHONPATH=~/caffe/python:$PYTHONPATH

설정이 완료되면 Python에서 import를 통해 테스트 해본다.

$ python
>>> import caffe

별다른 오류 없이 import가 된다면 설치가 완료된다.