什么是张量处理单元?
随着机器学习每天变得越来越重要,传统的微处理器已被证明无法有效地处理它,无论是训练还是神经网络处理。 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 的一些显着优势:
- 加速线性代数计算的性能,这在机器学习应用程序中被大量使用。
- 当您训练大型复杂的神经网络模型时,最大限度地缩短达到准确度的时间。
- 以前在其他硬件平台上训练需要数周时间的模型可以在数小时内在 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