综述
说起深度学习平台的搭建,很多人可能会想起被cuda支配的恐惧。但其实到了现在,随着Nvidia的重视,情况确实有所改善,但cuda的安装对于一个新手来说,依旧不是那么友好。本文在参考了网上的教程和英伟达的官方文档之后,结合自己的思考写下此教程。另外,本次平台搭建的环境如下:
- 系统 Ubuntu16.04
- N卡 Nvidia GeForce GT 740M
禁用Nouveau
想要安装英伟达驱动,首先你需要将Nouveau驱动禁用。
Linux不同发行版的禁用方式不同,根据
Cuda安装文档#禁用nouveau
可知,Ubuntu 版本的禁用方式如下:1
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
在其中添加如下两行:1
2blacklist nouveau
options nouveau modeset=0
然后执行以下命令并重启:1
2sudo update-initramfs -u
sudo reboot
重新启动后可使用以下命令查看禁用是否成功1
lspci | grep nouveau
如果什么都不输出,则禁用成功,反之不成功。
安装Nvidia驱动(可选)
Nvidia驱动是一定要安装的,至于此处为什么要注明可选呢,其实是由于在安装Cuda时再安装Nvidia驱动也可。此处讲如何手动安装Nvidia驱动。
首先保证禁用nouveau成功,然后从英伟达驱动下载选择合适的驱动进行下载,例如,我的选择如下图所示
点击搜索并下载,将其放在$home目录下,即/home/xxx/下,同时按下CTRL+ALT+F1进入tty1,输入以下命令1
2
3
4sudo service lightdm stop #关闭图形界面
cd ~ # 进入家目录
sudo chmod a+x NVIDIA-Linux-x86_64-xxx.xx.run #修改执行权限
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run --no-opengl-files #运行
注意再运行时最好加上–no-opengl-files选项,防止无限重启图形界面。
安装完成后,输入以下命令:1
sudo nvidia-smi
如果出现类似下面的图形,则证明安装驱动成功
安装Cuda
如果已经安装了Nvidia驱动的话,可以直接跳到 正式安装Cuda 环节,如果尚未安装好驱动的话,请从 安装前准备 开始
安装前准备
- 禁用nouveau
- 重启进入text mode, 参考Ubuntu16.04 进入text mode此链接,可与上一步的重启合并。
正式安装Cuda
针对Ubuntu 16.04,Cuda的安装有两种形式,一种是Run installer,另一种是Deb installer,本文选用Run installer.
在Cuda下载页面选择并下载,链接包含了我的选择,为方便起见,将下载后的文件放在家目录下,注意下载补丁。例如我下载的有以下文件:
- cuda_9.1.85_387.26_linux.run
- cuda_9.1.85.1_linux.run
- cuda_9.1.85.2_linux.run
- cuda_9.1.85.3_linux.run
首先确保,这些文件都具有运行权限,如果没有,可以使用以下命令:
sudo chmod a+x *.run
然后运行以下命令1
sudo ./cuda_9.1.85_387.26_linux.run
此时会弹出四个选项,依次为
- EULA Acceptance。此为用户协议,选择accept
- nvidia 驱动安装。 此为安装英伟达驱动,如果已经安装过,则选择n, 未安装过则选择y
- Cuda 安装位置。回车,选y
- Samples安装位置。回车,选y
至此,安装Cuda完毕
配置Cuda路径
输入以下命令,进行配置环境1
2
3
4sudo vi ~/.bashrc
export PATH=/usr/local/cuda-9.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH
source ~/.bashrc
安装Cudnn
Cudnn的安装相对简单,不过对于Ubuntu16.04来说,也有两种模式,一种是deb模式,一种是手动copy模式,为保持一致,我们不选择deb模式。
在cuDNN官网下载选择与Cuda的版本相匹配的cuDNN。如我的Cuda版本是9.1, cuDNN版本是7.1,下载的文件为cudnn-9.1-linux-x64-v7.1.tgz并将其放入家目录下,输入以下命令:1
2
3
4
5tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h \
/usr/local/cuda/lib64/libcudnn*
至此cuDNN安装完毕
后记
在安装完Cuda后,可以编译存储在家目录下的Nvidia-Sample目录下的示例,进行检验,具体也可参考运行Sample
Reference
参考的链接有: