[服务器搭建]----ubuntu14.04+cuda8.0+matlab+opencv+cudnn+caffe超级详细教程

首先在阅读这篇文章前要做好心理准备:

一.caffe是最难安装的软件,没有之一,所以你要做好出现各种问题的准备。

二这篇文章本身不短,所以请耐心仔细读下去,如果出现问题欢迎跟博主讨论.

准备工作:

1.1首先查看自己的电脑的显卡是否支持nvidia驱动:(看看这个表里有没有你的驱动)

点击打开链接

1.2如果提示你安装依赖的问题,则有可能是Ubuntu源的问题,需要更换源,    

1.3禁用unouven的驱动:

     原因:unouven是ubuntu系统自带的驱动,专门用来驱动nvidia显卡的,如果不禁用可能会对后面下载nvdia驱动产生冲突

命令行输入以下代码:

lsmod | grep nouveau


如果有信息显示则代表nouveau存在。

1.3.1Ubuntu的nouveau禁用方法:

 在 /etc/modprobe.d 中创建文件 blacklist-nouveau.conf ,

创建文件方法:进入到/etc/modprobe.d目录下
 终端命令:

sudo  touch  blacklist-nouveau.conf
sudo  chmod a+w+r blacklist-nouveau.conf  (给文件权限)
sudo gedit blacklist-nouveau.conf

在文件最后面写入以下代码:

 blacklist nouveau
 options nouveau modeset=0

保存退出

打开终端,运行命令:

sudo update-initramfs -u


重启电脑

在终端输入以下命令:

lsmod | grep nouveau
检查是否禁用成功,如果不显示任何信息,则代表禁用成功。

二.单独安装nvidia驱动再安装cuda或者是只安装cuda(因为cuda里有自带nvidia驱动):


2.1单独安装nvidia驱动再安装cuda:


可选选项:你可以单独下载驱动,但是一般cuda自带有驱动,(驱动版本与显卡型号最好对应否则可能出现不兼容的问题,在这里查对应的驱动显卡驱动查询),如果是单独下载驱动(就在显卡查询那个链接下载),选择的安装方式一定要是.run安装而不是.deb的安装方法,


原因:因为.deb相当于一个命令行就可以直接安装了,中间你不需要做任何操作,但是他会默认下载opengl这个软件包(opengl到底为什么会影响循环登录?..这个博主查了很多暂时没查询到,如果有知道的可以回答一下)(opengl会造成你重启电脑后的lightdm login loop-登录循环,也就是你进不去ubuntu界面),

这里是nvidia官方给出的解释,为什么选择.run而不是.deb的安装方式:官方解释


方法:

(1)选用.run安装包方式最好,去nvdia官网下载(就在显卡查询那个链接下载),选择适合你显卡的驱动安装,下载结束后,


(2)按ctl+alt+F1进入字符界面(什么是init3和init5模式?init3是字符界面,init5是图形界面),


(3)然后登录你的用户名和密码,输入命令行,sudo service lightdm stop,(为什么一定要执行,博主不清楚,有知道的小伙伴可以分享一下)然后cd到下载目录(这个目录你应该能很轻松找到把),执行.run安装包


(4)输入: bash nvdia.run -no-opengl-files(表示不下载opengl)命令,文件名不同命令则不同,然后进入提示界面,如果提示你是否修改xorg,config(这个文件里包含了你各种硬件信息,例如,鼠标,键盘,显卡等等),文件,点否,接下来按照提示安装就行了,安装完毕后,sudo reboot 重启后,进入shell输入:nvidia-smi会显示nvidia显卡驱动的信息,则表明安装成功。


安装过程中所碰到的一些基本名词知识:

lightdm:显示管理器:就是管理图形界面的一个东西,所以sudo service lightdm stop的意思就是关闭显示管理器

