📜  了解张量处理单元

📅  最后修改于: 2021-10-19 08:13:15             🧑  作者: Mango

什么是张量处理单元?

随着机器学习每天变得越来越重要,传统的微处理器已被证明无法有效地处理它,无论是训练还是神经网络处理。 GPU 具有专为快速图形处理而设计的高度并行架构,被证明比 CPU 更有用,但有些不足。因此,为了应对这种情况,谷歌开发了一种人工智能加速器集成电路,供其 TensorFlow 人工智能框架使用。该设备已命名为 TPU(张量处理单元)。该芯片专为 Tensorflow 框架设计。

什么是 TensorFlow 框架?

TensorFlow 是由 Google 开发的供其内部使用的开源库。它的主要用途是机器学习和数据流编程。 TensorFlow 计算表示为有状态数据流图。 TensorFlow 的名称源自此类神经网络对多维数据数组执行的操作。这些数组被称为“张量”。 TensorFlow 可用于 Linux 发行版、Windows 和 MacOS。

TPU架构

下图解释了 TPU 中单元的物理架构:

TPU 包括以下计算资源:

  • 矩阵乘法器单元 (MXU) :用于矩阵运算的 65、536 个 8 位乘加单元。
  • 统一缓冲区 (UB) :24MB 用作寄存器的 SRAM
  • 激活单元 (AU):硬连线激活函数。

设计了 5 个主要的高级指令集来控制上述资源的工作方式。它们如下:

TPU Instruction Function
Read_Host_Memory Read data from memory
Read_Weights Read weights from memory
MatrixMultiply/Convolve Multiply or convolve with the data and weights, accumulate the results
Activate Apply activation functions
Write_Host_Memory Write result to memory

下图是使用TensorFlow和TPU的google应用维护的应用栈图:

TPU的优点

以下是 TPU 的一些显着优势:

  1. 加速线性代数计算的性能,这在机器学习应用程序中被大量使用。
  2. 当您训练大型复杂的神经网络模型时,最大限度地缩短达到准确度的时间。
  3. 以前在其他硬件平台上训练需要数周时间的模型可以在数小时内在 TPU 上收敛。

何时使用 TPU

以下是 TPU 最适合机器学习的情况:

  • 以矩阵计算为主的模型。
  • 在主训练循环中没有自定义 TensorFlow 操作的模型。
  • 训练数周或数月的模型
  • 具有非常大的有效批量大小的较大和非常大的模型。

参考:
https://cloud.google.com/blog/big-data/2017/05/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu
https://cloud.google.com/tpu/docs/tpus