動機
Ubuntu 16.04にて、CaffeとMATLABをインストールする。
Caffeはインターフェイスとして、PythonやMATLABを用意している。
しかし、CaffeとMATLABのインストール手順についてはドキュメントが非常に少ない。
CaffeとMATLABに合わせて、CUDAとcuDNNも導入を行う。
CaffeはTensorflowやPytorchと比較して、下火になっている。
しかし、比較実験を行う際にCaffeで実装されたソースコードを動作させる必要がある場面がある。
この記事では、そのような読者に向けても、環境構築の手順を紹介。
要件
- Ubuntu 16.04
- CUDA 8.0
- cuDNN 6
- Caffe
- MATLAB 2015a
導入手順
1.CUDA-8.0インストール
インストーラーダウンロード
以下のリンクからインストーラーをダウンロード
- Operating System : Linux
- Architecture : x86_64
- Distribution : Ubuntu
- Version : 16.04
- Installer Type : deb(network)
インストール
cd ~/Downloads
sudo dpkg -i cuda-repo-ubuntu1604_8.0.*_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8.0
CUDA PATHの設定
echo -e "\n## CUDA and cuDNN paths" >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-8.0/bin:${PATH}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc
動作確認
nvidia-smi #GPU情報確認
2.cuDNNインストール
インストーラーダウンロード
以下のページからインストーラーをダウンロード(アクセスするにはメンバー登録が必要)
cuDNNインストーラーダウンロードページ
cuDNN6 インストール
ダウンロードしたディレクトリで以下のコマンドを実行
cd ~/Downloads/cudnn
sudo dpkg -i libcudnn6_6.0*+cuda8.0_amd64.deb
sudo dpkg -i libcudnn6-dev_6.0*+cuda8.0_amd64.deb
sudo dpkg -i libcudnn6-doc_6.0*+cuda8.0_amd64.deb
3.MATLABインストール
MathWorksのHPにログインしてMATLABをダウンロード(今回はR2015a)
zipファイル解凍して、インストール
便宜上、MATLABはrootにインストールした
cd ~/Downloads
unzip matlab_R2015a_glnxa64.zip
cd matlab_R2015a_glnxa64
sudo su #rootにMATLABをインストール
./install
- インストールフォルダの選択 : /usr/local/MATLAB/R2015a
- "MATLABスクリプトへのシンボリックリンクの作成"にチェックを入れる
- ログイン名は"root"
4.Caffe インストール
必要なモジュールをインストール
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev git
sudo apt-get install --no-install-recommends libboost-all-dev
Git からクローン
cd
mkdir caffe_ws #Caffe用のワークスペース作成
cd caffe_ws
git clone https://github.com/BVLC/caffe.git
MakeFile.configの修正
cd caffe
cp Makefile.config.example Makefile.config
vim Makefile.config
Makefile.config
USE_CUDNN := 1 #CUDNNを使用するため
CUDA_DIR := /usr/local/cuda-8.0 #CUDAのディレクトリを指定
MATLAB_DIR := /usr/local/MATLAB/R2015a #MATLABのディレクトリを指定
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ #hdf5のディレクトリを指定
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial #lhdf5とlhdf5_hlのディレクトリを指定
シンボリックリンクの作成
libhdf5とlibhdf5_hlのシンボリックリンクを作成
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
ビルド
cd ~/caffe_ws/caffe
make all -j12
make test -j12
make runtest -j12
sudo su
make mattest -j12
ビルドが失敗したら
make clean
を行い、修正後にビルドやり直し