X-server:我简单的理解是输入输出系统,x客户端是按照用户输入操作完成指令的图形系统。简单的讲x服务器就是显示图形给你看,接受你输入的部分。而x客户端则是执行操作的部分,比如打开某个菜单。 那么x客户端负责去找那个目录并找到那个菜单程序执行。 x服务器则接受你鼠标输入。并负责将x客户端的结果在显示器上划出图形显示出来。(这一部分转载于:https://zhidao.baidu.com/question/389677211.html)

窗口管理器:管理窗口的一个东西,简而言之,比如你窗口的排列形式,你窗口的缩小打开方式

gnome:是一个软件,提高桌面环境,比如前面讲到的窗口管理器,显示管理器都集成在gnome中,kde是另一种版本的gnome。


2.2安装cuda:

如果你在这之前已经安装了nvidia驱动,在如下第二步的时候,提示你是否安装driver一定要点击否。

这里也是选择.run的安装方法,而不是.deb,因为.deb相当于一个命令行就可以直接安装了,中间你不需要做任何操作,但是他会默认下载opengl这个软件包(opengl会造成你重启电脑后的lightdm login loop-登录循环,也就是你进不去ubuntu界面),


方法:

(1):首先去官网下载cuda版本https://developer.nvidia.com/cuda-toolkit-archive,选择你适合的cuda的.run文件安装包版本,我这里是cuda8.0。

注:(我一直想知道是否不同的驱动所要求的cuda版本也不同,后来找不到,我自己的思考与理解是显卡版本与cuda没有什么特别大的要求,但是显卡对驱动有要求,而cuda又是自带驱动的,所以如果安装号cuda后,如果出现不兼容问题,很有可能是cuda自带的驱动与显卡不匹配,这时候就需要重新单独安装驱动,把之前都卸载了)


(2):下载完毕后,按ctrl+alt+F1,进入字符,登录你的用户,然后输入命令行,sudo service lightdm stop,cd到下载目录,输入bash cuda8.0.run -no-opengl-libs(表示不下载opengl,这里的执行.run文件命令根据你自己下载的cuda版本不同.run文件名而不同,),然后根据提示安装,如果你之前像我说的已经单独安装了nvidia的驱动,那么这提示你是否要安装driver的时候,选择否,如果之前没有单独安装nvidia驱动,则选择是,然后提示你是否可以修改Xorg.config的配置文件你选择,否,然后安装完毕后,重启电脑,就可以了。

(3).重启电脑后,nvcc -V检查cuda是否安装成功,检查Device Node Verification。 检查路径~/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files) 如果没有的话,可以参考官方文档里的指导步骤,进行添加。

(4)

a)在home下创建一个文档,命名位modprobe,不要后缀,文档的内容如下:

#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi

b)将该文件复制到/etc/init.d目录下

终端输入: $ sudo chmod 755 /etc/init.d/modprobe 

 
 
  • 1
  • 2

d)执行如下命令将脚本放到启动脚本中去。

终端输入: $ cd /etc/init.d
           $ sudo update-rc.d modprobe defaults 95

 
 
  • 1
  • 2
  • 3

注意:数字95其实可以随便设置的。
e)关机然后重新启动,去~/dev下面查看,不出意外此时应该有nvidia*系类文件了。

说明:很有必要说一下不管怎么搞我的nvidia*文件总是出现不了,所以我放弃,不过好像并没有太大的影响。这一点根据情况大家自己试试吧。
. 设置环境变量。

终端中输入 $ sudo gedit /etc/profile 

 
 
  • 1
  • 2

在打开的文件末尾,添加以下两行:

 export PATH=/usr/local/cuda-8.0/bin/:$PATH
 export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64/:$LD_LIBRARY_PATH 

 
 
  • 1
  • 2
  • 3

添加完后:source /etc/profile

注意:上面的路径设置根据你cuda版本不同而修改

重启电脑,检查上述的环境变量是否设置成功。

  终端中输入 : $ env 

 
 
  • 1
  • 2
在输出的环境变量中检查有无上述 设置的变量,如果有则代表设置成功


基本名词知识:

CUDA:是Nvidia推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。


错误:如果提示你确保有足够的空间来安装

解决:你首先查看硬盘是否有足够的空间来安装,如果空间足够还出现这样的错误那就换一个cuda安装包,这个问题好像是nvidia官方的漏洞。

这里是nvidia官方给出的解释:出现这错误的官方解释


安装完cuda和显卡驱动之后,接下来安装matlab,opencv,caffe

以下安装参考:http://blog.csdn.net/qq_38731633/article/details/78319508

一.MATLAB安装 :

(1).下载linux版本的matlab2014链接:http://pan.baidu.com/s/1pLsS35x 提取密码so9j

下载完成后一个Crack文件和两个压缩包,分别解压两个压缩包,需要执行以下命令sudo 7z x 文件名.rar ,pat2解压时直接覆盖pat1,解压后会得到一个镜像文件MATHWORKS_R2014A.iso。
所以最后就是一个Crack文件和一个ISO文件。

(2).挂载

文件一般都是放在用户目录桌面,需要挂载到系统路径。在系统路径下创建空文件。
sudo mkdir /usr/local/matlab_iso
挂载:sudo mount -o loop MATHWORKS_R2014A.iso /usr/local/matlab_iso
matlab_iso文件里出现很多文档。

(3).安装

cd /usr/local/matlab_iso
sudo ./install
a、选择”install manually without using the internet”项进行安装
b、输入”file installation key”:12345-67890-12345-67890(随便都行)
c、在安装过程中有一项是在/usr/local/bin创建快捷方式,记得勾选,这样就可以在terminal直接输入matlab启动了(桌面右键打开终端,输入matlab即可启动)

(4).激活并破解

选择”license_405329_R2014a.lic”文件进行激活(在Crack文件夹下面)
将Crack/Liunx/libmwservices.so复制到/usr/local/MATLAB/R2014a/bin/glnxa64中:(在crack 文件中找到libmwservices.so,在找个文件夹下打开终端输入以下命令)
$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/libmwservices.so


(5).OK,终端输入matlab即可打开matlab

我是直接按照上面安装的,没有出现问题,,命令行输入matlab即可打开matlab了

(6)编译matlab

  • 编译
    make matcaffe -j8
    (编译成功后生成文件./matlab/+caffe/private/caffe_.mexa64 供matlab使用。)

  • 测试
    make mattest -j8

编译时的错误:

(1)make matcaffe :错误:Caffe Problem: make matcaffe 'matlab/+caffe/private/caffe_.mexa64' failed

解决:在Makefile里面,大约第410行那一句话CXXFLAGS += -MMD -MP下面添加CXXFLAGS += -std=c++11,最后是这样
CXXFLAGS += -MMD -MP
CXXFLAGS += -std=c++11
然后在caffe根目录下make clean,make all

(2)make mattest:错误

make mattest:错误:Invalid MEX-file '/home/manager/caffe/matlab/+caffe/private/caffe_.mexa64':
        libcudart.so.8.0: cannot open shared object file: No such file or directory
        方法1: 解决办法是将一些文件复制到/usr/local/lib文件夹下:
            #注意自己CUDA的版本号!
            sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
            sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
            sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig


二.opencv的安装:


(1).安装相关的依赖(必须要,否则会出错!)

sudo apt-add-repository universe
sudo apt update -y && sudo apt upgrade -y
sudo apt-get install -y build-essential make cmake cmake-curses-gui g++ libavformat-dev libavutil-dev libswscale-dev libv4l-dev libeigen3-dev libglew-dev libgtk2.0-dev pkg-config libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran python2.7-dev python-pip python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libjasper-dev libdc1394-22-dev ffmpeg
:ffmpeg安装失败的话可以如下操作:
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg2.下载opencv3.1和opencv_contrib


(2).下载链接:http://pan.baidu.com/s/1nvOKBjj 密码:xzkt

把他们放在/usr/local里面便于安装。
解压: unzip opencv.zip
unzip opencv_contrib.zip
得到两个文件夹。
进去并创建一个空文件夹
cd opencv
sudo mkdir build && cd build


