手把手教你在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显存)
首先,配置前建议先熟悉一下Linux命令,否则后续配置过程中因不熟悉Linux命令而胡乱搞一通,很容易泪崩。
step1
step1:安装英伟达显卡驱动
(1)先在官网上下载对应的驱动程序(下载地址:NVIDIA 驱动程序下载)
注:有时候会只显示一个网页文档,那就右击把它下载下来,下载后的文件名形式为:NVIDIA-Linux-x86_64-3xx.xx.run,例如我下载的是NVIDIA-Linux-x86_64-375.26.run,375.26为英伟达显卡驱动版本号。
(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)
下载完成后,打开终端切换到该安装文件所在目录,执行:
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,需要注册一个账号才能下载。下载版本号如下图:
下载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的信息,则说明安装成功。
注:CUDA版本可通过命令:
nvcc --version
查看。