论文部分内容阅读
CPU和GPU之间并不像我们看到的那样和睦,他们一直在吵吵闹闹,甚至还要离婚,就如同一对欢喜冤家。
十年恩怨犹未泯
CPU(中央处理器)和GPU(图形处理器,说白了就是显卡)之间的恩怨由来已久,表面上看起来是当初Intel推出的810芯片组点燃了导火线,但归根结底还要从“3D”这个字眼出现之前说起。
自从电脑出现直到上个世纪90年代为止,显示器上的画面都是2D的,无论是一个汉字还是一张图片。如果屏幕上需要显示什么东西,CPU就会对GPU发令说:“在横50纵100的位置画个点”,GPU就会屁颠儿屁颠儿地跑去画。若是“从横50纵100到纵120画条线”,GPU就会画上20个点组成一条线,大家各司其职,相安无事。
但是自从有些人希望能在电脑上看到接近真实的虚拟空间开始(比如3D游戏),CPU和GPU之间的关系就出现了变化。CPU接到的指令是“在屏幕某个地方画个正方体”,但它不能就这样传达给GPU,因为只能处理2D图形的GPU不明白什么叫做“正方体”。这时CPU就只好给GPU解释,屏幕什么地方画几条线,然后把几条线之间填满颜色。
长此以往,CPU整天疲于奔命地解释什么叫正方体什么叫长方体,抽不出时间来干本职工作(这也是当年没有3D加速卡时,用CPU软加速会导致游戏画面严重拖慢的原因),相当于分担了GPU的大部分工作,于是显示卡厂商们决定给GPU加上3D处理能力。
3D时代的分工协作
加上了3D处理能力的GPU如虎添翼,处理能力甚至比CPU还要强,很多时候都是在等着CPU给下达指令才能继续工作。可是还有一部分老型号的显卡不支持3D处理,当年3dfx公司就推出了Voodoo系列加速卡。这就相当于给不知道什么叫正方体的GPU配了个秘书,专门配合GPU来做3D方面的工作。
这时候如果屏幕上需要出现一个正方体,那么CPU只要把这个指令原封不动地告诉GPU或是GPU的秘书就可以了,怎么画这个正方体就让他们自己去想办法解决。从这时开始,CPU要处理的是屏幕上什么地方该出现什么样的东西,以及这些东西之间是怎么相互影响的。比如FPS游戏中向敌人开枪,CPU就要判断枪口是否瞄准了敌人?瞄准的是什么部位?玩家用的是什么枪?会造成多大伤害?之类的问题。
分久必合合久必分
时间又向后推移了几年,当CPU和GPU都空前强大的时候,他们彼此都在想:这样互相配合工作太麻烦了,干脆一人都包了吧。于是Intel开始推出集成显示核心的芯片组,AMD则在收购了ATI之后妄图推出CPU/GPU一体化的处理器。这就好比有一份抄写工作,以前效率最好的做法是一个人念,另一个人写,要比独自一人看一眼原稿再抄一句话快得多。但是后来电脑和汉字输入法出现了,我们甚至连屏幕都很少看。这时一个人的工作效率甚至比以前两个人合作还要高。
如果说当年的3D软加速是CPU干了GPU的活儿,那物理加速卡的出现就是GPU抢了CPU的饭碗。原因是现在游戏场景里面的物体越来越多,一发火箭弹引发的爆炸,会给CPU带来许多“各种物体的碎片是如何在空中飞舞,会打中场景里哪些敌人和玩家的哪些部位,以及会造成什么样的伤害”之类的工作。物理加速卡就是专门负责解决这些工作的,而它本身的处理芯片,就是GPU。
后记
可以说,未来的CPU和GPU还会像古代的历史一样分久必合,合久必分,一切都取决于当时的最终需求。如果大胆地设想一下的话,照现在这种发展势头,CPU和GPU将会在一段时间后最终合二为一,然后随着对虚拟现实的需求,CPU和GPU又会各自独立出来,以提供更强大的处理能力。
十年恩怨犹未泯
CPU(中央处理器)和GPU(图形处理器,说白了就是显卡)之间的恩怨由来已久,表面上看起来是当初Intel推出的810芯片组点燃了导火线,但归根结底还要从“3D”这个字眼出现之前说起。
自从电脑出现直到上个世纪90年代为止,显示器上的画面都是2D的,无论是一个汉字还是一张图片。如果屏幕上需要显示什么东西,CPU就会对GPU发令说:“在横50纵100的位置画个点”,GPU就会屁颠儿屁颠儿地跑去画。若是“从横50纵100到纵120画条线”,GPU就会画上20个点组成一条线,大家各司其职,相安无事。
但是自从有些人希望能在电脑上看到接近真实的虚拟空间开始(比如3D游戏),CPU和GPU之间的关系就出现了变化。CPU接到的指令是“在屏幕某个地方画个正方体”,但它不能就这样传达给GPU,因为只能处理2D图形的GPU不明白什么叫做“正方体”。这时CPU就只好给GPU解释,屏幕什么地方画几条线,然后把几条线之间填满颜色。
长此以往,CPU整天疲于奔命地解释什么叫正方体什么叫长方体,抽不出时间来干本职工作(这也是当年没有3D加速卡时,用CPU软加速会导致游戏画面严重拖慢的原因),相当于分担了GPU的大部分工作,于是显示卡厂商们决定给GPU加上3D处理能力。
3D时代的分工协作
加上了3D处理能力的GPU如虎添翼,处理能力甚至比CPU还要强,很多时候都是在等着CPU给下达指令才能继续工作。可是还有一部分老型号的显卡不支持3D处理,当年3dfx公司就推出了Voodoo系列加速卡。这就相当于给不知道什么叫正方体的GPU配了个秘书,专门配合GPU来做3D方面的工作。
这时候如果屏幕上需要出现一个正方体,那么CPU只要把这个指令原封不动地告诉GPU或是GPU的秘书就可以了,怎么画这个正方体就让他们自己去想办法解决。从这时开始,CPU要处理的是屏幕上什么地方该出现什么样的东西,以及这些东西之间是怎么相互影响的。比如FPS游戏中向敌人开枪,CPU就要判断枪口是否瞄准了敌人?瞄准的是什么部位?玩家用的是什么枪?会造成多大伤害?之类的问题。
分久必合合久必分
时间又向后推移了几年,当CPU和GPU都空前强大的时候,他们彼此都在想:这样互相配合工作太麻烦了,干脆一人都包了吧。于是Intel开始推出集成显示核心的芯片组,AMD则在收购了ATI之后妄图推出CPU/GPU一体化的处理器。这就好比有一份抄写工作,以前效率最好的做法是一个人念,另一个人写,要比独自一人看一眼原稿再抄一句话快得多。但是后来电脑和汉字输入法出现了,我们甚至连屏幕都很少看。这时一个人的工作效率甚至比以前两个人合作还要高。
如果说当年的3D软加速是CPU干了GPU的活儿,那物理加速卡的出现就是GPU抢了CPU的饭碗。原因是现在游戏场景里面的物体越来越多,一发火箭弹引发的爆炸,会给CPU带来许多“各种物体的碎片是如何在空中飞舞,会打中场景里哪些敌人和玩家的哪些部位,以及会造成什么样的伤害”之类的工作。物理加速卡就是专门负责解决这些工作的,而它本身的处理芯片,就是GPU。
后记
可以说,未来的CPU和GPU还会像古代的历史一样分久必合,合久必分,一切都取决于当时的最终需求。如果大胆地设想一下的话,照现在这种发展势头,CPU和GPU将会在一段时间后最终合二为一,然后随着对虚拟现实的需求,CPU和GPU又会各自独立出来,以提供更强大的处理能力。