CPU与GPU是如何协同的,它们的工作流程是怎样的?

了解CPU和GPU设计的区别

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。

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

于是CPU和GPU就呈现出非常不同的架构。


下面用最简单的方式,来聊一聊CPU和GPU是如何协同工作的。

现在我们有两个处理器、CPU和GPU,它们之间通过系统总线交换数据。

第一步

CPU先要从文件系统里读出原始数据,分离出图形数据,然后放在系统内存中,这个时候GPU在发呆着,等着CPU把工作交给她。

第二步

CPU准备把图形数据交给GPU,这个时候系统总线上开始忙了,数据将从系统内存拷贝到GPU的显存里。

第三步

CPU要求GPU开始工作数据处理,现在换CPU在发呆了,而GPU开始忙碌工作,当然CPU还是会定期询问一下GPU忙得怎么样了?

第四步

GPU开始用自己的工作间(GPU核心电路)处理数据,处理后的数据还是放在显存里面,CPU还在继续发呆…。

第五步

图形数据处理完成后,这时GPU就告诉CPU,我忙完了,准备输出或者已经输出。于是CPU就开始接手工作,读出下一段数据,并告诉GPU你可以歇会咯,然后返回到第一步。

GPU硬件加速可以让你的系统变得更快噢

既然GPU硬件加速是利用GPU的特长为系统服务,那么好处到底是什么呢??

用非常流行的《骑游运动》做个比方,正常的情况下你在骑行的时候只有腿部在进行蹬踩运动(CPU正常运算),而当你遇到诸如顺风、下坡、被人推行等情况时,速度就会加快,并且腿部感觉非常省力(因为是GPU参与了运算)。

那么换到电脑上会是什么情况呢??

在以前的很多应用中,CPU是负责所有运算的,而GPU则只是负责最后的显示工作,因此一旦出现处理复杂图形数据的时候,很多使用性能较弱的CPU的电脑系统就开始缓慢无比,而使用性能较强的CPU的电脑系统也会看到CPU资源被大量的占用。

而在GPU开始参与运算之后,原本会消耗CPU大量宝贵资源的图形数据处理部分就全部交给GPU这个专业人士进行处理了,从而降低了CPU的负担,并且利用自身的特长,使得图形数据处理的效率更快,从而提升系统性能。

本文内容、图片均整理自网络,版权归原作者所有。

最新文章