文章目录

  • 1. CPU和GPU
  • 2. 什么是CUDA
  • 3.什么是cuDNN
  • 4.CUDA与cuDNN的关系
  • 5.安装
    • 5.1 CUDA的安装
    • 5.2 cuDNN的安装
  • 6.参考
  • 7.注意:

1. CPU和GPU

CPU和GPU是不一样的计算机设备,CPU作为计算机心脏一直被人们所认知,但是GPU直到最近才被人们重视起来,因为其优异的图片运算性能,或者说矩阵运算性能。

CPU和GPU的关系和差别:

从上图可以看出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则是串行操作,需要很强的通用性,主要起到统管和分配任务的作用。

https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#thread-hierarchy

2. 什么是CUDA

CUDA(Compute Unified Device Architecture,统一计算架构) 是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。透过这个技术,用户可利用NVIDIA的GeForce 8以后的GPU和较新的Quadro GPU进行计算。亦是首次可以利用GPU作为C-编译器的开发环境。NVIDIA营销的时候,往往将编译器与架构混合推广,造成混乱。实际上,CUDA可以兼容OpenCL或者自家的C-编译器。无论是CUDA C-语言或是OpenCL,指令最终都会被驱动程序转换成PTX代码,交由显示核心计算。

换句话说CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。

在 CUDA 架构下,显示芯片执行时的最小单位是thread。数个 thread 可以组成一个block。一个 block 中的 thread 能存取同一块共享的内存,而且可以快速进行同步的动作。每一个 block 所能包含的 thread 数目是有限的。不过,执行相同程序的 block,可以组成grid。不同 block 中的 thread 无法存取同一个共享的内存,因此无法直接互通或进行同步。因此,不同 block 中的 thread 能合作的程度是比较低的。不过,利用这个模式,可以让程序不用担心显示芯片实际上能同时执行的 thread 数目限制。例如,一个具有很少量执行单元的显示芯片,可能会把各个 block 中的 thread 顺序执行,而非同时执行。不同的 grid 则可以执行不同的程序(即 kernel)。

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

3.什么是cuDNN

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

4.CUDA与cuDNN的关系

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

官方安装教程
CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
cuDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows

5.安装

5.1 CUDA的安装

CUDA10的安装包可直接从NVIDIA官网下载。

根据相应的系统选项,我选择的是cuda_10.1.243_426.00_win10.exe(大小为2.3G),安装的时候建议选择自定义而不是“精简”(从下面的英文解释可以看出,其实这里的精简写成完整应该更贴切,它会安装所有组件并覆盖现有驱动,然而我并不想安装全家桶,何况我的官方显卡驱动比它的新)。

双击安装:

配置环境变量

查看是否配置成功

5.2 cuDNN的安装

安装完成之后,还需要下载与CUDA对应的相应版本cuDNN,到下图所示的下载页面,下载完成后,将这个压缩包里的所有文件放到CUDA10安装目录相应文件夹下即可。



将对应文件夹下的文件 放入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

再添加一个环境变量

添加环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64

6.参考

https://blog.csdn.net/weixin_41781408/article/details/89946085
https://blog.csdn.net/MrCharles/article/details/89193619

7.注意:

用anaconda建了两个MXnet虚拟环境 一个cpu 一个gpu这样是不行的, 必须建一个环境!

