Ubuntu16.04安装cuda9.0+cudnn7.0.5+tensorflow-gpu

硬件和系统:显卡是GTX-1080ti,系统是Ubuntu16.04LTS桌面版。整个安装流程分为两大部分,第一部分是安装NVIDIA的文件,包括显卡驱动,cuda以及cudnn;第二部分则是安装tensorflow-gpu版本。

NVIDIA相关文件安装

NVIDIA主要有三个文件安装,显卡驱动#cuda和cudnn,首先简要介绍一下为什么要安装它们:

  • 显卡驱动:这个无需多言,没有它显卡就不能用了,更别提用它来加速;
  • cuda:cuda是NVIDIA推出的通用并行计算架构,它使GPU以并行计算的方式更快地解决复杂的计算问题;
  • cudnn:cudnn是NVIDIA推出的专门用来对深度学习加速的,它支持Matlab,TensorFlow及PyTorch等深度学习的加速优化。
    它们都是从NVIDIA官网下载的,只是cudnn的下载需要注册帐号。我下载的
  • 驱动文件是:NVIDIA-Linux-x86_64-390.87.run(版本为390.87)
  • cuda文件是:cuda_9.0.176_384.81_linux.run(该cuda支持版本大于384.81的驱动)
  • cudnn文件是:cudnn-9.0-linux-x64-v7.tgz(适用于cuda-9.0,实际版本为7.0.5)
    下面是它们具体的安装过程。

1#安装显卡驱动
在安装Ubunutu系统时,系统一般会自己安装nouveau显卡驱动,这是一个第三方的开源显卡驱动,适用于
多种复杂的硬件环境。但它不是NVIDIA官方的驱动,支持不了cuda,只是为了让用户在最开始使用Ubuntu系统时能够以正常的分辨率显示图形界面,所以需要禁用它,然后再安装NVIDIA驱动。

桌面版的Ubuntu,有一个最简单的方式:在“软件和更新”–>“附加驱动”里,系统会自动检测到NVIDIA官方的显卡驱动,例如‘使用NVIDIA binary driver-version 384.130来自nvidia-384(专有,tested)’只要选中它,点击‘应用更改’然后重启即可,这样就完成了nouveau的禁用和版本为384.130的驱动安装,而且384.130的驱动版本也满足cuda9.0的支持大于384.81的驱动的要求。但是!我这样做了重启之后一直在循环登录,进不了系统,原因是384.130的驱动太旧,不能完美支持我的显卡。所以我只能下载390.87的版本手动安装,安装之前还要禁用nouveau。
禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,通过以下命令打开该文件:

sudo gedit /etc/modprobe.d/blacklist.conf

在打开文件的最后一行添加:blacklist nouveau(把nouveau加入黑名单)然后执行以下命令使之生效:

sudo update-initramfs -u

最后输入以下命令测试:

lsmod | grep nouveau

如果没有反应说明nouveau禁用成功,接下来安装显卡驱动。把解压出来的CUDA 安装文件(cuda_9.0.176_384.81_linux.run)移动到 HOME 路径下,按Ctrl+Alt+F1 进入命令行界面,输入用户名和密码进入后,输入以下命令:

sudo /etc/init.d/lightdm stop //禁用X-Window服务,关闭图形界面
sudo chmod a+x NVIDIA-Linux-x86_64-390.87.run(下载的驱动文件名)//赋予驱动文件可执行权限
sudo ./NVIDIA-Linux-x86_64-390.87.run -no-opengl-files //安装

–no-opengl-files表示只安装驱动文件,不安装OpenGL文件,这个参数很重要。等待驱动安装,其中有一些选项,一般默认即可。安装完之后再输入:

sudo /etc/init.d/lightdm start //开启图形界面

重启,此时驱动应该安装成功了,在终端输入:

nvidia-smi //列出驱动版本和GPU的信息列表
nvidia-settings //弹出驱动设置对话框

如果显示列表或弹出对话框则表示驱动安装成功。

