一张图看懂GPU计算能力超强的原因是什么

下图对CPU与GPU中的逻辑架构进行了对比。其中Control是控制器、ALU算术逻辑单元、Cache是cpu内部缓存、DRAM就是内存。可以看到GPU设计者将更多的晶体管用作执行单元,而不是像CPU那样用作复杂的控制单元和缓存。从实际来看,CPU芯片空间的5%是ALU,而GPU空间的40%是ALU。这也是导致GPU计算能力超强的原因。

那有人讲了,为什么cpu不像gpu那样设计呢,这样计算能力也强悍了!

为什么?CPU要做得很通用。CPU需要同时很好的支持并行和串行操作,需要很强的通用性来处理各种不同的数据类型,同时又要支持复杂通用的逻辑判断,这样会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂,计算单元的比重被降低了。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。因此GPU的芯片比CPU芯片简单很多。

举个例子,假设有一堆相同的加减乘除计算任务需要处理,那把这个任务交给一堆(几十个)小学生就可以了,这里小学生类似于GPU的计算单元,而对一些复杂的逻辑推理等问题,比如公式推导、科技文章写作等高度逻辑化的任务,交给小学生显然不合适,这时大学教授更适合,这里的大学教授就是CPU的计算单元了,大学教授当然能处理加减乘除的问题,单个教授计算加减乘除比单个小学生计算速度更快,但是成本显然高很多。

Q:CPU与GPU中的逻辑架构对比中,Control、ALU、Cache、DRAM分别代表什么?
A:Control是控制器、ALU是算术逻辑单元、Cache是cpu内部缓存、DRAM就是内存。
Q:GPU计算能力超强的原因是什么?
A:GPU设计者将更多的晶体管用作执行单元,GPU空间的40%是ALU。
Q:为什么CPU不能像GPU那样设计来增强计算能力?
A:CPU要做得很通用,需要同时很好的支持并行和串行操作,处理各种不同数据类型,支持复杂通用逻辑判断,会引入大量分支跳转和中断处理,导致内部结构异常复杂,计算单元比重降低。
Q:GPU面对的计算环境是怎样的?
A:GPU面对的是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
Q:为什么说GPU的芯片比CPU芯片简单很多?
A:因为GPU面对的计算环境简单,而CPU内部结构复杂。
Q:文中用小学生和大学教授举例是为了说明什么?
A:用小学生类似于GPU的计算单元,大学教授类似于CPU的计算单元,说明GPU适合处理简单统一任务,CPU适合处理复杂逻辑任务,且单个教授处理简单任务成本高。
Q:CPU芯片空间中ALU占比多少?
A:CPU芯片空间的5%是ALU。
Q:GPU芯片空间中ALU占比多少?
A:GPU空间的40%是ALU。
Q:CPU需要支持哪些操作?
A:CPU需要同时很好的支持并行和串行操作,处理各种不同数据类型,支持复杂通用逻辑判断,支持分支跳转和中断处理。
Q:GPU能处理复杂逻辑推理等问题吗?
A:文中以小学生类比GPU计算单元,说明GPU不太适合处理复杂逻辑推理等问题,更适合处理类型高度统一、相互无依赖的大规模数据计算。

share