CPU 和 GPU

端午回来,发的第一篇文章,还在谋划其他事情,大家共勉。


现在电脑这么普及,应该每个人都知道 CPU ,即使不懂电脑的人都能憋出大招告诉你电脑里面有一个 CPU,CPU 是中央处理器,是很多很多年积累下来的,因特尔公司发财的亲儿子啊。


640?wx_fmt=png


有一些比较专业的人会蹦出 GPU,GPU 是干嘛用的?为什么有了 CPU 又出来一个 GPU?特别前几年挖矿很流行,一些码农就衍生出电脑 GPU 来挖矿,这些年人工智能,神经网络算法流行也是离不开 GPU 的功劳。


CPU 设计的时候是为了满足很强的通用性处理各种不同的数据类型,特别典型的就是浮点运算,这个需要消耗比较多的时钟周期,不仅仅是数据运算,还有逻辑运算,基于这样的需求,CPU 设计的内部结构非常复杂,这可以类比一个国家的皇帝,需要处理大臣们的奏折,也需要处理很多后宫的事情,计算机普及到后来,大家对于图形显示的要求越来越高,特别是 3D 建模这种事情,CPU 不能丢下自己的工作去干这种负荷高的工作,所以英伟达觉得可以有机可乘,就出现了 GPU。


GPU 设计出来的目的就比较单纯,就好像我需要把一块砖头搬到 10 楼,不管你用一个皇帝来搬砖,还是很多小孩子当苦力还搬砖,都是需要从 1 楼走到 10 楼,CPU 不需要跟太多其他人交涉,他需要干的事情比较纯粹,单一繁重。


GPU 和 CPU的对比图


640?wx_fmt=png


观察颜色,绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。


网上有一个比喻用来比较 GPU 和 CPU ,我觉得非常贴切,100 个小学生和一个大学教授组成两队进行数学比赛,第一回合是两队分别完成 100 道四则运算题,比赛开始,第一回合教授还在写的时候,小学生们已经完成了答题,然后进行了第二回合,第二回合是两队分别完成 1 道高等数学题目,教授已经完成了答题,100 个小学生们还在苦苦冥想。

上面只能当成一个笑话来看,GPU 和 CPU 负责不同的事情


GPU处理视觉元素:

640?wx_fmt=jpeg

例如着色器,效果,阴影,光线,纹理等、图形卡确定一次可以显示多少个多边形、它还会显着影响任何给定对象的分辨率有多高、GPU是游戏的过滤器、它处理发光效果,能力效果,光源等。


GPU 真实的意义在于有一天有一个电脑游戏狂热粉觉得自己的界面显示太丑了,没有各种酷毙的感觉,然后 GPU 就出现了,专门用来出来这种吃力不讨好的事情,你想要 3D,那我就给你 3D ,你想要挖矿,我就给你挖矿,等等。


CPU处理物理和逻辑元素:

640?wx_fmt=jpeg

CPU 是干嘛的?

我觉得可以说 CPU 是电脑的核心,没有 CPU 就没有计算机,就没有操作系统,就没有你天天看着电脑玩游戏这回事,GPU 是辅助这个世界变得更好,没有 CPU 就没有电脑世界。


你可以说CPU是大脑,GPU是眼睛。你的大脑了解世界,它是如何运作的,物理学等等、当你的眼睛在创造图像时,你会看到世界。


有一个老外,做了一个非常有意思的实验来对比 GPU 和 CPU,我觉得非常有意思


神经网络

640?wx_fmt=png

神经网络有一个学习的过程,我之前做 AI 音响的时候,有拿网上的一个算法库来学习,使用的是公司的服务器,学习过程也需要 2 天,GPU 有一个特点是核比较多,可以用几千个核来执行上面的几百条运算,速度肯定就快了,这也是 GPU 存在的最大意义了。




640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React Native - 3 View, Text简介以及onPress onLongPress事件

我们要生成如下的构图 直接上图,不解释。如下图所示,定义函数,函数之间不需要逗号,在元素上添加事件,使用关键字this.{function name}转载于:https://www.cnblogs.com/yahb/p/6864382.html

创业日记

最近在拼命的写代码,估计这段时间写代码的行数等于过去一年的了,这是保守估计,如果不保守估计就不好说了,我本来想在原来的小组群里发话说,打算是下面这段对话我:X总,你站起来X总:为…

线程基础知识_线程生命周期_从JVM内存结构看多线程下的共享资源

线程生命周期 线程状态 New: 线程创建(new Thread()) Runnable: 线程可运行(thread.start()), 注: 调用start并不一定是运行状态, 可能在等待CPU调度 Running: 线程进入运行状态 Blocked: 阻塞状态(object.wait, Thread.sleep) Terminal: 死亡状态(线程正常/非正常结束运行)th…

CPU,内核,寄存器,缓存,RAM,ROM的知识

偷偷说一下,这个图片是晚上 8 点钟的太阳,一个骚男华为总工发给我的,有时间还是想出去走走很多人使用计算机,但是对计算机却不是很懂,即使是作为非常资深的码农,也不能做到心中有剑的地步,那么怎…

mft按钮设计_哈汽机组660MW超临界空冷机组ETS设计及逻辑说明

点击上方“火力发电集控运行”关注公众号,加微信号:jikonglingmi,备注:集控运行,拉你入集控运行技术交流群,共同学习、共同进步。更多学习题库,请进入首页菜单选择一、 基本设计思想1、既防拒动…

