TPU张量处理器

2017年4月,谷歌公布了张量处理器(TPU)的论文——TPU 已经在谷歌数据中心内部使用大约四年,而且TPU 在推理方面的性能要远超过 GPU(“尽管在一些应用上利用率很低,但 TPU 平均比当前的 GPU 或 CPU 快15-30倍,性能功耗比高出约 30~80 倍”)

CPU GPU TPU的工作原理

  • CPU 如何运行
    CPU 最大的优势是灵活性。通过冯诺依曼架构,我们可以为数百万的不同应用加载任何软件。我们可以使用 CPU 处理文字、控制火箭引擎、执行银行交易或者使用神经网络分类图像。
    但是,由于 CPU 非常灵活,硬件无法一直了解下一个计算是什么,直到它读取了软件的下一个指令。CPU 必须在内部将每次计算的结果保存到内存中(也被称为寄存器或 L1 缓存)。内存访问成为 CPU 架构的不足,被称为冯诺依曼瓶颈。
    虽然神经网络的大规模运算中的每一步都是完全可预测的,每一个 CPU 的算术逻辑单元(ALU,控制乘法器和加法器的组件)都只能一个接一个地执行它们,每一次都需要访问内存,限制了总体吞吐量,并需要大量的能耗
  • GPU 如何工作
    这种 GPU 架构在有大量并行化的应用中工作得很好,例如在神经网络中的矩阵乘法。实际上,相比 CPU,GPU 在深度学习的典型训练工作负载中能实现高几个数量级的吞吐量。这正是为什么 GPU 是深度学习中最受欢迎的处理器架构。
    但是,GPU 仍然是一种通用的处理器,必须支持几百万种不同的应用和软件。这又把我们带回到了基础的问题,冯诺依曼瓶颈。在每次几千个 ALU 的计算中,GPU 都需要访问寄存器或共享内存来读取和保存中间计算结果
    因为 GPU 在其 ALU 上执行更多的并行计算,它也会成比例地耗费更多的能量来访问内存,同时也因为复杂的线路而增加 GPU 的物理空间占用
  • TPU 如何工作
    当谷歌设计 TPU 的时候,我们构建了一种领域特定的架构。这意味着,我们没有设计一种通用的处理器,而是专用于神经网络工作负载的矩阵处理器。
    TPU 不能运行文本处理软件、控制火箭引擎或执行银行业务,但它们可以为神经网络处理大量的乘法和加法运算,同时 TPU 的速度非常快、能耗非常小且物理空间占用也更小。
    其主要助因是对冯诺依曼瓶颈的大幅度简化。因为该处理器的主要任务是矩阵处理,TPU 的硬件设计者知道该运算过程的每个步骤。因此他们放置了成千上万的乘法器和加法器并将它们直接连接起来,以构建那些运算符的物理矩阵
    这被称作脉动阵列(Systolic Array)架构。在 Cloud TPU v2 的例子中,有两个 128X128 的脉动阵列,在单个处理器中集成了 32768 个 ALU 的 16 位浮点值。
    然后,TPU 从内存加载数据。当每个乘法被执行后,其结果将被传递到下一个乘法器,同时执行加法。因此结果将是所有数据和参数乘积的和。在大量计算和数据传递的整个过程中,不需要执行任何的内存访问。
    这就是为什么 TPU 可以在神经网络运算上达到高计算吞吐量,同时能耗和物理空间都很小。
    因此使用 TPU 架构的好处就是:成本降低至 1/5。
  • 总结比较
    中央处理器(CPU)能够非常高效地处理各种计算任务。但 CPU 的局限是一次只能处理相对来说很少量的任务。另一方面,图像处理单元(GPU) 在执行单个任务时效率较低,而且所能处理的任务范围更小。不过,GPU 的强大之处在于它们能够同时执行许多任务。例如,如果你需要乘3个浮点数,CPU 会强过 GPU;但如果你需要做100万次3个浮点数的乘法,那么 GPU 会碾压 CPU。

2016年5月,谷歌在I/O大会上首次公布了TPU(张量处理单元),并且称这款芯片已经在谷歌数据中心使用了一年之久,李世石大战 AlphaGo 时,TPU 也在应用之中,并且谷歌将 TPU 称之为 AlphaGo 击败李世石的“秘密武器”。

