首页 > 新闻资讯 > 新闻详情

什么是张量处理单元?TPU构架配置及工作原理概述

IC先生 IC先生 43 2023-12-29 17:05:22

我们知道,与机器学习中的中央处理单元相比,图形处理单元的速度非常快。因此,谷歌在2016年开发了一款新芯片来优化机器学习张量运算,即张量处理单元(,Tensor Processing Unit,简称TPU)。

所有Google数据中心均已部署TPU,为Google搜索、Google照片、Google翻译和地图等应用程序提供支持。Google的张量处理单元以两种形式访问:边缘TPU和云TPU。边缘TPU是一种专门制作的开发套件,用于特定应用程序,而云TPU可以从Google的Colab笔记本访问,该笔记本为位于Google数据中心的消费者提供TPU pod。

基本概念

张量处理单元是一种专用加速器或处理芯片,用于加速机器学习工作负载。该芯片由Google设计,用于使用TensorFlow软件处理神经网络过程。张量处理单元是ASIC,主要用于通过包括本地存储器在内的小型DSP等处理元件来加速特定的机器学习工作负载。

实际上,像TensorFlow这样的开源平台用于物体检测、图像分类、语音识别、语言建模等方面的机器学习。

张量处理单元

架构配置

张量处理单元是用于实现硬件电路的专用集成电路。这是基于CISC(复杂指令集计算机)的指令集,该指令集执行高级指令来运行旨在训练深度神经网络的困难任务。张量处理单元架构的核心存在于脉动阵列中,以优化矩阵的运算。张量处理单元架构如下所示:

张量处理单元架构

张量处理单元是可编程的,类似于GPU/CPU。它主要是为单个神经网络模型而设计的,以便在多个网络(如 LSTM模型、卷积、大型和完全连接模型)上执行 CISC 指令。因此,它仍然是可编程的,尽管使用像基元这样的矩阵来代替标量或向量。

张量处理单元架构包括三个计算资源MXU、UB和AU。

  • MXU是一个矩阵乘法器单元,包括65536个8位乘法和加法单元,用于矩阵运算。
  • UB是一个统一缓冲区,包含24MB SRAM,用作寄存器
  • AU是一个激活单元,它是Hardwired激活函数。

在张量处理单元中,创建了五个主要的高级指令集来处理资源的功能。因此,下面介绍了五种主要的高级指令集。

  • Read_Host_Memory用于从内存中读取数据
  • Read_Weights用于从内存中读取“读取权重”
  • MatrixMultiply/Convolve指令用于与数据和权重进行卷积/相乘以收集结果
  • Activate用于应用激活函数。
  • Write_Host_Memory用于将结果写入内存。

张量处理单元的指令通过PCIe Gen3x16(快速外围组件互连)总线从主机传输到指令缓冲区。该架构中的内部块通常通过256字节宽的路径连接在一起。另外,在架构的右上角,矩阵乘法单元 (MMU) 是张量处理单元的核心,具有256×256 MAC,可以对有符号或无符号整数执行8位乘法和加法。

在矩阵单元下,16位乘积聚集在4兆字节的32位累加器中。4个MiB表示4,096 个、256个元素和32位累加器。这里,矩阵单元为每个周期生成单个256元素部分和。

 

对于矩阵单元,权重安装在整个片上权重FIFO(权重获取器)中,以便它从片外8GB DRAM(称为权重存储器)读取。因此,对于推理来说,权重是只读的,8GB只是同时支持多个活动模型。权重FIFO的深度为四格。因此,中间结果保存在片上24 MiB统一缓冲区内,该缓冲区可以为矩阵单元提供输入。

可编程DMA控制器只需将数据从CPU的主机内存和统一缓冲区传输到主机内存或向其传输数据。为了能够在Google规模上可靠地进行配置,内部和外部存储器包含内置的纠错和检测硬件。

张量处理单元芯片的平面图如下所示。这里,24MiB UB(统一缓冲区)几乎占芯片的三分之一,MMU(矩阵乘法单元)占四分之一,因此,数据路径几乎占芯片的三分之二。选择24 MiB的大小部分是为了相当于芯片上矩阵单元的间距,并且考虑到较短的开发时间表部分是为了缩短编译器。

TPU平面图模具

 

工作原理

