Hi,欢迎
86-755-88844016 6*12小时在线电话
AI高性能计算---Google TPU
2023-08-22

自Google在2016年推出第一代自研人工智能芯片Tensor Processing Unit, TPU,经过数年发展已升级到了第4代 TPU v4 (截止到2022年底)。TPU架构设计也是通过高效地并行运算大量乘法和累加操作来实现深度学习卷积层,全连接层等网络层的高效计算。

脉动阵列

脉动阵列(systolic array)是由大量紧密耦合的PE组成阵列网络,是一种数据流的架构设计。脉动阵列中每一个PE都会与周围一个或者多个的PE进行数据通信,PE的功能相对简单,系统通过大量PE的并行计算来实现高效的计算,通过数据在不同PE间的流动最大化的实现数据的复用和减少芯片在运算过程中的内存访问的次数,不仅可以节省内存带宽还降低了因内存访问带来的功耗损失。

在传统计算系统的运算过程中,处理单元PE先从主存中读取数据,然后再进行运算操作,运算完成后结果再写回到存储器中,因此访存的速度称为了整个系统的处理性能的瓶颈。相比于CPU通过多级缓存的方式来解决访存速度瓶颈的问题,脉动架构则是让数据在不同处理单元中流动来减少访问主存带来的性能瓶颈。如图所示,在一个一维脉动阵列的运算过程中,数据首先从主存中进入第一个PE,经过处理后被传递到下一个PE,同时下一个数据进入第一个PE,以此类推,数据以流动的方式在不同PE之间传递,直到完成全部计算后才返回主内存。所以脉动阵列架构实现了输入数据的多次复用,省去了数据被写回主存后再读取的过程,减少主存的访问次数,因此脉动阵列可以在较小的内存带宽的情况下实现高吞吐率。

未标题-1

脉动阵列

脉动阵列架构有如下几个特点:

  1. PE功能结构简单,实现成本低,可以集成大量PE来提高并行计算能力。

  2. 由大量同构的PE组成的一维、二维或树的阵列结构,可灵活拓展。

  3. 不同PE之间采用流水线的方式进行数据通讯,实现高效的数据复用。

  4. 数据只能在相邻PE间流动,只适合特定的算法,比如矩阵运算,卷积等。

TPU架构设计

TPU使用了脉动阵列架构设计,数据在不同方向上以固定的时间间隔送入阵列中的 PE进行运算,在经过多步计算后最后将结果汇总输出来。脉动阵列只适合用于非常简单且规整的运算,而矩阵乘和卷积刚好符合脉动阵列的运算特性。

第一代TPU的脉动阵列结构实现如图所示,与GPU类似,TPU通过PCI-E总线与主机CPU连接,TPU的指令由CPU完成编码以简化硬件设计和调试。矩阵乘法单元(Matrix Multiply Unit, MXU)是主要的计算单元,其主要功能为完成矩阵的乘法运算。矩阵乘法单元周围有三个功能不同的数据缓存区以及专用的Activitation, Normalize和Pool单元,其中三个数据缓存区分别用于缓存权重队列(Weight FIFO)和输入数据缓冲区(Unified Buffer, UB)和输出数据累加单元(Accumulator, Acc)。

未标题-2

TPU架构


具体执行时,指令和数据从主机接口(host interface)进入TPU,复用率更高的权重参数会被预先加载到Weight FIFO,输入数据会被加载到统一缓冲区UB。输入数据和权重参数在矩阵乘法单元里完成矩阵乘法运算后结果再送入累加单元Acc,在Acc完成部分和累加后根据模型设计需要,选择是否进行送入Activitation, Normalize和Pool单元执行对应操作,最后再将结果送回统一缓冲区UB。

在第一代TPU硬件的布局中,矩阵乘单元和激活单元一共占30%的面积,矩阵乘单元(MXU)有256x256个MACs,每个时钟周期能完成256x256个8bit数据的乘加运算,Acc是大小为4MiB的32bit累加器。UB大小为24MiB,占29%的面积,其可以通过DMA直接与Host CPU交互,用于缓存输入数据或保存中间计算结果。Weight FIFO的深度为4,权值参数从片外内存中读取。

未标题-3

TPU布局

矩阵乘法单元(Matrix Multiply Unit, MXU)是一个典型的脉动阵列,如图所示,weight由上向下流动,数据从左向右流动。输入的像素数据从乘法矩阵左侧进入,并从左向右传播以重复利用中间数据,由于权重是预先加载的,因此随着输入数据的前进,可以快速算出乘积结果,在通过控制通路进入下一步累加计算。

未标题-4

矩阵乘单元数据流

TPU架构演进

