我们知道,与机器学习中的中央处理单元相比,图形处理单元的速度非常快。因此,谷歌在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。
在张量处理单元中,创建了五个主要的高级指令集来处理资源的功能。因此,下面介绍了五种主要的高级指令集。
张量处理单元的指令通过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的大小部分是为了相当于芯片上矩阵单元的间距,并且考虑到较短的开发时间表部分是为了缩短编译器。
张量处理单元是专为机器学习而构建的ASIC,并为TensorFlow定制,能够以最大速度处理NN(神经网络)的巨大乘法和加法,同时减少过多占地面积和功耗的利用率。张量处理单元主要执行三个步骤,分别如下:
典型的云张量处理单元包括两个128x128大小的脉动阵列,单个处理器内有32,768个ALU,用于处理16位浮点值。数百个加法器和乘法器简单地直接相互连接,形成一个巨大的运算符物理矩阵,从而形成脉动阵列架构。
张量处理单元只是允许芯片更自由地降低计算精度,这意味着每次操作需要更少的晶体管。因此,由于此功能,单个芯片每秒可以处理相当多的操作。由于张量处理单元是定制的,用于处理不同的操作,例如加速训练和矩阵乘法,因此这些处理单元不适合处理其他类型的工作负载。
下面简单介绍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速度较慢。 |
| 这些是非常高效的处理器,用于在 Tensorflow 框架内执行项目。 | CPU用于处理所有计算机输入/输出和逻辑计算。 |
| 强大的TPU可让你加快机器学习、人工智能和深度学习的算法和计算速度。 | 强大的CPU将确保程序和任务的顺利执行。 |
张量处理单元的优点包括以下几点内容:
张量处理单元的缺点包括以下几点内容:
张量处理单元的应用非常广泛,常见的一些应用包括:

