Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

时间:2022-08-01 17:20:58

转载网址:https://blog.csdn.net/ytusdc/article/details/77978511

折腾了将近一周时间,caffe终于安装成功。中间遇到很多坑,系统也重装好几次,一步步终于把caffe环境搭建成功了。

一、说明

系统环境是Ubuntu16.04_x64

二、安装显卡驱动

1、在NVIDIA 官网根据条件选择下载最新的驱动即可 http://www.geforce.cn/drivers 
驱动下载完成后最好使用将驱动复制到Home目录下,方便后面的操作 
终端进入驱动所在的路径(也可以手动复制)

sudo cp  NVIDIA-Linux-x86_64-384.69.run  /路径名/复制后的名字 #
  • 1

(将驱动复制到路径/home/下,并且重新命名为a.run,重新命名是方便在非图形化界面安装时的命令输入) 
2、禁用自带的 nouveau nvidia驱动 (important!) 
参考链接 http://blog.csdn.net/u012581999/article/details/52433609

sudo apt-get purge nvidia*   //卸载原有的nvidia驱动,新系统不需要
  • 1

创建一个文件通过命令

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
  • 1

并添加如下内容:

blacklist nouveau options nouveau modeset=0
  • 1
  • 2

用下面命令,更新一下文件

sudo update-initramfs -u
  • 1

修改后需要重启系统。确认下Nouveau是已经被你干掉, 
使用命令:lsmod | grep nouveau 
如果nouveau禁用成功该命令执行后没有显示,否则该命令后会显示nouveau 的相关信息(可以禁用之前用该命令查看nouveau的相关信息)。 
3.开始安装 
先按Ctrl + Alt + F1到控制台,首先输入用户名和密码登录,然后关闭当前图形环境,通过下面的命令。

sudo service lightdm stop
  • 1

查看显卡驱动的全名(如果显卡驱动名字很长,没记住的话)

cd 目录名   //进入到显卡驱动所在目录
ls         //列出/home下的所有文件和文件夹
  • 1
  • 2

再安装驱动程序

sudo sh NVIDIA-Linux-x86_64-xxx.run  //sh--是显示安装过程
  • 1

然后根据提示完成驱动安装。 
安装完成后,重新启动图形环境

sudo service lightdm start
  • 1

重启系统后,执行下面的命令查看驱动的安装状态

sudo nvidia-smi
sudo nvidia-settings
  • 1
  • 2

出现下图所示内容,表示安装成功 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

或者下面的命令查看显卡驱动

cat /proc/driver/nvidia/version
  • 1

如下图 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

4、有可能出现的问题 
(1) 、Ubuntu 系统循环登录问题,可能原因是驱动安装失败。 
解决办法:重新进入到控制台界面,关闭图形显示后卸载刚才安装的驱动程序 
命令:

sudo sh NVIDIA-Linux-x86_64-xxx.run  --uninstall
  • 1

(2) 、显卡驱动安装成功,各个测试命令都没问题,但是,Ubuntu显示不正常。 
原因是显卡使用了转接头(自己因为这个问题折腾了两天(我是显卡用DVI转VGA后连接的显示器)),显卡驱动反复重装,通过命令显示安装成功,但是就是显示有问题!!!这是坑啊),连接显示器的视频线用直连线就可以。

三、配置安装cuda8.0##

在英伟达官网 https://developer.nvidia.com/cuda-downloads ,根据自己的机器下载最新版的cuda,如下图 
以前版本地址:https://developer.nvidia.com/cuda-toolkit-archive 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe 
注意这里下载的是cuda8.0的runfile(local)文件。 
这里是nvidia给出的官方安装指南(遇到问题时可以查阅): 
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt

参考链接: 
http://www.52nlp.cn/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%BB%E6%9C%BA%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE-ubuntu-16-04-nvidia-gtx-1080-cuda-8

1、gcc/g++版本 
cuda8.0安装前要进行gcc版本降级,参考我写的另一篇文章,链接 
http://blog.csdn.net/ytusdc/article/details/77980915 
注意:我在安装过程中,没有进行降级,caffe环境配置成功,可能是最新版本的cuda能够支持高版本的gcc/g++ 
2、安装cuda8.0 
(跟安装显卡驱动过程类似,把文件复制到/home 目录下) 
1、在你的用户登录界面按ctrl+alt+F1进入tty模式 
关闭图形界面

sudo service lightdm stop
  • 1

cd切换到下载的文件目录下进行安装:

sudo sh cuda_8.0.44_linux.run
  • 1

启动安装程序,一直按空格到最后 
注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia驱动时,一定要选择否: 
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62? 
此处一定选择否 
因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。其余的都直接默认或者选择是即可。

大概有以下选项 
输入accept接受条款 
输入n不安装nvidia图像驱动,之前已经安装过了 
输入y安装cuda 8.0工具 
回车确认cuda默认安装路径:/usr/local/cuda-8.0 
输入y安装CUDA 8.0 Samples,以便后面测试 
回车确认CUDA 8.0 Samples默认安装路径,该安装路径测试完可以删除

安装成功后会出现如下界面:

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver
Logfile is /opt/temp//cuda_install_6583.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3、cuda安装后配置 
安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

打开~/.bashrc文件

sudo gedit ~/.bashrc
  • 1

将以下内容写入到~/.bashrc尾部:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • 1
  • 2

4、测试cuda的Samples

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make    //该命令首次执行即可
sudo ./deviceQuery
  • 1
  • 2
  • 3

执行完之后出现下图 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe
如果显示的是一些关于GPU的信息,则说明安装成功了。

四、安装cudnn-v6

