什么是CPU,GPU,TPU,DPU,NPU,BPU

随着深度学习的火热发展,各类芯片陆续出现在人们的视野中,例如GPU, TPU, DPU, NPU, BPU……,那这些分别是什么?它们与CPU又是什么关系呢?下面来小白一下

首先介绍一下这些词的英文全称:

  • CPU全称:Central Processing Unit, 中央处理器;
  • GPU全称:Graphics Processing Unit, 图像处理器;
  • TPU全称:Tensor Processing Unit, 张量处理器;
  • DPU全称:Deep learning Processing Unit, 深度学习处理器;
  • NPU全称:Neural network Processing Unit, 神经网络处理器;
  • BPU全称:Brain Processing Unit, 大脑处理器。

下面就来科普一下这些所谓的“XPU”

1、CPU

CPU( Central Processing Unit, 中央处理器)就是机器的“大脑”, 主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。由计算单元、控制单元和存储单元三大部分组成。如下图所示

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

2、GPU

为了解决CPU在大规模并行运算中遇到的困难、提升速度,GPU应运而生,采用数量众多的计算单元和超长的流水线。

关于GPU,先中提到的一个生物概念——并行计算。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来共同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。

GPU(Graphics Processing Unit),中文为图形处理器,GPU最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。如下图所示: 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

为什么GPU特别擅长处理图像数据呢?这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,所以GPU在图像处理方面的能力就非常强。

下图是CPU与GPU架构的对比图,可见GPU的架构非常简单,但GPU无法单独工作,必须由CPU进行控制调用才能工作。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

3、TPU

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

TPU是Google于2016年5月提出的一个针对Tensorflow平台的可编程AI加速器,TPU可以提供高吞吐量的低精度计算,用于模型的前向运算而不是模型训练,且能效(TOPS/w)更高。据称,TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。

那TPU是怎么做到如此之快呢?

(1)深度学习的定制化研发:TPU 是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款 ASIC(专用集成电路)。

(2)大规模片上内存:TPU 在芯片上使用了高达 24MB 的局部内存,6MB 的累加器内存以及用于与主控处理器进行对接的内存。

(3)低精度 (8-bit) 计算:TPU 的高性能还来源于对于低运算精度的容忍,TPU 采用了 8-bit 的低精度运算,也就是说每一步操作 TPU 将会需要更少的晶体管。

下面是TPU各模块的是框架图: 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

TPU 各模块的框图。主要计算部分是右上方的黄色矩阵乘法单元。其输入是蓝色的「权重 FIFO」和蓝色的统一缓存(Unified Buffer(UB));输出是蓝色的累加器(Accumulators(Acc))。黄色的激活(Activation)单元在 Acc 中执行流向 UB 的非线性函数。

4、DPU

DPU深度学习处理器最早由国内深鉴科技提出,基于Xilinx可重构特性的FPGA芯片,设计专用的深度学习处理单元,且抽象出定制化的指令集和编译器,从而实现快速的开发与产品迭代。 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

5、NPU

NPU,神经网络处理器,在电路层模拟人类神经元和突触,并且用深度学习指令集直接处理大规模的神经元和突触,一条指令完成一组神经元的处理。NPU的典型代表有国内的寒武纪芯片和IBM的TrueNorth。 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

6、BPU

BPU, 大脑处理器,是由地平线科技提出的嵌入式人工智能处理器架构。传统CPU芯片是做所有事情,所以一般采用串行结构。BPU主要是用来支撑深度神经网络,比如图像、语音、文字、控制等方面的任务,而不是去做所有的事情。

 

欢迎关注本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),获取更多资讯

155533_IdYn_876354.jpg

你可能感兴趣的