许多架构师认为,现在只有领域定制硬件(domain-specific hardware)能带来成本、能耗、性能上的重大改进。本研究评估了自2015年以来部署在各数据中心,用于加速神经网络(NN)的推理过程的一种定制 ASIC 芯片——张量处理器(TPU)。TPU 的核心是一个65,536的8位矩阵乘单元阵列(matrix multiply unit)和片上28MB的软件管理存储器,峰值计算能力为92 TeraOp/s(TOPS)。与CPU和GPU由于引入了Cache、乱序执行、多线程和预取等造成的执行时间不确定相比,TPU 的确定性执行模块能够满足 Google 神经网络应用上 99% 相应时间需求。CPU/GPU的结构特性对平均吞吐率更有效,而TPU针对响应延迟设计。正是由于缺乏主流的CPU/GPU硬件特性,尽管拥有数量巨大的矩阵乘单元 MAC 和极大的偏上存储,TPU 的芯片相对面积更小,耗能更低。

我们将 TPU 与服务器级的 Intel Haswell CPU 和 Nvidia K80 GPU 进行比较,这些硬件都在同一时期部署在同个数据中心。测试负载为基于 TensorFlow 框架的高级描述,应用于实际产品的 NN 应用程序(MLP,CNN 和 LSTM),这些应用代表了我们数据中心承载的95%的 NN 推理需求。尽管在一些应用上利用率很低,但 TPU 平均比当前的 GPU 或 CPU 快15-30倍,性能功耗比(TOPS/Watt)高出约 30-80 倍此外,在 TPU 中采用 GPU 常用的 GDDR5 存储器能使性能TPOS指标再高 3 倍,并将能效比指标 TOPS/Watt 提高到 GPU 的 70 倍,CPU 的 200 倍。

TPUv2

谷歌称 TPU 为张量处理单元,专为 TensorFlow 定制设计。**第一代TPU面向推理(第一代 TPU 是专为推理投产一个定制的ASIC芯片,并购买市售的GPU用于训练,因此论文中的性能比较也仅限于推理操作。),而第二代的重点是加速训练。**在TPUv2的核心里,一个脉动阵列(Systolic array)负责执行矩阵乘法,这在深度学习中被大量使用。
目前,谷歌的Cloud TPU正式发布。谷歌TPU终于面向大众开放。只需要每小时6.5美元,你也有可能用上谷歌TPU。**Cloud TPU仅支持TensorFlow 1.6版本。**除此之外,你的VM实例上不需要任何驱动程序,因为与TPU进行通信所需的所有代码都由TensorFlow本身提供。在TPU上执行的代码经过优化,并由XLA进行实时编译,XLA也是TensorFlow的一部分。

TensorFlow在GitHub上提供了一个针对TPU的模型仓库,可供评测。地址:https://github.com/tensorflow/tpu。

Edge TPU

Edge TPU可以说是一款针对边缘设备(手机或树莓派)计算的ASIC芯片它自己的专用ASIC芯片设计用于在边缘运行TensorFlowLiteML模型,以及相应的AIY EdgeTPU开发板,以及AIY EdgeTPU加速器USB,可添加到任何USB兼容硬件。笔者第一次听说是在2018年初,项目代号为“达尔文”。目前来看,Edge TPU的尺寸约为1美分硬币的1/8大小,它可以在较小的物理尺寸以及功耗范围内提供不错的性能(目前具体性能指标不清楚,官方称可以在高清分辨率的视频上以每秒30帧的速度,在每帧上同时执行多个最先进的AI模型),支持PCIe以及USB接口。
Edge TPU优势在于可以加速设备上的机器学习推理,或者也可以与Google Cloud配对以创建完整的云端到边缘机器学习堆栈。在任一配置中,Edge TPU通过直接在设备本地处理数据,这样不仅保护隐私,而且消除对持久网络连接的需要,减少延迟,允许使用更少的功率和性能。
Google通过AIY项目套件向成千上万的人们介绍了人工智能和机器学习概念,例如带语音识别的AIYVoiceKit和用于计算机视觉应用的AIYVisionKit。而谷歌发布Edge TPU正是为了AIY项目。AIY Edge TPU开发板是一款搭载了Edge TPU的单板计算机,功能非常丰富。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值