张量处理单元是专为机器学习而构建的ASIC,并为TensorFlow定制,能够以最大速度处理NN(神经网络)的巨大乘法和加法,同时减少过多占地面积和功耗的利用率。张量处理单元主要执行三个步骤,分别如下:

  1. 在TPU的第一步中,内存中的参数被加载到加法器和乘法器的矩阵中。
  2. 在第二步中,数据只是从内存中加载。
  3. 在第三步中的每个乘法过程之后,结果简单地传递给下一个乘法器,同时执行求和。之后,输出作为所有乘法的总和提供,从而产生数据和参数。

典型的云张量处理单元包括两个128x128大小的脉动阵列,单个处理器内有32,768个ALU,用于处理16位浮点值。数百个加法器和乘法器简单地直接相互连接,形成一个巨大的运算符物理矩阵,从而形成脉动阵列架构。

张量处理单元只是允许芯片更自由地降低计算精度,这意味着每次操作需要更少的晶体管。因此,由于此功能,单个芯片每秒可以处理相当多的操作。由于张量处理单元是定制的,用于处理不同的操作,例如加速训练和矩阵乘法,因此这些处理单元不适合处理其他类型的工作负载。

TPU与GPU

下面简单介绍TPU与GPU之间的区别。

TPU GPU
术语TPU代表“张量处理单元”。 GPU一词代表“图形处理单元”。
TPU是一种专用集成电路或ASIC。 GPU是一种专门的电子电路。
与GPU相比,TPU能够更快地工作,同时使用更少的资源。 GPU能够将困难的问题分解为单独的任务并立即解决它们。
单个云TPU芯片包含两个基于Google的内核,该内核使用MXU通过密集矩阵计算来加速程序。 GPU包含数百到数千个核心。在GPU中,计算可以在这些核心内执行。所以,GPU的性能也主要取决于它所拥有的核心。
TPU每秒仅使用2W的功率即可执行4万亿次运算。 GPU功率高达350W。

TPU与CPU

TPU与CPU之间的区别包括以下几点内容:

TPU CPU
TPU代表张量处理单元。 CPU是通用处理器。
TPU的速度是CPU的三倍。 与TPU相比,CPU速度较慢。
这些是非常高效的处理器,用于在 Tensorflow 框架内执行项目。 CPU用于处理所有计算机输入/输出和逻辑计算。
强大的TPU可让你加快机器学习、人工智能和深度学习的算法和计算速度。 强大的CPU将确保程序和任务的顺利执行。

主要优点

张量处理单元的优点包括以下几点内容:

  • 可以提高计算速度和效率。
  • 增强了机器学习应用中最常用的线性代数计算性能。
  • 减少了训练庞大而困难的机器学习模型时达到准确率的时间。
  • 允许你在众多机器上扩展计算,而无需编写任何代码。
  • 当前版本的TPU可以在数小时内训练模型。
  • 每个操作的功耗极低,因此张量处理单元对于其用例来说非常高效。
  • 与GPU相比,它具有极高的内存,支持更大的输入。

主要缺点

张量处理单元的缺点包括以下几点内容:

  • 与CPU和GPU相比,TPU非常昂贵。
  • 目前,TPU仅支持张量流。
  • 不支持特定的张量流操作,例如用C++编写的客户操作。
  • TPU不像GPU那样支持各种类型的操作。
  • 谷歌的张量处理单元无可替代。
  • TPU的计算并不完全像GPU/CPU。
  • 这些与Linux非常匹配,其中边缘TPU与特定的Debian衍生操作系统兼容。

应用领域

张量处理单元的应用非常广泛,常见的一些应用包括:

  • 谷歌的类似ASIC的张量处理单元用于机器学习。
  • 这些特别用于深度学习来解决复杂的矩阵和向量运算。
  • TPU可以高效地以超高速解决矩阵和向量运算,但它们必须与CPU连接才能提供和执行指令。
  • 这些用于不同的深度学习应用,如计算机视觉、电子商务、欺诈检测、自动驾驶汽车、自然语言处理、农业、语音人工智能、股票交易、虚拟助理和各种社交预测。
推荐商品
GRM319R71H103KA01D
库存:0
¥ 0.07719
CL31B225KAHNNNE
库存:0
¥ 0.09459
CL31B106KBHNNNE
库存:0
¥ 0.1957
MC74VHC1G14DBVT1G
库存:0
¥ 0.70625
TS3A5223RSWR
库存:6000
¥ 0.79999
版权声明: 部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。
标题:

什么是张量处理单元?TPU构架配置及工作原理概述


网址: https://www.mrchip.cn/newsDetail/33583
文章标签: 芯片
0 购物车
0 消息