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

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

每台电脑的gpu数 电脑都有gpu_并行计算

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

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

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

每台电脑的gpu数 电脑都有gpu_逻辑运算_02

   

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

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

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

每台电脑的gpu数 电脑都有gpu_并行计算_03

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

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