网上流传的一个有趣比喻: GPU是一群小学生,扎堆算加减法;CPU是一个老教授,能解微积分,今天小编就来聊一聊关于集成gpu和独立gpu有什么区别?接下来我们就一起去研究一下吧!

集成gpu和独立gpu有什么区别(GPUGPGPU)

集成gpu和独立gpu有什么区别

网上流传的一个有趣比喻: GPU是一群小学生,扎堆算加减法;CPU是一个老教授,能解微积分

很形象,但并不准确。GPU和CPU在结构上有什么不同?面向的应用又有什么侧重?

在结构上,GPU和CPU的区别

要解释两者的区别,要先明白两者的相同之处:两者都有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元。一句话,两者都为了完成计算任务而设计。

两者的区别在于存在于片内的缓存体系和数字逻辑运算单元的结构差异:CPU虽然有多核,但总数没有GPU的多,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核)。每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单(GPU初始时在浮点计算上一直弱于CPU)。从结果上导致CPU擅长处理具有复杂计算步骤和复杂数据依赖的计算任务,如分布式计算,数据压缩,人工智能,物理模拟,以及其他很多很多计算任务等。GPU由于历史原因,是为了视频游戏而产生的(至今其主要驱动力还是不断增长的视频游戏市场),在三维游戏中常常出现的一类操作是对海量数据进行相同的操作,如:对每一个顶点进行同样的坐标变换,对每一个顶点按照同样的光照模型计算颜色值。GPU的众核架构非常适合把同样的指令流并行发送到众核上,采用不同的输入数据执行。在 2003-2004年左右,图形学之外的领域专家开始注意到GPU与众不同的计算能力,开始尝试把GPU用于通用计算(即GPGPU)。之后NVIDIA发布了CUDA,AMD和等公司也发布了OpenCL,GPU开始在通用计算领域得到广泛应用,包括:数值分析,海量数据处理(排序,Map- Reduce等),金融分析等等。

简而言之,当程序员为CPU编写程序时,他们倾向于利用复杂的逻辑结构优化算法从而减少计算任务的运行时间,即Latency。当程序员为GPU编写程序时,则利用其处理海量数据的优势,通过提高总的数据吞吐量(Throughput)来掩盖 Lantency。目前,CPU和GPU的区别正在逐渐缩小,因为GPU也在处理不规则任务和线程间通信方面有了长足的进步。另外,功耗问题对于GPU比CPU更严重。

由于两者面向的计算不同,CPU面对的是人们各种各样的需求,比如你打开一个网页的时候,CPU要负责网络交互,要解析HTML文件和JS脚本,要构建DOM树,要加载各种各样的资源,而最后才轮到GPU的事情:渲染画面并输出。

在计算方面上,GPU和CPU的不同

PC在刚诞生的时候,其实是没有GPU的,所有的图形计算都由CPU来计算。后来人们意识到CPU做图形计算太慢了,于是他们设计了专门的图形加速卡用来帮忙处理图形计算,再后来,NVIDIA提出了GPU的概念,将GPU提升到了一个单独的计算单元的地位。

再举个例子,玩游戏的时候,CPU负责完成游戏程序的逻辑、从硬盘里面加载游戏数据,然后才开始把图形相关的东西挑出来交给GPU做,而游戏中的各种运算还是离不开CPU的帮助,比如常见的NPC,他们怎么运动,还是需要CPU来运算。

从上述两个例子中就可以看出,CPU负责的是各种各样的计算,为了应对这么多种类的计算,它的通用性要求非常高,而这就必定会造成设计上的复杂,比如要支持if-else这类条件语句就要针对性加入一些控制单元。而GPU从诞生开始,面对的就是单一种类的计算,早期的GPU为了更好的应对单一的图形计算任务,采用的是流水管线形式的设计,通过在芯片规模上的大量堆叠,就可以获得在图形处理速度上的提升,从而提供更好的画质,简单粗暴。

所以问题的答案很明显了,在计算上,CPU的通用性更强,什么活都能接,但是速度都不咋地;GPU只能接图形计算这类活,速度非常快,或者也可以接特别写给它来计算的任务,这也就是GPGPU(在图形计算单元上进行的通用计算)的由来。

又引入了一个新词GPGPU,来科普一下。

GPGPU全称General Purpose GPU,即通用计算图形处理器。其中第一个“GP”通用目的(GeneralPurpose)而第二个“GP”则表示图形处理(GraphicProcess),这两个“GP”搭配起来即“通用图形处理”。再加上“U”(Unit)就成为了完整的通用处理器。 人们一直在寻找各种加速图像处理的方法,然而受到CPU本身在浮点计算能力上的限制,对于那些需要高密度计算的图像处理操作,过去传统的在CPU上实现的方法,并没有在处理性能与效率上有很大进步。随着可编程图形处理器单元(GPU)在性能上的飞速发展,利用GPU加速图像处理的技术逐渐成为研究热点。

术业有专攻,芯片也像我们人类一样,有合作也有分工,GPU和CPU也一样,虽然一直有争论,某个要取代另一个,但从上面的介绍可以看出,事实上,它们在工作上有分工也有交集,它们还是会在不同的应用上并存。随着IC设计和制造技术的进步,分工只会越来越细,但跨界的交汇和融合也是主旋律,所有这一切都只是为了满足应用的需求。

(21ic整理,编辑:王丽英)

,