
其实这种问题百度谷歌都可以找到很多比较好的答案了,简单回答一下抛砖引玉吧!在早期,大概08年以前,cpu和gpu有不同的定位和分工,gpu全称图形处理器,主要作为图形的渲染设备存在,而cpu则作为计算和控制调度设备完成计算机的主要任务。cpu的运算能力遵循摩尔定律飞速发展。08年之后,摩尔定律失效,cpu性能提升遇到瓶颈,开始发展多核技术,但是由于诸多原因,依然难以满足应用程序对计算力的需求。此时nvdida提出了cuda架构gpu用作通用计算。所以题主说的gpu其实应该是gpgpu,也就是通用计算gpu。它不但进行图形渲染,也释放计算力用作通用计算。同时提出的概念叫做异构并行计算,由gpu或者dsp/fpga等作为一种计算设备,分担cpu的计算压力。
以上是发展历程,作为处理器,由于定位不同,二者在底层电路设计上有比较大的区别,cpu作为中央处理器,除了计算任务外,更多的需要进行调度和控制方面的任务,所以它大量的面积用于高速缓存和控制电路,虽然高速缓存有利于提升计算性能,但不是根本上的真正意义上的提升;而gpu作为计算设备,协处理器,不会去承担任务调度和控制方面的任务,所以大量的面积用于ALU,因此,其拥有强大的计算能力,但是由于电路结构的原因,对于数据依赖强,分支严重的计算,gpu性能会很差。
目前,在深度学习或者图像处理方面,大量的计算并行度很好,所以gpu有着广阔的应用领域,另一方面,在生物医学,力学,医疗影像,天气预报等很多领域,涉及大规模矩阵运算,对gpu的需求也很大。
希望有高手能进行更全面的回答。以上回答中若有错误,望不吝赐教!
