Ubuntu16.04安装CUDA8.0和cuDNNv5.1

CUDA8.0目前仍然是深度学习领域最常用的CUDA版本。对于搭建深度学习开发环境而言,CUDA8.0+cuDNNv5.1是一个经典选择,是TensorFlow1.2的安装要求。笔者第一次在Ubuntu16.04上安装CUDA8.0和cuDNNv5.1,以作记录。

一、安装CUDA前的准备工作

装好显卡驱动是安装CUDA前必不可少的工作,前边的博文已经有介绍:https://blog.csdn.net/qq_30163461/article/details/80314630。此外,CUDA还需要一些库的支持,通过指令完成安装:

sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

如果没有安装mesa-common-dev和freeglut3-dev,则会在CUDA安装结束后出现以下提示:

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

Missing recommended library: libXmu.so

Installing the CUDA Samples in /home/zhou

意思是缺少一些库。如果安装CUDA前忘记以上两条指令,那么在装完CUDA后看到该提示再安装这些库也可以。


二、run文件方式安装CUDA

在官网中选择适合自己系统的CUDA8.0 runfile文件,我下载的是cuda_8.0.61_375.26_linux.run文件。

2.1 初始安装流程

首先进入run文件所在目录,并通过

sudo sh cuda_8.0.61_375.26_linux.run

指令开始CUDA的安装。

执行该指令后首先会有一个特别特别长的EULA显示,只能狂按ENTER键继续。接下里是安装的交互过程,其中需要注意的是不要再安装显卡驱动!因为前面我们已经安装了最新的nvidia384,所以这里不要选择安装。其余的都直接默认或者选择是即可。交互界面如下:

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location

[ default is /home/zhou ]:

安装结束后会出现如下界面:

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.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-8.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.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 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver
Logfile is /opt/temp//cuda_install_6583.log

该界面告诉我们应该声明环境变量,修改环境变量的教程有:点击打开链接,点击打开链接,以及《鸟哥的Linux私房菜》P301-P303。

2.2 修改环境变量

首先通过

sudo vim ~/.bashrc

打开.bashrc文件。.bashrc文件是用户主目录下的一个隐藏文件,专门设置该用户下的PATH。这种设置方法只对服务器中的当前登录用户有效。

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

export的意思是将自定义变量设置为环境变量。另外,关于导入环境变量的写法,还可以用以下指令(变量的不同写法,更简单,详情见《鸟哥的Linux私房菜》P301):

export PATH=${PATH}:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-8.0/lib64
export CUDA_HOME="/usr/local/cuda-8.0:$CUDA_HOME" //为接下来安装TensorFlow做准备

最后通过

source ~/.bashrc

使修改立即生效。(注:在更新环境变量时我好想结合使用了附录参考教程中几个方法)

2.3 安装中可能遇到的问题——GCC版本过高

根据一些博客的参考资料,如果在安装过程中可能会出现GCC版本过高的问题,那么需要对GCC进行版本降级,通常需要降到4.9版本(注:我的GCC为5.4版,在安装过程中并未出现该问题)。

安装低版本GCC、G++:

sudo apt-get install  gcc-4.9
sudo apt-get install  g++-4.9

进入/usr/bin:

cd /usr/bin

删除新版GCC和G++并建立软连接:

sudo rm gcc
sudo rm g++
sudo ln -s gcc-4.9 gcc
sudo ln -s g++-4.9 g++

三、测试CUDA是否成功安装

一些指令和方法可以测试CUDA是否成功安装。

3.1 nvcc -V 指令

如果成功安装了CUDA,该指令可以显示CUDA的版本信息,效果如下:


3.2 测试cuda的Samples

在安装CUDA的过程如果选择了安装Samples,可以通过该方法进行测试,相较于nvcc指令该方法更准确。指令如下

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make            //编译 (注:只能编译一次,因为源文件不再存在了)
./deviceQuery        //在编译过文件以后,只需第一条命令和第三条命令就可以查看CUDA信息

若出现如下界面表明CUDA成功安装:

Ubuntu16.04安装CUDA8.0和cuDNNv5.1_第1张图片

https://blog.csdn.net/qq_25819827/article/details/52281019详细介绍了用deviceQuery看GPU属性的方法。

3.3 关于卸载CUDA8.0

在CUDA的官方文档中有如下说明:To uninstall the CUDA Toolkit, run the uninstallation script provided in the bin

directory of the toolkit. By default, it is located in /usr/local/cuda-8.0/bin: **$ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl**.

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl**

四、安装cuDNNv5.1

cudnn的安装其实比较简单,就是解压后把相应的文件拷贝到对应的 CUDA 目录下即可。关键点是一定要安装cuda对应的cudnn包,本机中安装的是cuda8.0所以对应的cudnn为v5.1这很重要,如果安装错了版本,会影响后边TensorFlow的安装和使用。

cuDNN的安装步骤:

1、从官网上下载cudnn的安装包。

2、将安装包移动到/tmp目录下并进行解压缩操作(注:可以在任何目录下进行解压缩,因为我安装的是服务器系统,需要将安装包进行挂载,并将其移动到/tmp下解压)。解压缩后在该目录下(/tmp)下自动生成一个cuda文件。解压缩命令为:

tar -zxvf cudnn-7.0-linux-x64-v3.0-prod.tgz

解压缩命令完成后,/tmp/cuda下有两个文件,/tmp/cuda/incude下有cudnn.h文件,/tmp/cuda/lib64下有libcudnn.so, libcudnn.so.5, libcudnn.so.5.1.10和libcudnn_static.a文件,其中libcudnn.so是libcudnn.so.5的软连接, libcudnn.so.5是libcudnn.so.5.1.10的软连接,libcudnn.so.5.1.10为源文件(ls -l指令的结果)。

3、拷贝相应文件到CUDA的安装目录,指令如下:

cd /tmp/cuda/include 
sudo cp *.h /usr/local/cuda/include/  (注意这里是你自己的cuda的安装地址,复制*.h文件) 
cd /tmp/cuda/lib64 
sudo cp libcudnn* /usr/local/cuda/lib64/ 

注意在第二句命令中,/usr/local/cuda/include/为cuda的安装目录,该目录也是cuda默认情况下的安装目录。另外以上四条指令可以省去切换目录指令,直接用两条cp指令完成。

4、后续处理

其实在步骤3以后安装已经完成,但由于权限的原因原来的两个符号链接文件(libcudnn.so,libcudnn.so.5)已经失效了,直接编译便会报错。解决方法有两种:1.修改文件权限 2.手动生成连接符号(推荐第二种方法)

修改文件权限:

sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

手动生成连接符号:

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 #生成软链接

五、查看CUDA和cuDNN的版本

CUDA:cat /usr/local/cuda/version.txt

cuDNN:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

版本信息如下:

Ubuntu16.04安装CUDA8.0和cuDNNv5.1_第2张图片


CUDA参考教程:

https://blog.csdn.net/u010837794/article/details/63251725

https://blog.csdn.net/autocyz/article/details/52299889

https://blog.csdn.net/sinat_31802439/article/details/52958791

点击打开链接


cuDNN参考教程:

https://blog.csdn.net/u010480194/article/details/54287727

https://blog.csdn.net/a1154761720/article/details/52302595

https://www.cnblogs.com/alexanderkun/p/6908191.html


你可能感兴趣的:(深度学习环境搭建,Ubuntu,Linux)