谷歌I/O大会上说的那个超级AI芯片TPU 到底是个什么鬼?

智东西(公众号:zhidxcom)
文 | 海中天

周四时,媒体曾经向谷歌咨询定制AI芯片TPU(Tensor Processing Unit)的事,谷歌拒绝置评,只是说马上就会有更多的消息公布。一天之后,谷歌改变了态度,对一些问题给予了回复,问题是新闻发言人通过邮件形式回应的。

下面我们就来看看谷歌是如何解释TPU的:

1、TPU预先训练过吗?

这是一个大问题,谷歌无法回答。它可能是预先训练过的,但是我们并不能确切地知道。TPU是否经过训练,要看它执行的AI算法是否在独立系统中训练过。要训练AI系统识别一张图片,你必须向它展示几百万张图片,经过反复尝试才能学会。一旦学习完成,你只需要让算法在芯片上运行就可以了。例如,IBM的TrueNorth和Fathom芯片(来自创业公司Movidius)就是经过训练的。TPU有很大的可能训练过,但是谷歌不会这样说。

谷歌I/O大会上说的那个超级AI芯片TPU 到底是个什么鬼?

2、如果AI算法改变,TPU可以重新编程吗?

这个问题包括两个子问题,有必要解释一下。按照芯片的分类,TPU可以被认为是ASIC(特殊应用集成电路),简单来讲就是在设计芯片时只考虑在一件事情上拥有极高的效率。

在预想中我们的问题应该是这样的:如果AI算法改变了(从逻辑上讲随着时间的推移算法应该会改变),你是不是想要一款可以重新编程的芯片,以适应这些改变?如果情况是这样的,另一种芯片适合,它就是FPGA(现场可编程门阵列)。FPGA可以编程,和ASIC不同。微软用一些FPGA芯片来增强必应搜索引擎的AI功能。我们很自然会问:为什么不使用FPGA呢?

谷歌的回答是:FPGA的计算效率比ASIC低得多,因为它可以编程。TPU拥有一个指令集,当TensorFlow程序改变时,或者新的算法出现时,它们可以在TPU上运行。

现在问题的答案开始浮现。在谷歌看来,能耗是一个重要的考量标准,数据中心相当巨大,建设在世界各地,包括芬兰和台湾。能耗越高,运营的成本就越高,随着时间的推移实际消耗的金钱会成倍增长。谷歌工程师对比了FPGA和ASIC的效率,最终决定选择ASIC。

问题的第二部分与TPU的指令集有关。这是一套基本的命令,它以硬编码形式存在于芯片中,能够识别、执行;在芯片世界,指令集是计算机运行的基础。

在开发TPU指令集时,它是专门用来运行TensorFlow的,TensorFlow是一个开源软件库,针对的是AI应用的开发。谷歌认为,如果AI有必要在底层进行改变,极可能发生在软件上,芯片应该具备弹性,以适应这种改变。

TPU架构的技术细节让许多了解芯片的人惊奇。Anandtech的Joshua Ho有一个有趣的理论:TPU更加类似于第三类芯片,也就是所谓的数字信号处理器(Digital Signal Processor)。

谷歌I/O大会上说的那个超级AI芯片TPU 到底是个什么鬼?

3、TPU是不是只能运行TensorFlow?

AI应用的软件语言大约有5种,TPU能否支持这些语言?谷歌的回答是:其它代码可以在TPU上运行,但是TPU已经针对TensorFlow做过优化。

4、几块TPU能不能彼此连接,组成一个系统协同运行?

谷歌的回答是:AlphaGo围棋AI已经安装了多个TPU,它们完全可以以庞大系统的组成部分来运行。

这是一个超级有趣的答案,我们的脑海情不自禁浮现出“SkyNet”式的远景:许多的AI芯片在所有事情上拥有完全超越人类的思维。

5、在服务器机架中,为什么TPU要插入到硬盘仓位中?

谷歌曾经说过,TPU会插入到服务器机架上,机架靠近硬盘,看起来有点奇怪。为什么没有将TPU放在靠近服务器CPU的地方,这样所有计算就可以在一个地方进行?

谷歌的回答是这样的:TPU拥有一个PCIe连接器。PCIe到底是连接在主板PCIe插槽中,还是连接到短的线缆中,根本没有区别。谷歌服务器的硬盘架上有空间,安装在那里比较方便。

6、内存在哪里?

谷歌的回答是:在散热器下面。

和我们想的一样。如果你回看第一个问题——也就是芯片预训练的问题,就会知道训练芯片需要大量的内存。谷歌要用海量的图片来训练AI,看起来散热器下面没有足够的空间安装大量内存。芯片上的内存看起来也不多,因此,TPU实际已经训练过的可能性进一步提高。

7、芯片在哪里制造的?

谷歌没有回答这个问题。除非谷歌在某处建有秘密工厂,否则只有请别人来生产TPU。世界上有两家最大的芯片制造商技术最先进:台积电,GlobalFoundries。让我们继续猜测吧。
谷歌I/O大会上说的那个超级AI芯片TPU 到底是个什么鬼?