Ubuntu16.04安装深度学习环境CUDA8.0,cudnn6(Anaconda2,python2.7)记录帖

1、为什么要装CUDA,CUDNN:

先来讲讲CPU和GPU的关系和差别吧。截图来自(CUDA的官方文档):
在这里插入图片描述
从上图可以看出GPU(图像处理器,Graphics Processing Unit)和CPU(中央处理器,Central Processing Unit)在设计上的主要差异在于GPU有更多的运算单元(如图中绿色的ALU),而Control和Cache单元不如CPU多,这是因为GPU在进行并行计算的时候每个运算单元都是执行相同的程序,而不需要太多的控制。Cache单元是用来做数据缓存的,CPU可以通过Cache来减少存取主内存的次数,也就是减少内存延迟(memory latency)。GPU中Cache很小或者没有,因为GPU可以通过并行计算的方式来减少内存延迟。因此CPU的Cahce设计主要是实现低延迟,Control主要是通用性,复杂的逻辑控制单元可以保证CPU高效分发任务和指令。所以CPU擅长逻辑控制,是串行计算,而GPU擅长高强度计算,是并行计算。打个比方,GPU就像成千上万的苦力,每个人干的都是类似的苦力活,相互之间没有依赖,都是独立的,简单的人多力量大;CPU就像包工头,虽然也能干苦力的活,但是人少,所以一般负责任务分配,人员调度等工作。

可以看出GPU加速是通过大量线程并行实现的,因此对于不能高度并行化的工作而言,GPU就没什么效果了。而CPU则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。

CUDA的官方文档是这么介绍CUDA的:a general purpose parallel computing platform and programming model that leverages the parallel compute engine in NVIDIA GPUs to solve many complex computational problems in a more efficient way than on a CPU.
换句话说CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。

在 CUDA 的架构下,一个程序分为两个部份:host 端和 device 端。Host 端是指在 CPU 上执行的部份,而 device 端则是在显示芯片上执行的部份。Device 端的程序又称为 “kernel”。通常 host 端程序会将数据准备好后,复制到显卡的内存中,再由显示芯片执行 device 端程序,完成后再由 host 端程序将结果从显卡的内存中取回。
在这里插入图片描述
在 CUDA 架构下,显示芯片执行时的最小单位是thread。数个 thread 可以组成一个block。一个 block 中的 thread 能存取同一块共享的内存,而且可以快速进行同步的动作。每一个 block 所能包含的 thread 数目是有限的。不过,执行相同程序的 block,可以组成grid。不同 block 中的 thread 无法存取同一个共享的内存,因此无法直接互通或进行同步。因此,不同 block 中的 thread 能合作的程度是比较低的。不过,利用这个模式,可以让程序不用担心显示芯片实际上能同时执行的 thread 数目限制。例如,一个具有很少量执行单元的显示芯片,可能会把各个 block 中的 thread 顺序执行,而非同时执行。不同的 grid 则可以执行不同的程序(即 kernel)。
在这里插入图片描述
cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

2、安装CUDA:

官网下载对应版本:
https://developer.nvidia.com/cuda-downloads
在这里插入图片描述
选择版本:ubuntu16.04
在这里插入图片描述
下载到你的目录下,开始安装:
首先cd到你的目录,我的是:

cd Desktop/

然后:

sudo sh cuda_8.0.44_linux.run --override

开始阅读说明书,一直enter即可
在这里插入图片描述
第一个是no,因为你已经有显卡驱动了,所以不需要。
结果:
在这里插入图片描述

3、配置CUDA变量

指令:

export PATH="$PATH:/usr/local/cuda-8.0/bin"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64"
nvidia-smi

在这里插入图片描述
我是装了显卡对应的驱动的,所以显示是CUDA10.2,不知会不会有影响。

验证CUDA的安装

cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

出现:
在这里插入图片描述

4、下载对应版本的CUDNN

网址:
https://developer.nvidia.com/cudnn
需注册,自行注册
在这里插入图片描述
在这里插入图片描述
选择左下角查看以前的版本
在这里插入图片描述
我的选择是cuDNN v6.0 Library for Linux
在这里插入图片描述
下载得到一个tgz文件、
cd到下载文件所在的目录下
解压指令:

tar -zxvf libcudnn7_7.4.1.5-1+cuda9.0_amd64.tgz 

解压以及所得到的文件
在这里插入图片描述
拷贝相应文件夹到制定目录,也就是之前安装的CUDA目录下,指令:

sudo cp cuda/lib64/* /usr/local/cuda-8.0/lib64/
sudo cp cuda/include/* /usr/local/cuda-8.0/include/

拷贝完成之后,可以使用以下命令查看CUDNN的版本信息:

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

在这里插入图片描述

5、添加库的路径

打开终端并输入:

sudo gedit ~/.bashrc

输入用户密码。这时输入的密码是不可见的。

前面的步骤会打开.bashrc文件,在其末尾添加:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

使其立即生效,在终端执行:

source ~/.bashrc

或者重启电脑即可。

完工。

参考博客
https://blog.csdn.net/qq_31148431/article/details/86606144
https://blog.csdn.net/m0_38087936/article/details/81151789

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值