专栏名称: 量子位
վ'ᴗ' ի 追踪AI行业和技术动态,这里更快一步!关注我们,回复“今天”,更多大新闻等你来发现
目录
相关文章推荐
新机器视觉  ·  为什么图像处理如此困难 ·  8 小时前  
爱可可-爱生活  ·  【[2.4k星]Forge:AI增强型终端开 ... ·  10 小时前  
量子位  ·  训练MoE足足提速70%!华为只用了3招 ·  昨天  
爱可可-爱生活  ·  【Anthropic 宣布了 Claude ... ·  昨天  
51好读  ›  专栏  ›  量子位

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

量子位  · 公众号  · AI  · 2017-05-13 13:18

正文

请到「今天看啥」查看全文


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

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

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

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

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

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

神经网络中的量化

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

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

TensorFlow中的量化

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

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

RISC,CISC和TPU指令集

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

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

我们来看看TPU的结构图。







请到「今天看啥」查看全文