-
Google 设计了 Cloud TPU,它们是专门用于神经网络工作负载的矩阵处理器。TPU 不能运行文字处理程序、控制火箭引擎或执行银行交易等多样化服务,但它们可以很快地处理神经网络中使用的大量矩阵运算。
-
TPU 的主要任务是矩阵处理,这是乘法和累加运算的组合。TPU 包含数千个乘法累加器,这些累加器彼此直接连接以形成大型物理矩阵。这称为脉动阵列架构。Cloud TPU v3 在单个处理器上包含两个 128 x 128 ALU 的脉动阵列。
-
TPU 主机将数据流式传输到馈入队列中。TPU 从馈入队列加载数据,并将其存储在 HBM 内存中。计算完成后,TPU 会将结果加载到馈出队列中。然后,TPU 主机从馈出队列读取结果并将其存储在主机的内存中。
-
为了执行矩阵操作,TPU 将 HBM 内存中的参数加载到 MXU 中。
-
然后,TPU 从内存加载数据。每次执行乘法运算时,系统都会将结果传递给下一个乘法累加器。输出是数据和参数之间所有乘法结果的总和。在矩阵乘法过程中,不需要访问内存。
-
TPU的应用场景
- 由矩阵计算主导的模型
- 在主训练循环内没有自定义 TensorFlow/PyTorch/JAX 操作的模型
- 需要训练数周或数月的模型
- 有效批量大小较大的大型模型
-
TPU不太适合
- 需要频繁分支或包含许多元素级代数运算的线性代数程序
- 以稀疏方式访问内存的工作负载
- 需要高精度算法的工作负载
- 主训练循环中包含自定义操作的神经网络工作负载
-
Cloud TPU 资源提高了机器学习应用中大量使用的线性代数计算的性能。在训练大型复杂的神经网络模型时,TPU 可以最大限度地缩短达到准确率所需的时间。以前在其他硬件平台上需要花费数周时间进行训练的模型,在 TPU 中只需数小时即可收敛。
-
张量处理单元 (TPU) 是 Google 设计的机器学习加速器。Cloud TPU 将 TPU 作为一种可伸缩的 GPC 云资源提供。可以使用机器学习框架(如 TensorFlow、Pytorch 和 JAX)在 Cloud TPU 上运行机器学习工作负载。
-
单个 TPU 设备包含 4 个芯片,每个芯片包含 2 个 TPU 核心。TPU 核心包含一个或多个矩阵乘法单元 (MXU)、矢量处理单元 (VPU) 和标量单元。
- MXU 由收缩阵列中的 128 x 128 乘法/累加器组成。MXU 可在 TPU 芯片中提供大部分计算能力。每个 MXU 能够使用 bfloat16 数字格式在每个周期中执行 16K 乘法累加运算。
- VPU 用于激活函数、softmax 等常规计算。 标量单位用于控制流、计算内存地址和其他维护操作。
-
TPU v2
- 一个 TPU v2 开发板包含四个 TPU 芯片和 16 GiB 的 HBM。每个 TPU 芯片包含两个核心。每个核心都有一个 MXU、矢量单位和标量单位。
-
TPU v3
- 一个 TPU v3 开发板包含四个 TPU 芯片和 32 GiB 的 HBM。每个 TPU 芯片包含两个核心。每个核心都有一个 MXU、矢量单位和标量单位。
-
TPU v3 相对于 v2 的性能优势