JVM运行参数_JVM内存模型_常用内存分析工具

JVM运行参数 常见标准参数 -showversion: 显示当前JVM版本等信息-D设置系统属性参数: /*** 测试* author regotto*/ public class JvmTest {public static void main(String[] args) {//获取系统参数String str System.getProperty("str");System.out.println(st…

2019 年入门AI算法工程师,你需要掌握什么技能?

一篇推文,感兴趣的同学可以了解一下,有需要请继续往下阅读,没有需要的打扰各位金主了-----人工智能与自然语言处理/计算机视觉课培训招生Artificial Intelligence ForNLP/CV Courses真实企业级项目驱动找工作拿不到offer全额退款GitHub年度活…

Java常见GC算法_垃圾收集器及内存分配_G1垃圾收集器

常见GC算法 引用计数法: 每个对象都有一个计数器, 对象被引用一次, 计数器1, 当对象引用失败一次. 计数器-1, 当对象计数器等于0, 说明对象没有被应用, 就可GC 优: 运行过程中, 可随时检查对象计数器, 进行GC, 且GC过程, 应用无需暂停, 执行速度快(单个对象GC不会影响其他对…

是应该有点兴奋剂刺激下

不知道你有没有发现一个问题,发现身边的很多人工资很高,但是好像总还是缺点什么,总是对生活提不起兴趣,似乎对任何事情都失去热情,每天拿着手机,点来点去,每天都在抱怨,每天都好像在…

你应该知道为什么需要内核

不知道大家想过这个问题没有?为什么要有内核?如果没有内核有怎么样呢?因为有了 unix 内核,有了 minix 后面又有了 Linux 内核,内核这个思想越来越根深蒂固,估计没学什么计算机知识的人都能侃出点所以然来。…

2019深圳入户攻略

我上次说了,等我把户口办好了,我就把攻略写出来,给大家一个参考,今天刚好是我最后的一个步骤,去派出所把身份证给办了,好了,我以后就是深圳人了,来深圳快十年了,现在才真…

NIO之ByteBuffer_NIO之网络IO_与ChannelNetty初窥门径

NIO之ByteBuffer与Channel 传统IO:byte[] < inputStream < 文件 > outputStream > byte[] NIO:文件 > inputChannel <> buffer <> outputChannel > 文件文件 < inputChannel <> outputChannel > 文件文件复制, 并测试ByteBuffer常用…

mp4 拍摄时间如何看_时间不多了,如何备考期末最有效?这些复习技巧,看了你就会了...

再过不到一个月就要过年了&#xff0c;虽然天气越来越冷&#xff0c;但是有阻挡不了年度大戏“期末考”的前进步伐&#xff0c;尤其是对于紧张复习之中的高考备考生而言&#xff0c;高三第一学期的期末考就可以算是对自己第一轮复习的一个检验&#xff0c;如果成绩不理想&#…

vue实战学习第二天

1.怎么运行别人的项目 步骤一&#xff1a;搭建脚手架&#xff1a;npm i -g vue-cli 步骤二&#xff1a;vue init webpack 不要一直默认回车&#xff0c;去除一些不必要的依赖&#xff0c;减少代码的编写难度 步骤三&#xff1a;下载依赖的文件 npm i &#xff08;可能有些人会…

Netty之自定义RPC

需求分析 使用netty实现方法远程调用, 在client调用本地接口中方法时, 使用反射进行远程调用, server执行完结果后, 将执行结果进行封装, 发送到client RPC调用模型: 1. 服务消费方(client)以本地调用方式调用服务 2. client stub 接收到调用后负责将方法、参数等封装成能够…

samba 服务器搭建

为什么要搭建samba 服务器我在 windows 下安装了个虚拟机&#xff0c;然后想两边同步下资料&#xff0c;原来虚拟机是可以共享文件的&#xff0c;可是不知道什么见鬼了&#xff0c;就是不行&#xff0c;没办法了&#xff0c;我只好拿出我的杀手锏&#xff0c;安装 samba。这个在…

一直想说的,技术职业化

最近后台有人一直跟我说&#xff0c;为什么不好好写一篇技术比较强的文章&#xff0c;说实话&#xff0c;最近时间比较紧张&#xff0c;早上 8 点出门&#xff0c;晚上12点左右到家。刚好今天整理了一个不错文章的列表&#xff0c;明天发出来&#xff0c;希望给学习的同学们有点…

MyBatis初级入门及常见问题

入门案例 创建maven工程 项目目录结构: 首先在maven的pom.xml导入Mybatis和MySQL的依赖坐标: <dependencies><!--Junit测试依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</…

读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 第一部分 1-3...

Introducing Information Architecture 信息架构简介 Chapter 1 Defining Information Architecture 信息架构的意义&#xff08;我们盖房子&#xff0c;之后&#xff0c;房子影响我们&#xff09; A DefinitionTablets, Scrolls, Books, and Libraries 石板、卷轴、书籍&#…

Mybatis执行流程分析_自定义简易Mybatis框架

自定义简易Mybatis框架 Mybatis执行流程分析 Mybatis代码编写流程: Mybatis配置文件加载过程: 需求分析及技术概述 根据上述的功能结构图, 得出如下需求: 1. 需要具有配置文件加载模块. 2. 支持使用构建者进行SessionFactory构建. 3. 支持使用工厂模式构建Session对象. 4.…