手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

 

搞了半个月终于弄完了,反复配置了好几次,主要是遇到报错时忘了解决办法,不得不花费好长时间。可以说,caffe是目前我遇到过的最难配置的东西了。所以,这次干脆将其记录下来。这里由于过程较为复杂,就不再录制视频了,各位看官若存在疑问可留言。接下来默认已安装了Ubuntu 16.04 64bit操作系统,并拥有具备CuDNN能力的NVIDIA GTX显卡。参考机器配置如下:

Ubuntu 16.04 64bit

Intel i7 CPU

16G内存

GTX Titan X显卡(12G显存)

手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

首先,配置前建议先熟悉一下Linux命令,否则后续配置过程中因不熟悉Linux命令而胡乱搞一通,很容易泪崩。

step1

step1:安装英伟达显卡驱动

(1)先在官网上下载对应的驱动程序(下载地址:NVIDIA 驱动程序下载

注:有时候会只显示一个网页文档,那就右击把它下载下来,下载后的文件名形式为:NVIDIA-Linux-x86_64-3xx.xx.run,例如我下载的是NVIDIA-Linux-x86_64-375.26.run,375.26为英伟达显卡驱动版本号。

手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

(2)禁用开源nouveau驱动

a.先把vim编辑器装上:终端输入:

sudo apt-get install vim

若装不上,输入:

sudo apt-get update

更新下apt源,然后终端输入:

sudo vim /etc/modprobe.d/disable-nouveau.conf

编辑文件/etc/modprobe.d/disable-nouveau.conf,按i进入编辑模式,输入以下两行:

blacklist nouveau
options nouveau modeset = 0

按esc键退出编辑,输入:wq保存退出,然后输入:

sudo ldconfig

再执行:

sudo update-initramfs -u

使配置生效。

注:关于vim编辑器的使用可参考这篇博客:vim简单使用教程 - 走在大牛的路上 - 博客园
b.配置kernel以text模式启动

终端执行:

sudo vim /etc/default/grub

编辑文件/etc/default/grub,修改

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

这两行为:

GRUB_CMDLINE_LINUX_DEFAULT="quietsplash text"
GRUB_CMDLINE_LINUX="rdblacklist=nouveaunouveau.modeset=0"

保存退出后,执行:

sudo update-grub

以更新grub。

c.重启电脑,在text模式下用命令行安装驱动

在进入用户登陆界面后,按Ctrl+Alt+F1进入控制台,输入用户名密码登陆后,输入:

sudo service lightdm stop

关闭图形界面(切记,否则英伟达显卡驱动会安装失败),然后cd命令切换到英伟达显卡驱动安装文件NVIDIA-Linux-x86_64-3xx.xx.run所在的目录,执行:

sudo sh NVIDIA-Linux-x86_64-3xx.xx.run

选Accept,根据提示一路Yes和OK到底完成安装(安装成功检查:输入:

nvidia-smi

命令查看英伟达显卡驱动信息),再输入:

sudo service lightdm start

回到登陆界面登陆。

d.结束后再次修改grub文件

终端执行:

sudo vim /etc/default/grub

编辑文件/etc/default/grub,修改

GRUB_CMDLINE_LINUX_DEFAULT="quietsplash text"
GRUB_CMDLINE_LINUX="rdblacklist=nouveaunouveau.modeset=0"

这两行为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="rdblacklist=nouveaunouveau.modeset=0"

保存退出后,执行:

sudo update-grub

以更新grub,重启完成。

附:解决ubuntu无限重复登陆

我觉得是三种原因:

(1)先前安装的英伟达显卡驱动崩溃,解决方法是进入控制台关闭图形界面后,输入:

sudo sh NVIDIA-Linux-x86_64-3xx.xx.run --uninstall

将崩溃的英伟达显卡驱动卸载干净,再重新安装;

(2)nouveau的黑名单不见了,解决方法如安装,重新写blacklist,重新刷grub;

(3).Xauthority文件中文件夹权限冲突,解决方法是进入命令行模式输入:

sudo rm ~/.Xauthority

来删除该文件。

step2

step2:安装CUDA8.0以及cuDNN

(1)先在官网上下载对应的CUDA安装文件,这里选择run安装(下载地址:CUDA Toolkit 8.0 - Feb 2017

手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

下载完成后,打开终端切换到该安装文件所在目录,执行:

sudo sh cuda_8.0.61_375.26_linux.run

按空格跳过前面的协议,按提示输accept,提示安装图形驱动时输no(英伟达显卡驱动之前已安装),后面按提示输yes和默认路径安装即可。

(2)环境变量配置

打开~/.bashrc文件:

sudo gedit ~/.bashrc 

将以下内容写入到~/.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}}

保存后执行:

source ~/.bashrc

使配置生效。

(3)配置cuDNN

cuDNN是GPU加速计算深层神经网络的库。

首先去官网 https://developer.nvidia.com/rdp/cudnn-download 下载cuDNN,需要注册一个账号才能下载。下载版本号如下图:

手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

下载cuDNN5.1之后切换到下载目录进行解压:

sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz 

进入cuDNN5.1解压之后的include目录,在命令行进行如下操作:

cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include  #复制头文件

再将进入lib64目录下的动态文件进行复制和链接:

cd ..
cd lib64
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.5.1.10 libcudnn.so.5  #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接
sudo ldconfig      #使配置生效

(4)测试CUDA的samples

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make 
sudo ./deviceQuery

如果显示一些关于GPU的信息,则说明安装成功。

手把手教你在Ubuntu 16.04下配置GPU版Caffe(1)

注:CUDA版本可通过命令:

nvcc --version

查看。