(3).编译:cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=/usr/local/opencv_contrib/modules -DWITH_CUDA=ON -DCUDA_ARCH_BIN=”5.3” -DCUDA_ARCH_PTX=”” -DBUILD_EXAMPLES=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCUDA_FAST_MATH=ON ..
注意:路径很关键,最后两点前有空格,DCMAKE不用空格。
如果make的时候卡在ippicv_linux_20151201.tgz ,则从上面链接里的文件ipp…替换opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/下的同名文件,再次cmake,make clean并且make -j7&& make install


遇到的问题:

1解压压缩包的时候,没有解压成功,是因为没有用sudo权限,

2make -j7&& make install时最好su -到root用户下,不然他会提示你cmake没有权限,即时你在使用的是 sudo make -j7&& make install(我的是这样你们的可以自己之后尝试)

3 安装过程中时间比较长,它在100%会停留一段时间,不要着急,等它自动结束 回到用户再进行下一步操作,不要人为中断。

4.错误: No rule to make target /usr/lib/x86_64-linux-gnu/libGL.so', needed bylib/libopencv_core.so.2.4.11’. Stop.
解决方法,删除旧的,然后,重新定向
ln -s /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/libGL.so.1


三.cudnn安装

Install cudnn v6 for cuda 8
tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz
cd cuda
sudo cp cuda/include/*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/lib64/libcudnn*
cd /usr/local/cuda/lib64
sudo ldconfig -v
caffe没有说要安装opencv,这个是需要安装的,可以在所以安装完毕后,安装opencv。


四.caffe的安装:

(1).安装相关依赖
sudo apt-get install libprotobuf-dev protobuf-compiler gfortran libboost-dev cmake libleveldb-dev libsnappy-dev libboost-thread-dev libboost-system-dev libatlas-base-dev libhdf5-serial-dev libgflags-dev libatlas-dev libboost-all-dev libprotobuf-dev libgflags-dev libhdf5-dev libleveldb-dev liblmdb-dev libsnappy-dev python-pip libgoogle-glog-dev liblmdb-dev gcc-4.7 g++-4.7 python-numpy -y

(2)下载caffe

git clone https://github.com/BVLC/caffe.git && cd caffe
sudo cp Makefile.config.example Makefile.config

(3)编辑Makefile.config文件

sudo gedit Makefile.config # Change below status

以下几行需要改,具体更改方式网上有很多可以自行查找

注:首先按个人需求修改Makefile.config配置文件

USE_CUDNN :=1 # Line 5
MATLAB的路径需要正确如以下的形式:

/usr/local/…/bin

注:注:在opencv版本那一栏直接填写2或者3就行了,不用具体到opencv3.1.2这种,因为这样做会报错

 (4).编译caffe
sudo make -j4 all # Some warning message is OK, don’t worry!
sudo make -j4 test
sudo make -j4 runtest # Optional, take long time
sudo make py caffe
这个-j后面的数字是指用几个线程线程的定义详见操作系统)去编译。

make runtest报错
error while loading shared libraries: libcudart.so.8.0
在bashrc中添加如下环境变量即可:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/


make时出现的问题
(1).build_release/lib/libcaffe.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)’
设置环境变量:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH,将/usr/lib/x86_64-linux-gnu/放在最前面
(2)/cudnn.hpp:8:34: fatal error: caffe/proto/caffe.pb.h: No such file or directory
make all -j8有问题,make all没问题。可能是多核编译的问题。

最后用手写数字集测试

mnist Test

sh data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

运行或者make的时候出现错误:

问题: 1安装完caffe,修改配置文件,他会提示你没有定义的cv::什么函数,两种方法 1,将Opencv版本那一行只写3就行,2下面有一行那个1注释去掉,

问题2,make的时候 提示你没有什么可以为pycaffe可做的,你make clean一下或者重启一下 重新make,

注:make clean以后 你之前所有编译的opencv matlab神码的都得重新编译!

参考:http://blog.csdn.net/u010480194/article/details/54287335


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值