TPU v1是谷歌第一代AI专用芯片,主要专注与处理推理任务,Google在推出用于推理的TPU v1之后开始开发和设计针对训练的第二代TPU。与TPU v1相比,TPU v2的有如下的改进点:

  1. 1.TPU v2每个芯片有两个Tensor Core。

  2. 2.将固定的激活函数(Activation Pipeline)改为可编程性更高的向量单元(Vector Unit)。

  3. 3.使用一个向量存储器(Vector Memory)代替Accumulator和Activation Storage中的缓存。

  4. 4.矩阵乘法单元作为向量单元的协处理器直接与向量单元连接,增加其可编程性。

  5. 5.使用HBM代替DDR3,并改为与向量存储区相连,可以提供更高的带宽和读写速度。

  6. 6.在HBM和向量存储区之间增加互连模块(Interconnect),提供更强的扩展能力用于TPU之间的连接。

  7. 7.增加了Scalar Unit, Transpose/Permute Unit等单元, 对Transpose等操作做硬件加速。

未标题-5

TPU v2架构


TPUv3在TPUv2的基础上进一步的提升了性能,其在时钟频率、内存带宽和芯片间带宽上提升了30%,矩阵乘法单元MXU的数量增加了1倍,HBM容量提升了1倍,可连接节点数增加了4倍。

未标题-6

TPU v1 v2 v3架构差异

TPU v4出于成本的考虑,Google对用于训练的和用于推动TPU进行了分开设计,用于训练的TPU v4有两个Tensor Core,而用于推理的PU v4i只有一个Tensor Core,在通用性、性能和成本上进行了取舍和平衡。在TPU v4i中,单个Tensor Core包含4个矩阵乘法单元MXU,是TPU v3的两倍。Google在TPU v4i的设计中还增加了性能计数器(Performance counter)以便于协助编译器更好地掌握芯片的运行情况。

郑重声明:文中仅代表作者观点,不代表本公司观点,本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或者删除,感谢您的关注!


热门资讯
电磁式电压互感器的工作原理和分类
电磁式电压互感器通常用于电力系统中,用于测量高电压输电线路上的电压。它们还可以用于监测电力系统中的电压波形和幅值,以便及时发现电力系统中的故障和问题。在本文中,我们将详细介绍电磁式电压互感器的工作原理和分类。
热继电器和热过载继电器区别
热继电器和热过载继电器都是常见的电气保护设备,但它们的工作原理和保护对象有所不同。在本篇文章中,我们将详细介绍热继电器和热过载继电器的区别。
钽电容器的种类和封装
钽电容器是一种电子元器件,使用钽金属作为电极材料。它们通常分为有极性和无极性两种类型,并且有多种不同的封装形式。在本文中,我们将详细讨论钽电容器的种类和封装。
热继电器和熔断器的区别
热继电器和熔断器都是常见的电器元件,它们在电路中都起到了保护作用。虽然它们都可以在电路中断开电路,但它们之间存在一些区别。在本篇文章中,我们将详细介绍热继电器和熔断器的区别。
FT2232开发板
采用FT2232芯片设计的开发板,将IO口完全引出,可在此基础上设计接口扩展板
AI高性能计算---存算一体
存算一体或存内计算是将存储与计算完全融合,直接利用存储器进行数据处理或计算。在传统的冯诺依曼架构下,数据的存储和计算是分开的,由于存储和计算的性能存在加大的差距,处理器访问存储数据的速率远远小于处理器计算速率,数据在内存与主存之间搬运的过程其能耗也远远高于处理器的计算所消耗的能量。
AI高性能计算---寒武纪NPU
寒武纪是国内最早一批研究AI芯片公司,其AI芯片NPU (Neural network Processing Unit)的设计源于其早期一系列的AI芯片架构研究,主要包括DianNao、DaDianNao、PuDianNao、ShiDianNao、Cambricon-X等一系列研究成果。
AI高性能计算---AI芯片设计
AI芯片最简单直接设计思路就是将神经元直接映射到硬件芯片上,如图所示,全硬件实现方案(Full-Hardware Implementation)将每个神经元映射为一个逻辑计算单元,每个突触映射为一个数据存储单元,这种架构设计可以实现一个高性能且低功耗的AI芯片,比如Intel ETANN芯片。在全硬件实现方案中上一层输出数据和权重相乘,相乘的结果再相加,然后再经过一个激活函数输出到下一层计算。这种架构设计将计算和存储紧密的耦合在一起,使得芯片在进行高速计算的同时由能避免大规模的数据访存,在提高整体计算性能的同时也降低了功耗。
AI高性能计算---AI计算特性
AI计算特性设计和部署一款专用芯片需要平衡各种指标,不同的场景下关注的指标不一样,其芯片设计的思路也会存在差异,常见的芯片设计指标包括:功耗:芯片电路在工作时所消耗的能量。峰值性能:芯片每秒计算操作数...
AI高性能计算---AI专用芯片
当前人工智能(AI)计算主要是指以深度学习为代表的神经网络算法为主,传统的CPU、GPU都可以用来做AI算法的运算,但其并不是针对深度学习特性设计和优化的,所以在速度和性能上都无法完全适配AI算法特性,通常来说,AI芯片指的是针对人工智能算法特性做特殊设计的ASIC(专用芯片)。
用户信息:
电话号码
中国大陆+86
  • 中国大陆+86
  • 中国台湾+886
  • 中国香港+852
公司名称
邮箱
产品型号
产品数量
备注留言