TPU 简介

什么是 TPU

TPU 代表 Tensor Processing Unit (张量处理单元) ,是由谷歌在2016年5月发布的为机器学习而构建的定制集成电路(ASIC),并为TensorFlow量身定制。

早在2015年,谷歌大脑团队就成立了第一个TPU中心,为 Google Translation,Photos 和 Gmail等产品提供支持。 为了使所有数据科学家和开发人员能够访问此技术,不久之后就发布了易于使用,可扩展且功能强大的基于云的TPU,以便在 Google Cloud 上运行 TensorFlow 模型。

TPU 由多个计算核心(Tensor Core)组成,其中包括标量,矢量和矩阵单元(MXU)。TPU(张量处理单元)与CPU(中央处理单元)和GPU(图形处理单元)最重要的区别是:TPU的硬件专为线性代数而设计,线性代数是深度学习的基石。在过去几年中,Google TPU 已经发布了 v1,v2,v3, v2 Pod, v3 Pod, Edge 等多个版本:

版本图片性能内存
TPU (v1, 2015)../../_images/tpu-v1.png92 TeraFLOPS8 GB HBM
Cloud TPU (v2, 2017)../../_images/tpu-v2.jpg180 TeraFLOPS64 GB HBM
Cloud TPU (v3, 2018)../../_images/tpu-v3.png420 TeraFLOPS128 GB HBM
Cloud TPU Pod (v2, 2017)../../_images/tpu-v2-pod.png11,500 TeraFLOPS4,096 GB HBM
Cloud TPU Pod (v3, 2018)../../_images/tpu-v3-pod.jpg100,000+ TeraFLOPS32,768 GB HBM
Edge TPU (Coral, 2019)../../_images/tpu-edge-coral-usb.png4 TeraFLOPS
  • 注:
  1. Tera: 万亿,10的12次方1. Peta: 千万亿,10的15次方1. FLOPS:每秒浮点数计算次数(FLoating-point Operations Per Second)1. OPS: 每秒位整数计算次数(Integer Operations Per Second)

基于 Google Cloud,TPU 可以方便的进行建立和使用。同时,Google 也推出了专门为边缘计算环境而部署的 Edge TPU。Edge TPU 尺寸小,功耗低,性能高,可以在边缘计算环境中广泛部署高质量的AI。其作为 Cloud TPU 的补充,可以大大促进AI的解决方案在IoT环境中的部署。

为什么使用 TPU

通过使用 Cloud TPU ,我们可以大大提升 TensorFlow 进行机器学习训练和预测的性能,并能够灵活的帮助研究人员,开发人员和企业 TensorFlow 计算群集。

TPU Pod

根据 Google 提供的数据显示,在 Google Cloud TPU Pod 上可以仅用 8 分钟就能够完成ResNet-50 模型的训练。

ResNet-50
TPUTPU Pod
训练速度(每秒图像数)4000+200,000+
最终精度93%93%
训练时长7h 47m8m 45s

Source: Google

TPU 性能

根据研究显示,TPU 比现代 GPU 和 CPU 快 15 到 30 倍。同时,TPU 还实现了比传统芯片更好的能耗效率,算力能耗比值提高了30倍至80倍。

每个周期的操作次数
CPU10
GPU10,000
TPU100,000

Source: An in-depth look at Google’s first Tensor Processing Unit (TPU)