机器学习(1)一文带你看懂显卡,显卡驱动,CUDA,CUDNN(内含举例)
一文带你看懂显卡,显卡驱动,CUDA,CUDNN(内含举例)
- 显卡
- 显卡驱动
- CUDA
- CUDNN
- 举一个生动形象的例子
显卡
显卡是硬件设备。(花钱购买的)
(注:显卡不是GPU,显卡的核心组件包含显卡内存(简称显存)和GPU(Graphics Processing Unit,图像处理器),GPU含有DRAM,Control,Cache,ALU)
(注:显存和DRAM不是一个东西,显存存储GPU将要处理的信息,DRAM存放GPU要执行的指令集,和GPU直接进行数据的交换。)
显卡驱动
显卡驱动是一个软件应用,是使得操作系统可以识别你的显卡的一个软件,将用户的一些“人话”转化为GPU可以识别的“指令”,驱动程序向下直接和显卡接触。
我们想要操作显卡,就必须安装对应的显卡驱动。
CUDA
- 一个显卡可以用来玩游戏,可以用来跑机器学习。
- 要玩游戏,要在显卡驱动上修改一些配置。
- 如果要跑深度学习,就需要安装CUDA,(相当于添加库的功能,我们通过CUDA)
CUDA是一个Nvidia显卡的一个并行计算框架,显卡想要并行计算,必须有一个并行计算框架(要被该显卡的的显卡驱动所支持),
而且必须当而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。
(注:CUDA和显卡的驱动有一定对应的关系。需要安装版本相匹配的CUDA)
我们可以看到写着支持CUDA。
CUDNN
CUDNN(CUDA Deep Neural Network library)
CUDNN是CUDA的一个包。是专门用来处理深层神经网络的一个GPU加速库。(卷积操作需要用到),CUDNN是不需要安装的,只需要下载后将其放入CUDA的指定路径就可以调用了。
举一个生动形象的例子
就拿我们运行一台机器来说。我们人是操作工,对机器,我们有2个操作。
我们将显卡比喻成螺丝,我们手拧螺丝没有办法拧螺丝,所以我们需要螺丝刀,显卡驱动就是这里的螺丝刀,
有了螺丝刀和螺丝,作为操作员,我们需要有一个工作室来进行操作,这个工作室就是CUDA(框架),工作室里面有很多的隔间(调用的库)
我们现在就可以完成拧螺丝的操作了,但是如果我们需要一些特殊的操作(卷积操作),那么我们就需要进入到工作室里面的特定的隔间(CUDNN)来进行操作。
将例子理解透彻之后,相信你就可以理解显卡,显卡驱动,CUDA,CUDNN的对应关系啦!接下来就开始投入机器学习的怀抱吧~
机器学习(1)一文带你看懂显卡,显卡驱动,CUDA,CUDNN(内含举例)相关推荐
- java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学
原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...
- java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...
- javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- 一文带你看懂JAVA IO流(一),史上最全面的IO教学啦(附送JAVA IO脑图)
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- 一文带你看懂 MySQL 存储引擎
本文目录: 1.MySQL体系结构 2.存储引擎介绍 3.MySQL 存储引擎特性 4.MySQL 有哪些存储引擎 5.了解 MySQL 数据存储方式 6.MySQL存储引擎介绍 6.1 CSV存储引 ...
- 一文带你看懂java 泛型,史上最全面的泛型教学啦。
认真看这篇文章,保证你们对泛型又有新的理解,如果没有的话,请顺着网线来打我呀. 概述 引用下百度百科的回答 泛型是程序设计语言的一种特性.允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那 ...
- 一文带你看懂!TensorFlow入门
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 TensorFlow入门 本文将初步向码农和程序媛们介绍如何使用TensorFlow进行编程.在阅读之前请先 安装TensorFlo ...
- 一文带你看懂PaddleHub
作者丨Charlotte77 来源丨我爱PaddlePaddle Hub 是什么?Hub 本意是中心,docker 有 docker Hub,大家可以把自己创建的镜像打包提交到 docker hub ...
最新文章
- Visual Studio 使用 Web Deploy 发布远程站点
- C语言实现简易通讯录
- 数据库中存储日期的字段类型究竟应该用varchar还是datetime ?
- 使用kettle将文本文件中的数据导入数据库
- weld焊接_玩Weld-Probe –一站式查看CDI的所有方面
- RuntimeError: Failed to register operator torchvision::_new_empty_tensor_op. +torchtorchversion版本匹配
- html 控件命名规则,前端组件命名规则
- SAP中Search help的使用
- VS2005里自定义控件设计时语法
- 3.4 小乌龟git使用说明
- 自学考试应该怎样答题才能更高分?
- ArcGIS入门 (一)
- vue系列(三)——手把手教你搭建一个vue3管理后台基础模板
- rabbitmq 存入mysql_将RabbitMQ使用者数据保存到数据库中
- 华为:拿什么留住员工
- t4240 uboot下网络调试(88e1111)
- Gitlab的安装及仓库创建
- [Java]使用ArrayList类来把54张扑克牌发给3位玩家各17张,剩下3张是底牌
- 2018最新各大网站软件提交入口 |软件发布
- 浏览器开发者工具菜鸡相谈