笔记本电脑核显+独显双显卡下编译安装caffe
在笔记本电脑上安装caffe时一开始没有注意到大部分笔记本是核显+独显这一特性,就按照之前在台式机上的编译文档进行安装,结果安装过程中遇到各种问题,经过N次重装系统后最终跑通官方例子。现将从重装系统后开始到caffe编译通过所使用的所有命令记录下来。注:台式机上编译可参照Caffe-Face编译。
注:
1.系统环境及版本:Ubuntu16.04+OpenCV3.0+CUDA8.0+cuDNN5.1.
2.安装中有些库可能使用apt-get install方式安装过,我又下载代码重新编译安装,是因为最终编译caffe时出现问题不得已才选择手动编译安装。
3.手动编译时,大部分下载代码的解压后在根目录新建build文件夹然后cmake编译等。
A.安装显卡驱动
System Settings--->Software&Update--->AdditionalDriver--->Using NVIDIA binary...--->Apply
reboot
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
sudo ldconfig
B.gcc,g++版本降级5.4->4.8
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
gcc --version
g++ --version
reboot
C.安装CUDA
sudo sh cuda_8.0.61_375.26_linux.run
选项不要安装driver n
sudo gedit /etc/profile
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64:$LD_LIBRARY_PATH
sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
sudo ldconfig
reboot
sudo make
./deviceQuery
nvcc -V
D.安装cuDNN
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
sudo ldconfig -v
sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.5.1.10 /usr/local/cuda/lib64/libcudnn.so.5
sudo ldconfig
E.安装numpy,setuptools
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo pip install numpy
sudo pip install setuptools
F.安装boost
apt-get install mpi-default-dev libicu-dev python-dev libbz2-dev
sudo apt-get install mpi-default-dev libicu-dev python-dev libbz2-dev
sudo ./bootstrap.sh
sudo ./b2 -a -sHAVE_ICU=1
sudo ./b2 install
G.安装opencv
sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential cmake libavcodec-dev libavformat-dev libgtk2.0-dev libgtkglext1 libgtkglext1-dev libjpeg-dev libpng-dev libswscale-dev libtbb2 libtbb-dev libtiff-dev
在/opencv/modules/cudalegacy/src/graphcuts.cpp中,把
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION>=8000)
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install
H.安装dlib
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo python setup.py install
I.安装一些依赖库
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install autotools-dev
sudo apt-get install automake
sudo apt-get install autoconf2.13
sudo apt-get install m4
sudo apt-get install perl
sudo apt-get install libperl5.14
sudo apt-get install aclocal-1.14
sudo apt-get install libsnappy-dev
J.安装glog,gflags,lmdb,leveldb,hdf5,protobuf
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
sudo ./autogen.sh
./configure
sudo make
sudo make install
wget https://github.com/schuhschuh/gflags/archive/master.zip
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
sudo make
sudo make install
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
sudo make
sudo make install
make
sudo cp libleveldb* /usr/local/lib #out-shared
sudo cp libleveldb* /usr/local/lib #out-static
sudo cp -r include/* /usr/local/include
sudo ldconfig -v
sudo ln -sf /usr/local/lib/libleveldb.so.1.7 /usr/local/lib/libleveldb.so.1
sudo tar -xzvf hdf5-1.8.17.tar.gz -C /usr/local
sudo ./configure --prefix=/usr
sudo make
sudo make check
sudo make install
sudo make check install
sudo apt-get install curl
sudo ./autogen.sh
sudo ./configure
sudo make
sudo make check
sudo make install
sudo gedit /etc/ld.so.conf
/usr/local/lib
sudo ldconfig
cd ./python
python setup.py build
python setup.py test
python setup.py install
K.编译caffe
mkdir build && cd build
cmake ..
sudo make
sudo make install
L.运行自己编写的C++调用caffe接口的例子TestMTCNN
cmake ..
make
./MTCNNTest ../MTmodel ../data/test.jpg