admin 管理员组

文章数量: 887021

NVDIA显卡驱动, CUDA, cuDNN概念及安装顺序

1、什么是CUDA

        CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。


2、什么是CUDNN

        NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。


3、CUDA与CUDNN的关系

      CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

 

cuDNN是一个SDK,是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。

总结:cuDNN与CUDA没有一一对应的关系

 


4、CUDNN不会对CUDA造成影响

官方Linux安装指南表述:

        从官方安装指南可以看出,只要把cuDNN文件复制到CUDA的对应文件夹里就可以即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。

cuDNN的安装文件有两个文件夹,共五个文件,如下

cudnn.h是调用加速库的文件,*.os是

CUDA平台里对应文件夹的文件,如下

可以看到,CUDA已有的文件与cuDNN没有相同的文件,复制CUDNN的文件后,CUDA里的文件并不会被覆盖,CUDA其他文件并不会受影响。


作者:Sunglam
链接:
来源:简书
 

 

Tensorflow不同版本要求与CUDA及CUDNN版本对应关系

原文链接:

 

 

5、显卡,显卡驱动

  • 显卡: 简单理解这个就是我们前面说的GPU,尤其指NVIDIA公司生产的GPU系列,因为后面介绍的cuda,cudnn都是NVIDIA公司针对自身的GPU独家设计的。
  • 显卡驱动:很明显就是字面意思,通常指NVIDIA Driver,其实它就是一个驱动软件,而前面的显卡就是硬件。
  • gpu架构:Tesla、Fermi、Kepler、Maxwell、Pascal
  • 芯片型号:GT200、GK210、GM104、GF104等
  • 显卡系列:GeForce、Quadro、Tesla
  • GeForce显卡型号:G/GS、GT、GTS、GTX

原文blog:

 

 

6、NVDIA显卡驱动 和 CUDA 的区别

NVIDIA的显卡驱动程序 和 CUDA完全是两个不同的概念哦!

CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。CUDA的本质是一个工具包(ToolKit)

 

显卡驱动的安装:

当我们使用一台电脑的时候默认的已经安装了NVIDIA的显卡驱动,因为没有显卡驱动根本用不了显卡嘛,但是这个时候我们是没有CUDA可以用的,我们可以更新我们的驱动,更新链接为:

.aspx?lang=en-us

在这个里面可以根据自己的显卡类型选择最新的驱动程序。显卡驱动程序当前大小大概500多M。

 

CUDA ToolKit的安装:

CUDA的下载地址为:

我们可以选择两种安装方式,一种是在线安装(我还没用过),一中离线安装(我采用的)即本地安装,

当我们选择离线安装,当我们选定相对应的版本之后,下载的时候发现这个地方的文件大小大概在2G左右,Linux系统下面我们选择runfile(local) 完整安装包从本地安装,或者是选择windows的本地安装。CUDA Toolkit本地安装包时内含特定版本Nvidia显卡驱动的,所以只选择下载CUDA Toolkit就足够了,如果想安装其他版本的显卡驱动就下载相应版本即可。

所以,NVIDIA显卡驱动和CUDA工具包本身是不具有捆绑关系的,也不是一一对应的关系,只不过是离线安装的CUDA工具包会默认携带与之匹配的最新的驱动程序。

注意事项:NVIDIA的显卡驱动器与CUDA并不是一一对应的哦,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,比如我的电脑上同事安装了 CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了,但是由于使用离线的CUDA总是会捆绑CUDA和驱动程序,所以在使用多个CUDA的时候就不要选择离线安装的CUDA了,否则每次都会安装不同的显卡驱动,这不太好,我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。

总结:CUDA和显卡驱动是没有一一对应的。
原文链接:

 

 

7、NVDIA显卡驱动, CUDA, cuDNN, tensorflow安装顺序

很多过来人推荐的顺序是:

1.NVDIA显卡驱动, 2.CUDA, 3.cuDNN, 4.tensorflow

注意版本号相互兼容

 

1.检查自己的显卡,以及显卡驱动

2.选择CUDA toolkit

3.选择cuDNN

4.tensorflow-gpu

 

查看GPU版本(N卡)
lspci | grep -i nvidia

查看nvidia驱动版本
cat /proc/driver/nvidia/version

查看CUDA版本
cat /usr/local/cuda/version.txt
nvcc -V # nvidia 编译器版本

查看cuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

查看tensorflow版本
pip list | grep tensorflow

原文:

 

推荐blog:

win10 tensorflow-gpu 2.0安装教程 - 知乎 (流程比较清楚)

Ubuntu18.04安装cuDNN和Tensorflow的正确姿势_FlyWine的博客-CSDN博客 (详细)

Ubuntu16.04 + 1080Ti深度学习环境配置教程 - 简书  (偏向细节)

 

 

8、cuDNN安装

首先说一下网上大多数中文安装cuDNN教程的错误方式,这种方式真的坑人无数。

简单地说网上的大多错误的安装cuDNN的方式都是将下载后的cuDNN压缩包解压。然后再将cudnn的头文件(cuda/include目录下的.h文件)复制到cuda安装路径的include路径下,将cudnn的库文件(cuda/lib64目录下的所有文件)复制到cuda安装路径的lib64路径下。这种方法如果不重置cuDNN相应的符号链接的话是不能成功的安装cuDNN的。
 

原文blog:

最正确的姿势安装cudnn,网上大多数教程都太坑了_cuda,cudnn安装,ubuntu_Lucifer_zzq的博客-CSDN博客

 

9. 显卡型号 和 CUDA 的关系

需要查看本机的显卡型号支持的CUDA版本,然后安装对应的CUDA。

如何检查显卡支持哪个版本的CUDA -百度经验
.html

 

10. ubuntu 安装多个CUDA版本 并 随时切换CUDA

实现不同版本的CUDA之间的切换,需要修改 软连接。

ubuntu 安装多个CUDA版本并可以随时切换_yinxingtianxia的博客-CSDN博客

CUDA8.0和9.0版本切换_自己的学习笔记-CSDN博客

 

如果没有root权限,可以参考以下blog

Pytorch 使用不同版本的 cuda - yhjoker - 博客园
.html

11. GPU 的Compute Capability不是量化GPU性能高低的指标

其实代表的是 GPU版本号,每一种在计算能力都拥有着不同的特点,主版本号和次版本号在硬件细节上亦有不同。

CUDA计算能力的含义_qq_25147897的博客-CSDN博客

 

本文标签: NVDIA显卡驱动 CUDA cuDNN概念及安装顺序