「cpu」和「GPU」有什么区别?
两者的区别在于片上缓存系统和数字逻辑运算单元的结构差异。
首先,我们需要解释一下CPU和GPU这两个缩写分别代表什么。CPU是中央处理器,GPU是图形处理器。
两者的区别在于芯片内存在的缓存系统和数字逻辑运算单元的结构:CPU虽然有多个核,但总数不超过两位数,每个核都有足够的缓存和足够的数字和逻辑运算单元,并辅以许多硬件加速分支判断甚至更复杂的逻辑判断;
GPU的核心远多于CPU,所以被称为众核(英伟达费米有512个核心)。每个核的缓存大小相对较小,数字逻辑运算单元少而简单(GPU一开始在浮点计算上总是弱于CPU)。因此,CPU擅长处理具有复杂计算步骤和复杂数据依赖的计算任务,如分布式计算、数据压缩、人工智能、物理模拟以及许多其他计算任务。
由于历史原因,GPU是为电子游戏而生的(其主要推动力是不断增长的电子游戏市场)。3D游戏中经常出现的一种操作是对海量数据进行相同的操作,比如对每个顶点进行相同的坐标变换,根据相同的光照模型计算每个顶点的颜色值。GPU的众核架构非常适合将同一个指令流并行发送到众核,用不同的输入数据执行。
2003-2004年左右,图形以外领域的专家开始注意到GPU独特的计算能力,开始尝试使用GPU进行通用计算(即GPGPU)。后来NVIDIA发布了CUDA,AMD和苹果也发布了OpenCL,GPU开始广泛应用于通用计算领域,包括:数值分析,海量数据处理(排序,Map-Reduce等。),财务分析等等。