本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

时间:2017-05-14 06:39来源:118图库 作者:118KJ 点击:
谷歌云 Kaz Sato, Staff Developer Advocate 谷歌大脑软件工程师Cliff Young, Software Engineer 谷歌大脑杰出工程师David Patterson 搜索、街景、照片、翻译,这些Google提供的服务,都使用了Google的TPU(张

  谷歌云 Kaz Sato, Staff Developer Advocate

  谷歌大脑软件工程师Cliff Young, Software Engineer

  谷歌大脑杰出工程师David Patterson

  搜索、街景、照片、翻译,这些Google提供的服务,都使用了Google的TPU(张量处理器)来加速背后的神经网络计算。

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

  在PCB板上的Google首款TPU和部署了TPU的数据中心

  去年Google推出TPU并在近期对这一芯片的性能和架构进行了详细的研究。简单的结论是:TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。

  这意味着,直播,Google的服务既可以大规模运行于最先进的神经网络,而且可以把成本控制在可接受的程度上。以下的内容,将深入解读Google TPU中的技术,并且讨论如何实现更为出色的性能。

  通往TPU之路

  早在2006年,Google就在考虑为神经网络构建一个专用集成电路(ASIC)。2013年这个需求变得更加紧迫,当时Google意识到快速增长的计算需求,可能意味着数据中心的数量需要翻番才能满足。

  通常而言,ASIC的开发需要耗时数年。但具体到TPU而言,从设计到验证、构建和部署到数据中心里,只需要15个月。

  TPU ASIC采用了28nm工艺制造,主频700MHz,功耗40W。为了尽快把TPU部署到现有的服务器中,Google选择把这个芯片打包成外部扩展加速器,然后插到SATA硬盘插槽里使用。所以TPU通过PCIe Gen3 x16总线与主机相连,也就是说12.5GB/s的有效带宽。

  用神经网络预测

  要说明TPU的设计思路,需要先来简介一下神经网络的计算。

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

  这是一个TensorFlow Playground的例子。用以训练一个神经网络,以标签对数据进行分类,或者对缺失数据进行估计,或者推断未来的数据。对于推断来说,神经网络中的每个神经元都进行如下计算:

输入数据(x)乘以权重(w)以表示信号强度

乘积加总,成为代表神经元状态的唯一值

应用激活函数(f),例如ReLU、Sigmoid等调节神经元

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

  神经网络把输入数据与权重矩阵相乘,并输入激活函数

  例如,对于有三个输入数据和两个全连接神经元的单层神经网络而言,需要把输入和权重进行六次相乘,并得出两组乘积之和。这个乘法和加法序列,可以写成一个矩阵乘法,然后通过激活函数进一步处理矩阵的输出。

  在更复杂的神经网络架构中,乘法矩阵通常也是计算量最大的部分。

  实际业务中需要多少次乘法运算?2016年7月,Google团队调查了实际业务中,六个有代表性的神经网络应用,结果如下表所示:

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

  如上表所示,每个神经网络中的权重数量从500万到1亿不等。每一个预测,都需要许多步的输入数据和权重矩阵相乘,并输入到激活函数中。

  总而言之,计算量超大。作为优化的第一步,Google应用了一种称为量化的技术进行整数运算,而不是在CPU或者GPU上对所有数学工作进行32位或者16位浮点运算。这能减少所需的内存容量和计算资源。

  神经网络中的量化

  通常而言,神经网络的预测不需要32位或16浮点计算精度,通过一些方法,可以用8位整数对神经网络进行预测,并保持适当的准确度。

所谓量化,就是一种使用8位整数来近似预设的最小值和最大值之间任意数值的优化技术。

  

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

  TensorFlow中的量化

  量化是降低神经网络预测成本的利器,同时带来的内存减少也很重要,特别是对于移动和嵌入式部署。举个例子,在Inception中应用量化之后,这个图像识别模型能从91MB压缩到23MB,成功瘦身四分之三。

  使用整数而不是浮点计算,大大减小了TPU的硬件尺寸和功耗。一个TPU钟包含65,536个8位整数乘法器。云环境中使用的主流GPU,通常包含数千个32位浮点乘法器。只要能用8位满足精度需求,就能带来25倍以上的性能提升。

  RISC,CISC和TPU指令集

  可编程性是TPU的另一个重要设计目标。TPU不是设计用来运行某一种神经网络,而是要能加速许多不同类型的模型。

  大多数当代CPU都采用了精简指令集(RISC)。但Google选择复杂指令集(CISC)作为TPU指令集的基础,这一指令集侧重于运行更复杂的任务。

  我们来看看TPU的结构图。

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

  TPU包括以下计算资源:

矩阵乘法单元(MUX):65,536个8位乘法和加法单元,运行矩阵计算

统一缓冲(UB):作为寄存器工作的24MB容量SRAM

激活单元(AU):硬件连接的激活函数

  为了控制MUX、UB和AU进行计算,Google定义了十几个专门为神经网络推理而设计的高级指令。以下是五个例子。

【j2开奖】Google深度揭秘TPU:一文看懂内部原理,以及为何碾压GPU

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容