张量处理单元(英文:Tensor Processing Unit,简称:TPU),也称张量处理器,是 Google 开发的专用集成电路(ASIC),专门用于加速机器学习。自 2015 年起,谷歌就已经开始在内部使用 TPU,并于 2018 年将 TPU 提供给第三方使用,既将部分 TPU 作为其云基础架构的一部分,也将部分小型版本的 TPU 用于销售。
2016 年 5 月,Google 在 Google I/O 上宣布了张量处理单元,并表示 TPU 已经在其数据中心内部使用了超过一年。该芯片是专门为 Google 的 TensorFlow 框架(一个符号数学库,用于机器学习应用程序,如神经网络)设计的。不过,截至 2017 年,Google 也将 CPU 和 GPU 用于其他类型的机器学习。其他供应商也设计了自己的 AI 加速器,并针对嵌入式和机器人市场。
Google 的 TPU 是专有的,一些 TPU 的型号已经上市。在 2018 年 2 月 12 日,纽约时报报道称 Google 将“允许其他公司通过其云计算服务购买对这些芯片的访问权”。Google 曾称,它们已用于 AlphaGo 与李世乭的人机围棋对战以及 AlphaZero 系统中。Google还使用 TPU 进行 Google 街景中的文本处理,并且能够在不到五天的时间内找到 Google 街景数据库中的所有文本。在 Google 相册中,单个 TPU 每天可以处理超过1亿张照片。TPU 也被用在 Google 用来提供搜索结果的 RankBrain 中。
与图形处理单元(GPU)相比,TPU 被设计用于进行大量的低精度计算(如 8 位的低精度),每焦耳功耗下的输入/输出操作更多,但缺少用于光栅化/纹理映射的硬件。
根据 Norman Jouppi(英语:Norman Jouppi) 的说法,TPU 可以安装在散热器组件中,从而可以安装在数据中心机架上的硬盘驱动器插槽中。
第一代TPU是一个 8 位矩阵乘法的引擎,使用复杂指令集,并由主机通过 PCIe 3.0 总线驱动。它采用28 nm工艺制造,裸晶尺寸小于 331 mm2,时钟速度为 700 MHz,热设计功耗为 28–40 W。它有28 MiB 的片上存储和 4 MiB 的 32位累加器,取 8 位乘法器的 256×256 脉动阵列的计算结果。TPU 还封装了 8 GiB 的双通道 2133 MHz DDR3 SDRAM,带宽达到 34 GB/s。TPU 的指令向主机进行数据的收发,执行矩阵乘法和卷积运算,并应用激活函数。
第二代 TPU 于 2017 年 5 月发布。Google 表示,第一代 TPU 的设计受到了内存带宽的限制,因此在第二代设计中使用 16 GB 的高带宽内存,可将带宽提升到 600 GB/s,性能从而可达到 45 TFLOPS。TPU 芯片随后被排列成性能为 180 TFLOPS 的四芯片模块,并将其中的 64 个这样的模块组装成 256 芯片的 Pod,性能达到 11.5 PFLOPS。值得注意的是,第一代 TPU 只能进行整数运算,但第二代 TPU 还可以进行浮点运算。这使得第二代 TPU 对于机器学习模型的训练和推理都非常有用。谷歌表示,这些第二代TPU将可在 Google 计算引擎上使用,以用于 TensorFlow 应用程序中。
第三代 TPU 于 2018 年 5 月 8 日发布。谷歌宣布第三代 TPU 的性能是第二代的两倍,并将部署在芯片数量是上一代的四倍的 Pod 中。与部署的第二代 TPU 相比,这使每个 Pod 的性能提高了 8 倍(每个 Pod 中最多装有 1,024 个芯片)。