2#安装cuda
在安装cuda之前需要先安装依赖,否则会报以下的错误:

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so
Missing recommended library: libGL.so

所以,通过sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 这条命令安装所需依赖。然后进入到cuda文件目录下,执行以下命令:

sudo sh cuda_9.0.176_384.81_linux.run --no-opengl-libs

参数no-opengl-libs表示不安装opengl的库,执行此命令后大概1分钟左右会出现安装协议,狂按回车键,一直到100%后,出现下面提示并要求你输入相关选择:

Do you accept the previously read EULA?
accept/decline/quit: accept           //输入accpet同意协议

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n                       //不安装NVIDIA加速图形驱动,因为之前装过了

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y                       //安装CUDA 9.0 Toolkit

Enter Toolkit Location
 [ default is /usr/local/cuda-9.0 ]:  //cuda默认安装位置,直接回车

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y                       //创建软链接

Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y                       //安装CUDA示例

Enter CUDA Samples Location
 [ default is /home/user ]:             //CUDA示例默认位置,直接回车

Installing the NVIDIA display driver...
Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
Installing the CUDA Samples in /home/user ...
Copying samples to /home/user/NVIDIA_CUDA-9.0_Samples now...
Finished copying samples.

===========
= Summary =
===========

Driver:   Installed
Toolkit:  Installed in /usr/local/cuda-9.0
Samples:  Installed in /home/user

Please make sure that                //提示添加变量路径
 -   PATH includes /usr/local/cuda-9.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.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-9.0/bin   //删除CUDA操作
  
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.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 384.00 is required for CUDA 9.0 functionality to work.    //警告未安装CUDA中的驱动,不管它,之前已经安装符合要求的驱动
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

然后,使用gedit命令打开配置文件添加cuda环境变量:

sudo gedit ~/.bashrc

在文件最后添加以下内容并保存:

export PATH=/usr/local/cuda/bin:$PATH       
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

执行以下命令使配置生效:

source ~/.bashrc

测试CUDA 是否安装成功,输入:

//测试1
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery  
sudo make
./deviceQuery  

//测试2
cd /usr/local/cuda-9.0/samples/1_Utilities/bandwidthTest
sudo make
./bandwidthTest

如果最后出现Result = PASS,说明成功;如果出现Result = FAIL,说明显卡驱动版本和CUDA 9.0不适配,需要重新安装合适的版本。
完成后可用 nvcc -V 命令验证是否安装成功,出现以下信息则表明成功:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

3#安装cudnn
最后安装cudnn,其实cudnn不是安装,而是将它的文件移动到cuda制定的目录下,使cudnn能够调用到相关库函数就行,可以直接把cudnn相关文件移动过去,这里采用软链接的办法。先将cudnn-9.0-linux-x64-v7.tgz解压,得到include 和 lib64 两个文件夹,命令行进入include 文件夹下,进行以下操作:

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

然后进入cudnn/lib64 文件夹下,执行:

sudo cp lib* /usr/local/cuda/lib64/                //复制动态链接库  
cd /usr/local/cuda/lib64/   
sudo rm -rf libcudnn.so libcudnn.so.7          //删除原有动态文件  
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7   //生成软衔接  
sudo ln -s libcudnn.so.7 libcudnn.so           //生成软链接  

随后将路径/usr/local/cuda/lib64 添加到动态库,分两步:
(1)安装vim

sudo apt-get install vim-gtk  

(2)更改cuda配置文件:

sudo vim /etc/ld.so.conf.d/cuda.conf 

打开文件后,按住i进入编辑状态,添加文字:

/usr/local/cuda/lib64

然后按esc,输入:(注意有冒号)

:wq  #保存退出

再输入sudo ldconfig使使链接生效。

安装tensorflow-gpu

直接使用pip(3) install tensorflow-gpu==1.8.0安装指定版本的tensorflow-gpu

参考文章:
添加链接描述
添加链接描述
添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值