有了CPU为什么还需要GPU

        大家好,我是谷德白,今天简单聊聊为什么有了CPU,还需要GPU。        

        喜欢打游戏的小伙伴一般都会给自己配置一个好的显卡,显示就是我们常说的GPU了。想要搞图形程序开发的同学,他是你最好的伙伴,熟悉它会让你对一些图形上的问题理解更深刻。

         本质上来说CPU和GPU都是负责逻辑运算的,GPU能干的CPU也能干,那么为什么现代计算机架构还需要GPU呢。

        如果把CPU和GPU理解成计算机的大脑的话,那么CPU就像是爱因斯坦的大脑一样,构造肯定比普通人复杂,这也就决定了它属于相当昂贵稀缺的资源,适合用来处理复杂昂贵的计算, 而GPU就是很多个普通人大脑的集合体,单个构造相对简单,但是三个臭皮匠顶一个诸葛亮,人多力量大,适合用来计算简单大量的运算。如果有个计算任务需要进行1000个加减运算,是让爱因斯坦来算快呢,还是让1000个人每个人算一个加减运算快呢,结果很显然。这样我突然理解当年我们造原子弹时,在没有计算机的情况下,成千上万的人一起打算盘,最终也把整个原子弹的数学过程给演算出来了。

        因此可以说CPU可以执行任意程序,无论复杂的还是简单的,一般的CPU也就2核,4核,8核等。而GPU则为相对简单重复的运算而生,可能会有上千个核。下面两张图简单描绘了CPU和GPU架构的区别。

   

        可以看到,CPU内部cache以及控制部分占据了很大一部分片上面积,因此计算单元占比很少。CPU的指令相对复杂,它可以支持操作系统的中断处理,内存管理,IO等等。由于构造复杂,受限于整体的计算机硬件架构,CPU的核数有限。

        而GPU只有很简单的控制单元,剩下的大部分都被计算单元占据。它的指令相对简单,定位就是纯计算。因此GPU可以轻松堆出上千核。

        下图相当于我们屏幕的放大图,每一个像素块由红绿蓝三个色块组成,通过混合三种颜色的不同占比,可以决定一个像素显示什么颜色。

         在我们写图形程序时,在屏幕上显示了一个人物,如果我们要为人物加入光照计算,那么你需要为你在屏幕上人物显示需要覆盖的每一个像素点执行光照相关的算法。假设你的人物覆盖1000个像素点,你觉的是让CPU少量核心的每个核心串行计算多次快,还是让拥有1000个核心的GPU每个核心并行计算一个像素块的像素值快。答案显而易见。

        所以说GPU的出现是为了辅助CPU完成简单重复大量的计算任务的,比如图形图像的计算。让CPU从简单重复的繁重计算任务中解放出来,去执行更加复杂的运算任务。

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值