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가 된다면 설치가 완료된다.