CPU、GPU、TPU、NPU你都知道吗
CPU
CPU英文全称为Central Processing Unit,中文全称是中央处理器,是计算机的核心器件,CPU通常由三部分组成:计算单元、控制单元和存储单元。
CPU的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。
结构图如下所示:
具体各个模块的功能简单如下所示:
GPU
GPU全称Graphics Processing Unit,中文全称叫图形处理器,它也是由三个部分组成:计算单元、控制单元和存储单元。
我们继续用CPU各个模块的颜色来表示GPU的结构图:
可以看到,GPU中有大量的计算单元,几乎80%的空间都用在了计算单元上,而CPU由30%用在控制单元,各个模块均衡分布。
正是由于这种区别,导致了CPU精于控制和复杂运算,而GPU精于简单且重复的运算:比如矩阵乘法。
另外CPU和GPU还有一个最大的区别:CPU是顺序执行运算,而GPU是可以大量并发的执行运算。
虽然GPU是为了图像处理而生的,但在结构上并没有专门为图像服务的部件,只是对CPU的结构进行了优化与调整,所以GPU不仅可以用在图像领域,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。
但GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。
TPU
TPU英文全称Tensor Processing Unit,中文全称为张量处理单元,是深度学习算法的专用芯片。
TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。
如上图所示,TPU在芯片上使用了高达24MB的局部内存,6MB的累加器内存以及用于与主控处理器进行对接的内存,总共占芯片面积的37%(图中蓝色部分)。
TPU的高性能还来源于对于低运算精度的容忍。研究结果表明,低精度运算带来的算法准确率损失很小,但是在硬件实现上却可以带来巨大的便利,包括功耗更低、速度更快、占芯片面积更小的运算单元、更小的内存带宽需求等。TPU采用了8比特的低精度运算。
NPU
NPU英文全称是Neural Network Processing Unit,中文全称为神经网络处理器。
神经网络中存储和处理是一体化的。
并且非常节能,可以保持较低的功耗情况下进行神经网络的加速推理。