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

2023-10-14 10:30

本文主要是介绍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
链接:https://www.jianshu.com/p/622f47f94784
来源:简书
 

 

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

原文链接:https://blog.csdn.net/oMoDao1/article/details/83241074

 

 

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:https://cloud.tencent.com/developer/article/1536738

 

 

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

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

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

 

显卡驱动的安装:

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

https://www.nvidia.com/Download/index.aspx?lang=en-us

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

 

CUDA ToolKit的安装:

CUDA的下载地址为:https://developer.nvidia.com/cuda-downloads

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

当我们选择离线安装,当我们选定相对应的版本之后,下载的时候发现这个地方的文件大小大概在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和显卡驱动是没有一一对应的。
原文链接:https://blog.csdn.net/qq_27825451/article/details/89082978

 

 

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

原文:https://www.jianshu.com/p/464fefb5c5d8

 

推荐blog:

win10 tensorflow-gpu 2.0安装教程 - 知乎 (流程比较清楚)
https://zhuanlan.zhihu.com/p/68183767

Ubuntu18.04安装cuDNN和Tensorflow的正确姿势_FlyWine的博客-CSDN博客 (详细)
https://blog.csdn.net/wf19930209/article/details/95332984

Ubuntu16.04 + 1080Ti深度学习环境配置教程 - 简书  (偏向细节)
https://www.jianshu.com/p/5b708817f5d8

 

 

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博客
https://blog.csdn.net/Lucifer_zzq/article/details/76675239

 

9. 显卡型号 和 CUDA 的关系

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

如何检查显卡支持哪个版本的CUDA -百度经验
https://jingyan.baidu.com/article/6fb756ec4fabc4241858fbf7.html

 

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

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

ubuntu 安装多个CUDA版本并可以随时切换_yinxingtianxia的博客-CSDN博客
https://blog.csdn.net/yinxingtianxia/article/details/80462892

CUDA8.0和9.0版本切换_自己的学习笔记-CSDN博客
https://blog.csdn.net/u010821666/article/details/79957071

 

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

Pytorch 使用不同版本的 cuda - yhjoker - 博客园
https://www.cnblogs.com/yhjoker/p/10972795.html

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

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

CUDA计算能力的含义_qq_25147897的博客-CSDN博客
https://blog.csdn.net/qq_25147897/article/details/78391534

 

这篇关于NVDIA显卡驱动, CUDA, cuDNN概念及安装顺序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209909

相关文章

windows下安装Nginx全过程

《windows下安装Nginx全过程》文章介绍了HTTP和反向代理服务器的概念,包括正向代理和反向代理的区别,并详细描述了如何安装和配置Nginx作为反向代理服务器... 目录概念代理正向代理反向代理安装基本属性nginx.conf查询结构属性使用运行重启停止总结概念是一个高性能的HTTP和反向代理we

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都