参考链接:http://www.h3399.cn/201705/86033.html 
参考链接:http://blog.csdn.net/qq_25073253/article/details/72571714 
下载cudnn相应版本. 
以前版本:https://developer.nvidia.com/rdp/cudnn-download 
cd到下载的文件目录下,解压:

tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz 
  • 1

解压后,在当前目录下产生一个cuda目录

cd cuda/include/ 
sudo cp cudnn.h /usr/local/cuda/include/  #复制头文件 
cd ../lib64    #打开lib64目录 
sudo cp lib* /usr/local/cuda/lib64/    #复制库文件 
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*    #给所有用户增加这些文件的读权限 
  • 1
  • 2
  • 3
  • 4
  • 5

建立软连接 
在终端输入

cd /usr/local/cuda/lib64/     #进入到lib64目录进行操做
sudo rm -rf libcudnn.so libcudnn.so.6 #删除原有动态文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 #生成软衔接
sudo ln -s libcudnn.so.6 libcudnn.so #生成软链接
  • 1
  • 2
  • 3
  • 4

注意此处的 libcudnn.so.6.0.21、libcudnn.so.6 都是根据cudnn解压之后的文件定的,我用的是cudnn-8.0-linux-x64-v6 的所以此处是libcudnn.so.6.0.21、libcudnn.so.6 
安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

五、安装opencv2.4.13

参考链接:http://blog.csdn.net/sinat_17196995/article/details/53466524 
预安装一些软件和库等

sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev 
  • 1

opencv可以通过下面两个链接下载 
https://github.com/Itseez/opencv/archive/2.4.13.zip 
http://opencv.org/releases.html

解压压缩包,然后放到/home/ —普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹的目录下

cd opencv-2.4.13    #进入opencv文件夹
mkdir build         #新建一个文件夹用于存放临时文件
cd build            #切换到该临时文件夹
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  #开始编译
make -j4            #编译,开启线程 按照自己的配置
sudo make install   #编译成功后安装,此处用sudo,因为要在/usr/local路 
#径下创建相关文件,必须root权限
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

安装完成后通过查看 opencv 版本验证是否安装成功:

pkg-config --modversion opencv 
  • 1

命令执行后显示opencv版本号 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

六、安装高级语言接口

1、安装其他依赖项

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler 
  • 1

上面依赖项不全,在执行上述命令后可能有一些依赖库没法安装,则通过以下的命令逐个安装 
安装各种更新包

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install -y python-pip
sudo apt-get install -y python-dev
sudo apt-get install -y python-numpy python-scipy
sudo apt-get install -y libopencv-dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2、下载caffe源码 
首先在你要安装的路径下(一般下载到Home下) clone :

cd     #进入Home目录
git clone https://github.com/BVLC/caffe.git
  • 1
  • 2

3、修改配置文件 Makefile.config 
进入 caffe 文件夹下,将 Makefile.config.example 文件复制一份并更名为 Makefile.config,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

cd caffe     //进入caffe目录
cp Makefile.config.example Makefile.config
  • 1
  • 2

复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而 Makefile.config.example 只是 caffe 给出的配置文件例子,不能用来编译 caffe。 
然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:

gedit Makefile.config
  • 1

修改 Makefile.config 文件内容: 
(1) 、应用 cudnn 
如果使用GPU的话,将#USE_CUDNN := 1修改成:

USE_CUDNN :=1
  • 1

(2) 、应用 opencv 版本 
如果使用的是opencv 3 的版本,将#OPENCV_VERSION := 3 修改为:

OPENCV_VERSION :=3
  • 1

(3) 、使用 python 接口 
将#WITH_PYTHON_LAYER := 1 修改为

WITH_PYTHON_LAYER :=1
  • 1

(4) 、 修改 python 路径

//重要的一项将
#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的位置,所以需要更改这一路径
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(5)、然后修改 caffe 目录下的 Makefile 文件:(Makefile本人没有配置)

//将
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
//替换
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
  • 1
  • 2
  • 3
  • 4

然后修改 /usr/local/cuda/include/host_config.h 文件 :(因为我的gcc没有降版本所以此处没有修改)

//将
#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!
  • 1
  • 2
  • 3
  • 4

(6)、pycaffe相关依赖库安装 
然后进入caffe目录下的python文件夹 
执行

for req in $(cat requirements.txt); do sudo pip install $req; done
  • 1

等待执行完毕可以编译caffe了 
如果pip命令找不到,需要安装

sudo apt-get install python-pip
  • 1

(7)、编译caffe 
在 caffe 目录下执行 :

cd ..               //此时位置应该处于caffe文件夹下
make all -j4        //j8代表计算机cpu有8个核,因此可以多线程一起make,这样make的速度会快很多。一般常用的还有j4
make test -j4
make runtest -j4  //如果此处不使用sudo编译不过,可能前面一些步骤安装命令用sudo,以后安装注意,sudo导致后面的脚本文件必须用root权限运行,很不方便调试
make pycaffe   //如果以后用python来开发的话必须执行这一句,一般不管你是否用 python,都会执行这一句
  • 1
  • 2
  • 3
  • 4
  • 5
make runtest -j4 //测试成功会如下图所示
  • 1

测试成功出现下图 
Ubuntu16.04 安装显卡驱动+cuda8.0+cudnn-v6+opecv2.4.13+caffe

如果编译过程出现错误,用下列命令清楚刚才的编译,然后解决问题后,重新进行编译

make clean
  • 1

错误集锦

可能遇到的错误,请移步http://blog.csdn.net/ytusdc/article/details/79229369

文章标签:  ubuntu cuda caffe