ubuntu16.04+cuda8.0+cudnn+opencv3.0+caffe
一.ubuntu16.04安装
开机F12进入BIOS的设备启动菜单,选择U盘启动。
安装类型,选择其他选项,进行分区。
Swap:逻辑分区,20GB 空间起始位置 交换空间
/boot(引导分区):10G 逻辑分区 空间起始位置 Ext4日志文件系统 /boot
/.(主分区):100GB 主分区,用于存放系统.
/home(用户存储数据用):逻辑分区,剩下的440GB全部留给了/home。
其余全部一下步即可。
BUG:直接进入win7系统,没有选择ubuntu系统的选项。
Solution:EasyBCD
二.cuda8.0
1.检查自己的GPU是否支持CUDA
lspci | grep -i nvidia
在这里查看:[https://developer.nvidia.com/cuda-gpus] ,有的话就可以继续啦,不然只能换个显卡了。
2.安装nvidia驱动
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
执行完上述后,重启:sudo reboot
输入:nvidia-smi
如果出现了你的GPU列表,则说明驱动安装成功了。
3.禁止ubuntu系统自带的nouveau显卡驱动。
查看自己的驱动状态:lsmod | grep nouveau
如果有显示就要执行下面的操作了,一般新系统都是有输出的。
创建blacklist-nouveau.conf:sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
在新建的文件里添加如下内容:
blacklist nouveau
options nouveau modeset=0
更新:sudo update-initramfs -u
执行完上述后,重启:sudo reboot
再一次检查是否禁用成功lsmod | grep nouveau
没有东西输出变是成功啦。
4.安装run文件
A. [https://developer.nvidia.com/cuda-downloads]官网下载适合自己的run安装包
B.重启系统后,不要进入登陆界面(!!!否则可能会安装失败),直接按 Ctrl+Alt+F1进入文本模式(命令行界面),输入用户名和密码,登录账户。
C.关闭图形化界面
sudo service lightdm stop
D.使用cd 命令切换到cuda_8.0.61_375.26_linux.run的目录,执行
sudo sh cuda_8.0.27_linux.run
安装的时候,要让你先看一堆文字(EULA),我们直接不停的按##空格键到100%;不要选择安装驱动,遇到提示是否安装openGL ,选择no,其他的可以一路accept, yes或回车,不建议安装samples.以及x-config。
E.重启图形化界面
sudo service lightdm start
F.如果出现循环登录,按 F2 进入 boot 界面,确定secure boot 选项是 disable。
5.配置环境
sudo gedit /etc/profile
打开“profile”文件,在末尾处添加(注意不要有空格,不然会报错):
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH
重启电脑:sudo reboot
6.检查是否成功
cat /proc/driver/nvidia/version
nvcc -V
nvidia-smi
有输出
ls /dev/nvidia*
显示三个或四个
三.cudnn
1.下载cudnn-8.0-linux-x64-v5.1.tgz
2. 解压文件tar zxvf cudnn-8.0-linux-x64-v5.1.tgz,解压后,得到cuda文件夹,内有include和lib64两个文件夹。
3. 进入include文件夹,执行如下命令复制头文件:
sudo cp cudnn.h /usr/local/cuda/include/
4.进入lib64文件夹,执行如下命令复制动态链接库:
sudo cp lib* /usr/local/cuda/lib64/
5.进入复制后的动态链接库进行新的链接
先进入目录:cd /usr/local/cuda/lib64/
查看已有链接:ls -al | grep libcudnn
显示四个
删除原有动态文件:sudo rm -rf libcudnn.so libcudnn.so.5
再次查看:ls -al | grep libcudnn
显示两个,说明已删除,现在建立新的链接:
sudo ln -s libcudnn.so.5 libcudnn.so
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
(上面那一条也有可能是sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
这里需要先查看一下自己应该链接的是 libcudnn.so.5.1.10 还是 libcudnn.so.5.1.5 ,查看方法为下:
locate libcudnn.so
执行完后显示如下:
/home/yxy/.local/share/Trash/files/libcudnn.so
/home/yxy/.local/share/Trash/files/libcudnn.so.5
/home/yxy/.local/share/Trash/files/libcudnn.so.5.1.10
/home/yxy/.local/share/Trash/files/cuda/lib64/libcudnn.so
/home/yxy/.local/share/Trash/files/cuda/lib64/libcudnn.so.5
/home/yxy/.local/share/Trash/files/cuda/lib64/libcudnn.so.5.1.10
/home/yxy/.local/share/Trash/info/libcudnn.so.5.1.10.trashinfo
/home/yxy/.local/share/Trash/info/libcudnn.so.5.trashinfo
/home/yxy/.local/share/Trash/info/libcudnn.so.trashinfo
/home/yxy/cuda/lib64/libcudnn.so
/home/yxy/cuda/lib64/libcudnn.so.5
/home/yxy/cuda/lib64/libcudnn.so.5.1.10 /usr/local/lib/libcudnn.so
/usr/local/lib/libcudnn.so.5
可以看到我的文件是 libcudnn.so.5.1.10 ,并没有 libcudnn.so.5.1.5,所以第三行命令我链接的是 libcudnn.so.5.1.10 ,这里第三行链接命令视你的查看结果而定。)
再次查看:
ls -al | grep libcudnn
显示四个,已链接好!
然后设置环境变量和动态链接库:
sudo gedit /etc/profile
然后再打开的文件末尾加上(“=”前后不要有空格)
export PATH=/usr/local/cuda/bin:$PATH
保存之后创建链接文件:
sudo vi /etc/ld.so.conf.d/cuda.conf
这是一个空白文件,添加:
/usr/local/cuda/lib64
按下esc键,输入(:wq)保存并退出
输入如下命令使链接生效
sudo ldconfig
四.opencv3.0
1.安装OpenCV的一些依赖库。(可以写一个脚本,直接全部运行)
sudo apt-get -qq remove ffmpeg x264 libx264-dev
sudo apt-get -y install libopencv-dev
sudo apt-get -y install build-essential
sudo apt-get -y install cmake
sudo apt-get -y install pkg-config
sudo apt-get -y install yasm
sudo apt-get -y install libjasper-dev
sudo apt-get -y install libavcodec-dev
sudo apt-get -y install libavformat-dev
sudo apt-get -y install libswscale-dev
sudo apt-get -y install libdc1394-22-dev
sudo apt-get -y install libxine-dev
sudo apt-get -y install libgstreamer0.10-dev
sudo apt-get -y install libgstreamer-plugins-base0.10-dev
sudo apt-get -y install libv4l-dev
sudo apt-get -y install python-dev
sudo apt-get -y install python-numpy
sudo apt-get -y install python-scipy
sudo apt-get -y install python-sphinx
sudo apt-get -y install libtbb-dev
sudo apt-get -y install libqt4-dev
sudo apt-get -y install libgtk2.0-dev
sudo apt-get -y install libfaac-dev
sudo apt-get -y install libmp3lame-dev
sudo apt-get -y install libopencore-amrnb-dev
sudo apt-get -y install libopencore-amrwb-dev
sudo apt-get -y install libtheora-dev
sudo apt-get -y install libvorbis-dev
sudo apt-get -y install libxvidcore-dev
sudo apt-get -y install x264
sudo apt-get -y install v4l-utils
sudo apt-get -y install unzip
sudo apt-get -y install libgtk2.0-0
sudo apt-get -y install libjpeg-dev
sudo apt-get -y install libjpeg62
sudo apt-get -y install libtiff4-dev
sudo apt-get -y install libtiff5-dev
sudo apt-get -y install qt5-default
2.下载一个安装包,为后面编译安装做准备。
wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.5.tar.bz2
wget http://ffmpeg.org/releases/ffmpeg-2.8.tar.bz2
wget -O opencv-3.0.0.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.0.0/opencv-3.0.0.zip/download
3.安装mmfpeg
sudo apt-get install -y libx264-dev libxext-dev libxfixes-dev
tar -xf ffmpeg-2.8.tar.bz2
cd ffmpeg-2.8
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis
make -j
make install
cd ..
4.安装v4l
tar -xvf v4l-utils-0.8.5.tar.bz2
cd v4l-utils-0.8.5
make -j
sudo make install
cd ..
5.安装opencv
sudo unzip opencv-3.0.0.zip
cd opencv-3.0.0
sudo mkdir build
cd build
# 注意根据自己的显卡,修改 CUDA_GENERATION。如果是Fermi架构,就需要将Kepler修改成Fermi
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON CUDA_GENERATION=Kepler ..
sudo make -j
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
6.BUG
执行sudo make时,可能出现
make[2]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o]
Error 1 make[1]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all]
Error 2 make: *** [all] Error 2的错误。
那是因为 cuda-8.0与OpenCV 3.0发生了冲突。解决方法:修改openCV 3.0源码,使其兼容cuda-8.0
sudo gedit opencv-3.0.0/modules/cudalegacy/src/graphcuts.cpp
将第四十五行位置的
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined(HAVE_CUDA)||defined(CUDA_DISABLER)||(CUDART_VERSION>=8000)
然后重新
sudo make -j4
五.caffe
1.安装caffe相关依赖
sudo apt-get install git libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev python-dev libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install --no-install-recommends libboost-all-dev
安装python依赖库
sudo apt-get install cython python-numpy python-scipy python-skimage python-scikits-learn python-matplotlib ipython python-h5py python-leveldb python-networkx python-nose python-pandas python-dateutil python-protobuf python-gflags python-yaml python-pil
安装矩阵加速器
sudo apt-get install libopenblas-dev
2.从官网下载caffe-master压缩包,解压到自己想要的目录,进入主目录下
cp Makefile.config.example Makefile.config
3.sudo gedit Makefile.config
修改BLAS:=open
将use_cudnn :=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/hdf5/serial/
应用 opencv 版本
将 #OPENCV_VERSION := 3
取消注释
使用 python 接口
将 #WITH_PYTHON_LAYER := 1
取消注释
4.可以开始编译了
make all -j8 make test -j8 make runtest -j8 make pycaffe
其他错误,可参考欧尼的博客:https://www.cnblogs.com/zzq-123456/p/7374547.html