"); //-->
作者 赵军, 2008年4月29日
最近一段时间,关于“在PC机中,是CPU重要还是GPU重要?”,“是CPU要融合GPU,还是GPU要取代CPU?”是业界比较热闹的话题之一。今天,我也来凑凑热闹,发表一下我自己的观点和看法
一.首先,来看看CPU和GPU的诞生
CPU(Central Processing Unit),即“中央处理单元”,更多人把它称为中央处理器(Central Processor),或者微处理器(Microprocessor)。其实,更准确的全称是通用微处理器(General Purpose Microprocessor)。中央处理器名副其实,它是整个计算机系统中最为重要的核心部件,就是电脑之“脑”,电脑的“思维中心”。
世界上第一颗微处理器Intel 4004,是由英特尔工程师泰德•霍夫于1971年发明的。而首款真正的通用微处理器是Intel 8080,于1974年诞生,时钟频率为2MHz。
GPU(Graphics Processing Unit),即“图形处理单元”,早期图形处理单元只是以“显示输出子系统”概念出现在系统的设计框架中,物理形态就是显示卡,主要以2D 图形(二维图形)处理和输出为主,后来又起到了图形加速的作用,所以也叫图形加速器(Graphics Accelerator)。以“GPU”概念的独立形式出现是伴随着3D游戏(三维游戏)蓬勃发展孕育而生的。这个时间点比较晚,大概在上个世纪末(大概在1995年左右)。
今天GPU在计算机系统的作用已经从以前不显眼的角色上升到比较重要的位置,但主要还是是辅助和分担CPU来执行3D图形加速方面的大量计算。为了突现它的重要性,有人开始把图形处理单元(GPU),也称为图形处理器。
PC机领域的第一款GPU是3dfx 公司1995年推出的Voodoo 3D图形加速芯片。
二.当今CPU和GPU各自的设计目标
因为设计的目标不同,当今的CPU和GPU功能上有本质的不同。作为通用处理器的CPU,顾名思义,它是设计用来处理通用任务的处理、加工、运算以及系统核心控制等等的。CPU中包含的最基本部件有算术逻辑单元和控制单元,CPU的微架构是为高效率处理数据相关性不大的计算类、复杂繁琐的非计算类的等等百花八门的工作而优化的,在处理日常繁复的任务中应付自如。
计算机的“灵魂”——操作系统,以及几乎100%的系统软件都主要仰仗CPU来顺利运行。CPU面对的算术、逻辑运算以及控制处理是非常繁琐和复杂的,面对处理的数据和信息量不仅数量多而是种类多。CPU运算和控制多面手的这种设计,让它在计算机中得心应手,位置不可动摇。
GPU设计的宗旨是实现图形加速,现在最主要的是实现3D 图形加速,因此它的设计基本上是为3D图形加速的相关运算来优化的,如z-buffering 消隐,纹理映射(texture mapping),图形的坐标位置变换与光照计算(transforming & lighting)等等。这类计算的对象都是针对大量平行数据的,运算的数据量大,但是运算的类型却并不复杂,大多类似和雷同,计算性强但是逻辑性不强,如矩阵运算就是图形运算的典型特性。
综上所述,GPU在图形计算方面的一些特长在是今天的CPU无法比拟的,当然将来融合了GPU的CPU就另当别论了。相比CPU的通用运算和复杂逻辑处理,GPU要想代替CPU来运行操作系统和系统软件,是不是有点“越俎代庖”的艺术夸张了。当然,只有一种可能,就是GPU做成了CPU,加入了大量CPU核心设计的GPU。不过,这样的GPU还叫GPU吗?
我个人的观点是:在主流市场,将来把GPU集成到CPU中是大势所趋,对于高端市场——如高端3D游戏应用,CPU + 独立GPU的并存方案依然会延续很长时间。GPU中强大的平行数据的并行计算能力,特别是在3D、浮点运算方面,在没有图形运算任务的时候,如果可以开发出来支持CPU在科学计算方面的应用,当然是件好事。
GPU会不会像80386时代,最初作为独立芯片的数学协处理器80387,最终融合到CPU中而消亡了呢?还是让市场去解决这个容易引起论战的问题吧,任何争论在市场的最终选择面前都会显得苍白无力。
一下篇,我将具体说说CPU和GPU在今天计算机中的作用和位置,以及它们各自擅长和不擅长的方面,均衡计算在设计系统的重要性,将来趋势的探讨等等。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。