win10下CUDA和cuDNN的安装(超详细)相关推荐

  1. win10下CUDA和CUDNN的安装(超详细)!亲测有效!

    CUDA10安装配置 CUDA10的安装包可直接从NVIDIA官网下载.根据相应的系统选项,我选择的是cuda_10.1.168_425.25_win10.exe(大小为2.3G),安装的时候建议选择 ...

  2. Windows10下CUDA与cuDNN的安装

    安装CUDA 了解自己电脑的CUDA版本,右击-NVIDIA控制面板-系统信息-组件.支持的CUDA版本与显卡驱动有关. 通过下面网址进行下载对应CUDA版本,也不一定非要装最高版本. CUDA To ...

  3. 验证CUDA和CUDNN是否安装成功的方法

    验证CUDA和CUDNN是否安装成功的方法 问题提出 在安装完CUDA和CUDNN之后,查看是否安装成功 问题解决 通过NVIDIA提供的 deviceQuery.exe 和 bandwidthTes ...

  4. 2021最新Win10+Nvidia显卡环境下CUDA、cuDNN以及TensorFlow安装教程

    为了不耽误大家的时间,在阅读之前请注意: 1.如果你的电脑没有Nvidia显卡,那么请关闭本页面,本教程对你无用: 2.如果你的电脑配置不是Win10+Nvidia显卡,比如windows版本或者显卡 ...

  5. 从无到有 Ubuntu16.04 18.04 20.04安装+Todesk+Chrome+NVIDIA驱动+CUDA+Cudnn+Anaconda3+Pycharm 超详细教程+踩坑问题

    从无到有 Ubuntu16.04 18.04 20.04安装+Todesk+Chrome+NVIDIA驱动+CUDA+Cudnn+Anaconda3+Pycharm 超详细教程+踩坑问题(有部分图片忘 ...

  6. win10下CUDA版本卸载与更新

    win10下CUDA版本卸载与更新 1.通过控制面板删除cuda相关程序 点击我的电脑中的控制面板,选择程序和功能. 以下三个保留不要删除,NVIDIA的图形驱动程序.NVIDIA Physx系统软件 ...

  7. win10 下cuda 9.0 卸载

    win10 下cuda 9.0 卸载 1.首先 对于cuda8.0.cuda7.5的卸载都可以兼容 安装cuda9.0之后,电脑原来的NVIDIA图形驱动会被更新,NVIDIA Physx系统软件也会 ...

  8. linux服务器cuda,cudnn的安装与卸载

    写在前面,抛开nvidia驱动和tf-gpu版本谈cuda及cudnn的安装都是耍流氓.大家一定要注意版本对应关系,我遇到了几个典型的因版本不对应导致的问题,我会写在本文后面. 机器显卡为tesla ...

  9. CUDA——Ubuntu系统上CUDA和cuDNN的安装教程

    目录 1 致谢 2 前言 3 CUDA安装步骤 4 cuDNN安装 4.1 cuDNN安装步骤 4.1.1 在页面中没有找到对应Ubuntu版本的`.deb`安装包 4.2 测试cuDNN是否安装成功 ...

最新文章

  1. java volatile 多线程,java多线程-volatile的使用
  2. Ubuntu安装deb软件包错误(依赖关系问题)解决
  3. dedecms /include/uploadsafe.inc.php SQL Injection Via Local Variable Overriding Vul
  4. C/C++ strtol 函数 - C语言零基础入门教程
  5. Vuejs 条件判断
  6. StrongPity APT:不畏曝光,一心迭代,攻城掠地
  7. 说你呢,装着JDK8,却孜孜不倦的写着 JDK6 的代码,写了3年了,JDK8的特性都没用过......
  8. key-list类型内存数据引擎介绍及使用场景
  9. 【CF1107G】Vasya and Maximum Profit(单调栈/单调栈+线段树最大子段和)
  10. 手机 测试php代码大全,VIVO手机测试指令代码大全
  11. opencv实现超像素分割(slic实现)
  12. 轻松编写您自己的拖拉机算法,进行算法大战
  13. 那些年,我做过的产品:有的死了,有的活了
  14. [树的直径 树形DP] UOJ #11【UTR #1】ydc的大树
  15. python是不是很简单_Python老师说Python是编程里最简单的还是两眼一抹黑咋办?
  16. 华为p10有java功能吗_华为P10最强悍的特色功能 很多人都不知道
  17. day06_tomacat
  18. linux学习-安装centos
  19. java单播多播socket_广播(broadcast),组播(multicast),单播(unicast)的Java实现
  20. Javascript日期的Format与Parse

热门文章

  1. 一分钟了解阿里云产品:补丁管理
  2. ie浏览器下调试 console.log() 报错SCRIPT5007: 缺少对象
  3. CorelDRAW 2019新品发布,行业大咖就差你了
  4. mpvue入坑之修改数据页面不刷新
  5. 数据库与python的关系_数据库 引用关系
  6. 用Power BI 拖拽轻松做销售仪表盘(一次学会条形图,矩形图,折线图,树状图,饼图,切片器)
  7. 凤凰网退出微博客领域意味着剩者为王
  8. Windows支持多用户远程桌面同时连接的版本有哪些?
  9. linux中设置固定ip(亲测有效)
  10. nginx 设置固定IP访问文件