历史上的今天

今天是:2024年11月25日(星期一)

2020年11月25日 | 解剖GPU和CPU,他们俩的区别到底在哪

发布者:skyhcg 来源: 21IC关键字:GPU  CPU 手机看文章 扫描二维码
随时随地手机看文章

对于GPU,大家想必也十分熟悉。但是,大家真的了解GPU吗?譬如,GPU和显卡是同一个东西吗?CPU和GPU有什么区别吗?在本文中,小编将对这两个问题加以介绍。如果GPU是您正在了解的知识,本文将是很好的入门素材哦,不妨和小编共同往下阅读吧。

 image.png

一、GPU 、显卡关系

 

总的来说,显卡是显示卡的简称,显卡是由GPU、显存等等组成的。

 

GPU是图形处理器,一般GPU就是焊接在显卡上的, 大部分情况下,我们所说GPU就等于指显卡,但是实际情况是GPU是显示卡的“心脏”,是显卡的一个核心零部件,核心组成部分。它们是“寄生与被寄生”关系。GPU本身并不能单独工作,只有配合上附属电路和接口,才能工作。这时候,它就变成了显卡。 

image.png 

也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,现在还没有出现GPU插在主板上的,因为GPU功耗很高,背面电流过大,还是焊接更为可靠。

 

二、CPU、GPU区别

 

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

 

于是CPU和GPU就呈现出非常不同的架构(示意图):

 

image.png

 

图片来自nVidia CUDA文档。其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。

 

GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。

 

image.png

 

从上图可以看出:

 

Cache, local memory: CPU 》 GPU

 

Threads(线程数): GPU 》 CPU

 

Registers: GPU 》 CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread数目大,register也必须得跟着很大才行。

 

SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU 》 CPU。

 

CPU 基于低延时的设计:

 

image.png

 

CPU有强大的ALU(算术运算单元),它可以在很少的时钟周期内完成算术计算。

 

当今的CPU可以达到64bit 双精度。执行双精度浮点源算的加法和乘法只需要1~3个时钟周期。

 

CPU的时钟周期的频率是非常高的,达到1.532~3gigahertz(千兆HZ, 10的9次方)。

 

大的缓存也可以降低延时。保存很多的数据放在缓存里面,当需要访问的这些数据,只要在之前访问过的,如今直接在缓存里面取即可。

 

复杂的逻辑控制单元。当程序含有多个分支的时候,它通过提供分支预测的能力来降低延时。

 

数据转发。 当一些指令依赖前面的指令结果时,数据转发的逻辑控制单元决定这些指令在pipeline中的位置并且尽可能快的转发一个指令的结果给后续的指令。这些动作需要很多的对比电路单元和转发电路单元。

 

image.png

 

GPU是基于大的吞吐量设计。GPU的特点是有很多的ALU和很少的cache. 缓存的目的不是保存后面需要访问的数据的,这点和CPU不同,而是为thread提高服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问dram(因为需要访问的数据保存在dram中而不是cache里面),获取数据后cache会转发这个数据给对应的线程,这个时候是数据转发的角色。但是由于需要访问dram,自然会带来延时的问题。

 

GPU的控制单元(左边黄色区域块)可以把多个的访问合并成少的访问。

 

GPU的虽然有dram延时,却有非常多的ALU和非常多的thread. 为啦平衡内存延时的问题,我们可以中充分利用多的ALU的特性达到一个非常大的吞吐量的效果。尽可能多的分配多的Threads.通常来看GPU ALU会有非常重的pipeline就是因为这样。

 

所以与CPU擅长逻辑控制,串行的运算。和通用类型数据运算不同,GPU擅长的是大规模并发计算,这也正是密码破解等所需要的。所以GPU除了图像处理,也越来越多的参与到计算当中来。

 

GPU的工作大部分就是这样,计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。而CPU就像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生A和小学生B的工作没有什么依赖性,是互相独立的。很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。但还有一些任务涉及到“流”的问题。比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。这种比较复杂的问题都是CPU来做的。

 

总而言之,CPU和GPU因为最初用来处理的任务就不同,所以设计上有不小的区别。而某些任务和GPU最初用来解决的问题比较相似,所以用GPU来算了。GPU的运算速度取决于雇了多少小学生,CPU的运算速度取决于请了多么厉害的教授。教授处理复杂任务的能力是碾压小学生的,但是对于没那么复杂的任务,还是顶不住人多。当然现在的GPU也能做一些稍微复杂的工作了,相当于升级成初中生高中生的水平。但还需要CPU来把数据喂到嘴边才能开始干活,究竟还是靠CPU来管的。

关键字:GPU  CPU 引用地址:解剖GPU和CPU,他们俩的区别到底在哪

上一篇:苹果M1 PK 锐龙5000,结果显而易见
下一篇:为AI注入了一个大心脏,Mythic公司模拟矩阵处理器问市

推荐阅读

