Ubuntu16.04+nvidia驱动+Cuda+cudnn+Opencv+pycaffe
1.安装依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
可能在过程中会出现失败的情况
,
这时需要
sudo apt-get update,
之后在重新安装就可以了
.
最后在验证一下是否都安装成功
.
2.禁用nouveau
安装好以来之后,需要去禁用nouveau驱动,之后才能够安装NVIDIA显卡驱动.
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau option nouveau modeset=0
之后保存文件,执行
sudo update-initramfs -u
使禁用生效.
3.安装nvidia驱动
首先在官网查看适合自己GPU的驱动(http://www.nvidia.com/Download/index.aspx?lang=en-us).
如图,是作者的GPU适合的驱动截图:
也可以通过sudoubuntu-drivers devices来查看适合的型号。
作者把下载后的名称设置为0.run这样方便之后输入。
关闭X-Window,通过sudoservice lightdm stop,关闭图形界面,按Ctrl+Alt+F1进入命令行填写用户名和密码(root+“×××”),之后
#给驱动run文件赋予权限
sudo chmod +x 0.run(作者自己的)
#安装驱动
sudo sh ./0.run -no-opengl-files
之后按照提示正确安装,成功后通过sudoservice lightdm start,再按Ctrl+Alt+F7返回图形界面。此时驱动就已经安装成功。
检查:nvidia-smi
nvidia-settings
4.安装CUDA
cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda。
https://developer.nvidia.com/cuda-release-candidate-download
将下载好的cuda_8.0.44_linux.run放到/home下
打开终端输入
sudo sh cuda_8.0.44_linux.run
注意会出现让安装驱动的选项,选择n,其余输入accept& y,
当出现下图时则安装成功。
之后在终端中输入:
sudo gedit /etc/profile
在最后加上
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH
之后重启电脑。
进行测试:进入终端,输入
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
如果能显示cuda信息则安装成功。
4.安装cudnn
去https://developer.nvidia.com/rdp/cudnn-download下载自己对应版本的cudnn.
进行解压,会得到一个cuda文件夹。
进入cuda文件夹中的include中打开终端。
sudo cp cudnn.h /usr/local/cuda/include
进入cuda/lib文件夹中,运行命令
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
(其中的libcudnn.so.7.0.5、libcudnn.so.7是自己的版本,可以到/usr/local/cuda/lib64/中查看)
更新软连接
sudo ldconfig
5.opencv3.1(重要)
从官网 http://opencv.org/releases.html 中下载opencv3.1
解压到你想要安装的位置,进入已解压的opencv-3.1文件夹下,打开终端。
安装依赖(以防万一):
sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
在opencv3.10下新建文件夹build
mkdir build # 创建编译的文件目录
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
(此时会出现ippicv_linux_20151201.tgz不能够下载的错误,由于会被屏蔽掉,所以现在行下载ippicv_linux_20151201.tgz(链接),之后把下载的压缩包放进/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e下,在重新执行上一步即可。)
make -j8;
(此时执行后会在92%时出现错误),最好提前进行相应的修改。进入/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp,按照下图进行修改,则可正常执行。
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
重启系统,进入opencv3.1.0/build中,
sudo apt-get install checkinstall
sudo checkinstall
用pkg-config--modversion opencv
来检查安装的版本。
5.安装caffe
sudo apt-get update
安装依赖
sudo apt-get install -y python-pip
sudo apt-get install -y python-numpy python-scipy
去https://github.com/BVLC/caffe下载,cdcaffe-master
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
打开之后修改如下内容:
//若使用cudnn,则将# USE_CUDNN := 1 修改成: USE_CUDNN := 1
//若使用的opencv版本是3的,则将# OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3
//若要使用python来编写layer,则需要将# WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1
//重要的一项 将# Whatever else you find you need goes here.下面的 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为: 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 //这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径
打开makefile文件,
将
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
sudo gedit /usr/local/cuda/include/host_config.h
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
进行编译和测试。
make all -j32
make test -j32
make runtest -j32
6.python和caffe的接口问题
sudogedit ~/.bashrc#打开bashrc
export PYTHONPATH=/home/usrname/caffe/python:$PYTHONPATH
#在配置文件最后写入,本人是export PYTHONPATH=/home/semanticcaffe_IE/caffe-master/python:$PYTHONPATH
source ~/.bashrc #生效
安装依赖
pip install skscikit-image
进入caffe文件夹进入终端,
sudo make clean
sudo make pycaffe -j8
通过终端进入
python
import caffe
如果没有报错就安装成功python与caffe的接口。