今天我们就来简单说说CPU和GPU的区别。
CPU的故事我们讲了很多,之前也发了很多关于CPU的文章,这里就重点讲一下GPU。
教授vs小学生可以简单的把CPU理解为一个什么都精通的知识渊博的教授;GPU则是一堆只会简单算术的小学生。
但教授再厉害,也不可能一秒钟算出500个加减法。所以对于简单重复的计算,单个教授比不上一大批小学生。在做简单的算术时,500个学生(同时)能轻而易举地胜过教授。
我们可以看到CPU和GPU最大的区别在于架构。CPU适用于广泛的应用场景(知识性),可以执行任意程序;而GPU则是为多任务设计的,并发性强。
具体来说就是多核,一般CPU有2核、4核、8核等。而GPU可能有数百或数千个内核。
可以看出,CPU的内部缓存和控制部分占据了很大一部分片上面积,所以计算单元所占比例很小。
***1V1嵌入式学习计划,现在还送100G精选学习资料。嵌入式物联网开发学习咨询
接下来,我们来看看GPU。GPU只有一个简单的控制单元,其余大部分都被计算单元占用,所以CPU核的数量是有限的,而GPU可以轻松堆出上千个核。
只是CPU里的每个核都像教授一样能干,而GPU里的每个核都像小学生一样能干。
你可能会想,GPU为什么需要这么奇怪的架构?
为什么GPU需要那么多核心?想想电脑上的一张图片是怎么表现的。无非是屏幕上的一个像素:
我们需要对每个像素进行计算,而且是同样的操作,就像刚才例子中的小学生计算器加法一样。
注意,屏幕上通常有几百万个像素,如果要把每个像素都串联起来计算,效率太低。因此,我们可以让GPU中的每个内核计算对应的像素。因为GPU的核很多,并行计算可以大大提高速度。
现在你应该明白GPU为什么是这样工作的了吧!
除了大量的GPU核心,GPU的工作方式也很奇怪。
奇怪的工作模式对于CPU来说,不同的核心可以执行不同的机器指令。coreA可以在coreB上运行浏览器线程,同时运行word线程。这就是所谓的MIMD(多指令多数据(MIMD))。
另一方面,GPU不一样。GPU上的这些核心必须统一运行相同的机器指令,但可以操作不同的数据。这就好比这些小学生在某个时刻要进行加法运算。不同的是有的小学生可能需要算“1,有的小学生需要算”6等等。唯一的变化是操作数。这就是所谓的SIMD(单指令多数据(SIMD))。
所以我们可以看到GPU的工作方式和CPU完全不同。
除了这种工作方式,GPU的指令集非常简单,不像CPU这样复杂的处理器。如果你看看CPU的编程手册,你会发现CPU负责很多事情:中断处理、内存管理、IO等等。
这些对于GPU来说是不存在的。可见GPU的定位很简单,就是纯计算。GPU***用来代替CPU,只是赋予了它一些GPU很擅长的东西,GPU只是用来分担CPU工作的配角。
CPU和GPU是这样协同工作的:
GPU擅长的更适合GPU计算场景:1)简单计算;2)重复计算,所以如果你的计算场景和这里的图像渲染差不多,用GPU也是合理的。
因此,它适用于图形图像计算、天气预报和神经网络。哦,对了,GPU也适合挖矿。
好了,今天就到这里。希望这篇文章能帮助你了解GPU。
结束
文章链接:https://mp.weixin.qq.com/s/t38ax6e0ZY8KAnCC2qPUYQ
转载自:嵌入式微处理器
文章来源:码农的荒岛求生,作者陆晓峰。
文章链接:有趣的解释:CPU和GPU有什么区别?
版权声明:本文来自网络,免费传递知识,版权归原作者所有。请联系我删除作品版权。
相关标签: 数码科技