2年一度的德国慕尼黑电子展近期盛大开幕,来自全球50多个国家3000余家企业围绕工业4.0、汽车、物联网等热门主题同台竞技,秀出当今最先进的技术和最热门的应用。 全球知名半导体制造商罗姆亮相展会,展示了在汽车电子和工业设备等领域的丰富产品、解决方案以及模拟技术和功率元器件等技术亮点。罗姆欧洲市场总监Gunter Richard也向eeworld记者解读了罗姆...
受技术和成本制约,我国80%的氢产量都来自煤制氢和工业副产氢,并且绝大部分在厂内自产自销,供给到外部的使用量很少。鉴于氢气供给的这一特点,目前我国存在氢气基础设施建设不足的情况,并突出表现在氢气的储运上。“2008年奥运会是中国电动汽车走向产业化的关键节点,2022年冬奥会也将成为我国燃料电池汽车发展的里程碑。”11月14日,在张家口举办的201...
  首先将万用表打到测试二极管端,用万用表的红表笔接触三极管的其中一个管脚,而用万用表另外的那支表笔去测试其余的管脚,直到测试出如下结果:    1、如果三极管的黑表笔接其中一个管脚,而用红表笔测其它两个管脚都导通有电压显示,那么此三极管为PNP三极管,且黑表笔所接的脚为三极管的基极B,用上述方法测试时其中万用表的红表笔接其中一个脚...
2018 年底,谷歌就停止了每月报告安卓版本的采用情况。但根据 Android Studio 中提供的更新数据,我们还是能看到最新的统计情况。  本次统计数据是用来给开发者确定 App 开发适配版本的,由于安卓 12 才推出不久,因此没有统计到数据。  安卓 11(R)于 2020 年 9 月 8 日发布后,目前的份额为 24.2%,排名第二;2019 年发...

史海拾趣

问答坊 | AI 解惑

CC4019 包括4 个与/或门选择器,每个门由2 个2 输入与门和一个2 输入或门

CC4019 包括4 个与/或门选择器,每个门由2 个2 输入与门和一个2 输入或门组成,选择由A0 和A1 控制位来完成,除可对D0 通道或D1 通道进行选择以外,同时使用控制位可完成逻辑D0+D1 功能。CC4019 提供了16 引线多层陶瓷双列直插(D)、熔封陶瓷双列 ...…

查看全部问答∨

MP3技术浅释

近年来,MP3技术受到了广大消费者的热烈欢迎。它的确是一种非常好的技术。一张和普通CD一样的碟片,可以储存高达600多分钟的高质量音乐,比普通CD多了将近10倍。尤其是随着Flash存储器的价格的降低,便携式的MP-3更受到广大消费者的欢迎。现在512MB ...…

查看全部问答∨

超出了错误的极限值

通过超级终端下载程序时下载到半路弹出对话框 “超出了错误的极限值”请问这是什么错误…

查看全部问答∨

我的PB是不是疯了?

今天想把2440串口驱动屏蔽掉,我是这么做的: 一、把串口注册表删除 二、在platform.bib文件中把打包串口驱动的部分删除 以上两部之后拷贝到C:\\WINCE500\\PBWorkspaces\\ARMSYS2440\\RelDir\\smdk2440a_ARMV4I_Release下 我看ce.bib已经没有了 ...…

查看全部问答∨

2440 camera???????????????????????

请教你一个问题好吗?2440上 camera分配的是irq6 该irq可能由INTSUB_CAM_P、INTSUB_CAM_C或INT_CAM 被置一而引起,有的资料上说中断由VSYNC垂直同步信号引起 这个由VSYNC触发的中断到底是 INTSUB_CAM_P、INTSUB_CAM_C还是INT_CAM啊? ??如果触发 ...…

查看全部问答∨

请问高手一个请教NDIS驱动

1)NDIS中间驱动绑定的设备是指网卡吗?我电脑只有1块网卡,但是发现他调用了2次绑定函数,那就是绑定了2个设备,会不会虚拟网卡他也绑定? 2)挂载点如Miniport_Send之类的函数,如果NDIS绑定了多个设备,那么,这些函数会不会被设备同时调用?函数里面的访 ...…

查看全部问答∨

关于串口发送数据

  在中断中从串口调试器里发送出来的数据,接收下来再发送出来在串口调试器上接收的和先前发送的数据不同,不明白到底是什么原因影响了,我是新手,一直找不到原因之只好请各位高手帮忙看看     我从串口调试器发送AB2D0200 ...…

查看全部问答∨

请教,stm32f的芯片封装有chn字样!

质量和在别的国家封装有区别吗? 可靠吗?…

查看全部问答∨

怎样计算三角函数

按照C430的说法,#include MATH.H可以调用三角函数sin()、cos(), 但我用C430编译可以,LINK出错! 大家平时是怎样求三角函数值的呢?用MSP430系列的C语言或汇编。 谢谢大家,请多指教!…

查看全部问答∨

放大采样问题

最近一个项目,需要对一个50MV,100uS的脉冲信号进行采样,AD采用MCU自带12位ADC。采样频率100Kps,程序已经完成,但是在放大电路方面走了很多弯路,到现在仍不理想,特向大家请教 。光电二极管短路电流uA级。暗电流nA级。最早电路很简单,为低价, ...…

查看全部问答∨
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved