关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

TPU将成深度学习的未来?(一)

2020.10.12

在Google I/O 2016的主题演讲进入尾声时,谷歌的CEO皮采提到了一项他们这段时间在AI和机器学习上取得的成果,一款叫做Tensor Processing Unit(张量处理单元)的处理器,简称TPU。在这个月看来,第一代的TPU处理器已经过时。

在昨天凌晨举行的谷歌I/O 2017大会上,谷歌除了宣传了安卓8.0之外,更为重要的是着重谈到了人工智能,于是第二代TPU也就应运而生。TPU是谷歌自主研发的一种转为AI运算服务的高性能处理器,其第一代产品已经在AlphaGo这样的人工智能当中使用,主攻运算性能。

第二代TPU相比较于初代主要是加深了人工智能在学习和推理方面的能力,至于性能的话,全新的谷歌TPU可以达到180 TFLOPs的浮点性能,和传统的GPU相比提升15倍,更是CPU浮点性能的30倍。

另外谷歌还推出了一款叫做TPU pod的运算阵列,最多可以包含64颗二代TPU,也就是说浮点性能可以达到惊人的11.5 PFLOPS。

从名字上我们可以看出,TPU的灵感来源于Google开源深度学习框架Tensor Flow,所以目前TPU还是只在Google内部使用的一种芯片。

TPU 诞生

2011年,Google 意识到他们遇到了问题。他们开始认真考虑使用深度学习网络了,这些网络运算需求高,令他们的计算资源变得紧张。Google 做了一笔计算,如果每位用户每天使用3分钟他们提供的基于深度学习语音识别模型的语音搜索服务,他们就必须把现有的数据中心扩大两倍。他们需要更强大、更高效的处理芯片。

他们需要什么样的芯片呢?中央处理器(CPU)能够非常高效地处理各种计算任务。但 CPU 的局限是一次只能处理相对来说很少量的任务。另一方面,图像处理单元(GPU)在执行单个任务时效率较低,而且所能处理的任务范围更小。不过,GPU 的强大之处在于它们能够同时执行许多任务。例如,如果你需要乘3个浮点数,CPU 会强过 GPU;但如果你需要做100万次3个浮点数的乘法,那么 GPU 会碾压 CPU。

GPU 是理想的深度学习芯片,因为复杂的深度学习网络需要同时进行数百万次计算。Google 使用 Nvidia GPU,但这还不够,他们想要更快的速度。他们需要更高效的芯片。单个 GPU 耗能不会很大,但是如果 Google 的数百万台服务器日夜不停地运行,那么耗能会变成一个严重问题。

谷歌决定自己造更高效的芯片。

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

智能芯片市场格局一变再变 TPU将成深度学习的未来?

第一代TPU内部架构

该图显示了TPU上的内部结构,除了外挂的DDR3内存,左侧是主机界面。指令从主机发送到队列中(没有循环)。这些激活控制逻辑可以根据指令多次运行相同的指令。

TPU并非一款复杂的硬件,它看起来像是雷达应用的信号处理引擎,而不是标准的X86衍生架构。Jouppi说,尽管它有众多的矩阵乘法单元,但是它GPU更精于浮点单元的协处理。另外,需要注意的是,TPU没有任何存储的程序,它可以直接从主机发送指令。

TPU上的DRAM作为一个单元并行运行,因为需要获取更多的权重以馈送到矩阵乘法单元(算下来,吞吐量达到了64,000)。Jouppi并没有提到是他们是如何缩放(systolic)数据流的,但他表示,使用主机软件加速器都将成为瓶颈。

智能芯片市场格局一变再变 TPU将成深度学习的未来?

256×256阵列缩放数据流引擎,经过矩阵乘法积累后实现非线性输出

从第二张图片可以看出,TPU有两个内存单元,以及一个用于模型中参数的外部DDR3 DRAM。参数进来后,可从顶部加载到矩阵乘法单元中。同时,可以从左边加载激活(或从“神经元”输出)。那些以收缩的方式进入矩阵单元以产生矩阵乘法,它可以在每个周期中进行64,000次累加。

毋庸置疑,谷歌可能使用了一些新的技巧和技术来加快TPU的性能和效率。例如,使用高带宽内存或混合3D内存。然而,谷歌的问题在于保持分布式硬件的一致性。


推荐
热点排行
一周推荐
关闭