0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > GPU为何可处图形工作?GPU和显卡有何区别?

GPU为何可处图形工作?GPU和显卡有何区别?

来源: 21ic
2021-01-07
类别:基础知识
eye 160
文章创建人 拍明

原标题:GPU为何可处图形工作?GPU和显卡有何区别?

  没有GPU,我们的图形界面将不复存在,由此可见GPU的重要性。在上篇文章中,小编对GPU渲染有所介绍。为增进大家对GPU的认识,本文将对GPU、CPU、显卡的区别加以阐述,并讲解为何GPU可处理图形工作。如果你对GPU具有兴趣,不妨继续往下阅读哦。

  

1.jpg


  一、GPU与CPU

  GPU 是并行编程模型,和CPU的串行编程模型完全不同,导致很多CPU 上优秀的算法都无法直接映射到GPU 上,并且GPU的结构相当于共享存储式多处理结构,因此在GPU上设计的并行程序与CPU 上的串行程序具有很大的差异。

  GPU主要采用立方环境的材质贴图、硬体T&L、顶点混合、凹凸的映射贴图和纹理压缩、双重纹理四像素256 位的渲染引擎等重要技术。由于图形渲染任务具有高度的并行性,因此GPU可以仅仅通过增加并行处理单元和存储器控制单元便可有效的提高处理能力和存储器带宽。

  


  CPU是设计用来处理通用任务,因此具有复杂的控制单元;

  而GPU主要用来处理计算性强而逻辑性不强的计算任务,GPU中可利用的处理单元可以更多的作为执行单元。

  因此,相较于CPU,GPU在具备大量重复数据集运算和频繁内存访问等特点的应用场景中具有无可比拟的优势。

  使用GPU有两种方式:

  一种是开发的应用程序通过通用的图形库接口调用GPU设备;

  另一种是GPU自身提供API编程接口,应用程序通过GPU提供的API编程接口直接调用GPU设备。

  二、GPU 和显卡的关系

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

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

  


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

  三、CPU和GPU区别

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

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

  


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

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

  


  从上图可以看出:

  Cache, local memory: CPU 》 GPU

  Threads(线程数): GPU 》 CPU

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

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

  CPU 基于低延时的设计:

  


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

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

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

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

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

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

  


  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来做的。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: GPU 显卡

相关资讯