如果你的电脑运行着 ubuntu16.04,并且配备了一块 nvidia geforce gpu 显卡,那么不利用它来运行深度学习模型就太浪费了!虽然网上关于这方面的教程有很多,但质量参差不齐。本文将详细指导你如何安装 gpu 显卡驱动、cuda9.0 和 cudnn7,助你一步步搭建好环境,值得一试!
注意:由于不同系统和 GPU 对应的 CUDA 和 cuDNN 版本有所不同,本文仅以 Ubuntu16.04、NVIDIA GeForce GPU、CUDA9.0 和 cuDNN7 为例进行讲解。其它版本的安装过程类似,但细节上会有不同,请读者在实际操作中灵活处理。
必要条件
要顺利进行安装,你的电脑需要满足以下两个条件:
- 安装了 Ubuntu16.04
- 自带一块 NVIDIA GeForce GPU 显卡
一、安装 GPU 显卡驱动
仅仅拥有一块 NVIDIA GPU 显卡还不够,还需要安装对应的 GPU 显卡驱动。
- 首先,访问 GeForce 官网,在手动搜索驱动程序的选项中,选择你的系统为“linux 64-bit”。其他选项保持默认设置,然后点击开始搜索,系统会自动匹配你的 GPU 显卡并显示可用的驱动程序,如下图所示:
如图所示,找到适合你的驱动版本并下载。例如,我选择了版本 418.43,下载后的文件名为 NVIDIA-Linux-x86_64-418.43.run。
- 打开终端,首先卸载系统中已安装的 NVIDIA 显卡驱动,以确保清洁安装(如果之前没有安装过,可跳过此步骤)。
$ sudo apt-get --purge remove nvidia-*
- 打开 blacklist 文件:
$ sudo gedit /etc/modprobe.d/blacklist.conf
在文件末尾添加以下几行:
blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv
接下来,在终端中输入:
$ lsmod | grep nouveau
如果没有输出,可以直接进行下一步。如果有输出,则继续在终端中输入:
$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
并写入以下内容:
blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
保存并关闭文件,然后在终端中输入以下命令,确认没有输出:
$ sudo update-initramfs -u $ lsmod | grep nouveau # 如果仍有输出,重启一次电脑
至此,应该没有输出,可以继续安装驱动程序了。
- 在正式安装驱动之前,请记住你下载的 .run 文件的路径和完整文件名。按 Ctrl+Alt+F1 进入命令行界面,输入以下命令:
$ sudo /etc/init.d/lightdm stop $ sudo init 3
进入 .run 文件的下载路径,使用 chmod 命令增加 .run 文件的执行权限。
$ chmod a+x NVIDIA-Linux-x86_64-418.43.run $ sudo ./NVIDIA-Linux-x86_64-418.43.run -no-x-check -no-nouveau-check -no-opengl-files
安装程序将开始运行,完成后输入以下命令:
$ nvidia-smi
如果看到类似下图的结果,说明驱动安装成功:
最后,回到图形界面:
$ sudo /etc/init.d/lightdm start
至此,GPU 显卡驱动已成功安装。
二、安装 CUDA9.0
- 首先,访问 CUDA 下载网站。由于当前 CUDA 版本已更新至 10,我们需要安装 9.0 版本。因此,点击 Legacy Releases,进入早期版本列表。
然后,在 CUDA 版本列表中选择 9.0 版本。
选择相应的系统信息后,点击 Download 下载 runfile 文件。
2. 打开终端,进入 CUDA9.0 的下载目录,输入:
$ chmod a+x cuda_9.0.176_384.81_linux.run $ sudo ./cuda_9.0.176_384.81_linux.run
安装过程中会提示你选择配置选项,一般选择默认设置即可。特别注意,在询问是否安装 Graphics Driver for Linux-x86_64:XXXX 版本时,必须选择 no,以免覆盖之前安装的驱动。
- 安装完成后,配置环境变量。打开 .bashrc 文件,在终端中输入:
$ sudo gedit ~/.bashrc
在文件末尾添加以下内容:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存并退出,然后在终端中输入:
$ source ~/.bashrc
- 验证 GPU 驱动版本为 418.43:
$ cat /proc/driver/nvidia/version
验证 CUDA 版本为 9.0:
$ nvcc -V
5. 如果遇到未安装 gcc 或者 gcc 版本过高的问题,需要手动降级,这些问题通常较易解决,此处不做详细说明。
三、安装 cuDNN
- 首先,访问 cuDNN 下载网站。需要注意的是,下载前需要注册账号。在版本列表中选择与 CUDA9.0 兼容的 Linux 版本。
2. 下载完成后,解压文件:
$ tar -zxvf cudnn-9.0-linux-x64-v7.6.1.34.tgz
解压命令输出如下:
cuda/include/cudnn.h cuda/NVIDIA_SLA_cuDNN_Support.txt cuda/lib64/libcudnn.so cuda/lib64/libcudnn.so.7 cuda/lib64/libcudnn.so.7.6.1 cuda/lib64/libcudnn_static.a
将相关文件复制到指定目录:
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
- 在本地 cuda 路径下创建软链接,输入以下命令:
$ cd /usr/local/cuda/lib64 $ sudo chmod +r libcudnn.so.7.6.1 $ sudo ln -sf libcudnn.so.7.6.1 libcudnn.so.7 $ sudo ln -sf libcudnn.so.7 libcudnn.so $ sudo ldconfig
注意,这里文件名和版本号应与解压文件名一致。
- 在本地 cuda 路径下检查安装情况:
$ cd /usr/local/cuda/lib64 $ ll
如果看到 cuDNN 对应的版本号,说明安装成功!
lrwxrwxrwx 1 root root 13 3月 19 16:02 libcudnn.so -> libcudnn.so.7* lrwxrwxrwx 1 root root 17 3月 19 16:02 libcudnn.so.7 -> libcudnn.so.7.6.1* -rwxr-xr-x 1 root root 287641664 3月 19 16:00 libcudnn.so.7.6.1*
至此,GPU 显卡驱动、CUDA9.0 和 cuDNN7 环境配置完成。
参考文献:
Ubuntu16.04搭建GTX1080+CUDA9.0+cuDNN7.0.5+Tensorflow1.6.0环境