从硬件来分析,CPU和GPU似乎很像,都有内存、cache、ALU、CU,都有着很多的核心,但是二者是有区别的。
GPU与CPU结构缩略图
以核心为例,CPU的核心比较重,可以用来处理非常复杂的控制逻辑,预测分支、乱序执行、多级流水等等CPU做得非常好,这样对串行程序的优化做得非常好。
但是GPU的核心就是比较轻,用于优化具有简单控制逻辑的数据并行任务,注重并行程序的吞吐量。
简单来说就是CPU的核心擅长完成多重复杂任务,重在逻辑,重在串行程序;GPU的核心擅长完成具有简单的控制逻辑的任务,重在计算,重在并行。
有一个比较形象的比喻,CPU就像是一个博士,适合处理非常复杂的任务,而GPU就像是一群的小学生,适合处理大量的简单任务(比如加减乘除)。让一名博士去处理大量的加减乘除,速度不一定有大量的小学生同时计算加减乘除来得快
刚好我手里同时有GPU和CPU,能不能做个实验来验证一下,GPU和CPU到底是哪个的运算能力更强大。
我的GPU和CPU:
GPU:GeForce GTX 1070 TI
CPU:Intel i