文章|海中天周四有媒体询问谷歌定制AI芯片TPU(张量处理单元)的事宜。
谷歌拒绝发表评论,仅表示将很快公布更多信息。
一天后,谷歌改变了态度,回应了一些问题,发言人通过电子邮件进行了回复。
我们来看看谷歌是如何解释TPU的: 1. TPU是预训练的吗?这是一个谷歌无法回答的大问题。
它可能是预先训练过的,但我们不确定。
TPU是否经过训练取决于其执行的AI算法是否经过独立系统的训练。
为了训练人工智能系统识别图片,你必须向它展示数百万张图片,它会通过反复试验来学习。
学习完成后,您只需让算法在芯片上运行即可。
例如,IBM 的 TrueNorth 和 Fathom 芯片(来自初创公司 Movidius)都经过训练。
TPU很有可能已经被训练过,但谷歌不会这么说。
2、如果AI算法改变,TPU可以重新编程吗?这个问题包括两个子问题,需要解释一下。
根据芯片的分类,TPU可以认为是ASIC(专用集成电路)。
简单来说,设计芯片时,只考虑在一件事上有极高的效率。
我们设想的问题是这样的:如果AI算法发生变化(逻辑上应该随着时间的推移而变化),你想要一个可以重新编程以适应这些变化的芯片吗?如果是这种情况并且另一种芯片合适,那么它就是 FPGA(现场可编程门阵列)。
与 ASIC 不同,FPGA 可以编程。
微软使用一些FPGA芯片来增强其Bing搜索引擎的AI能力。
我们自然会问:为什么不使用FPGA? Google 的回答:FPGA 的计算效率比 ASIC 低得多,因为它可以编程。
TPU有指令集,当TensorFlow程序发生变化,或者新算法出现时,它们可以在TPU上运行。
现在问题的答案开始浮出水面。
从谷歌的角度来看,能源消耗是一个重要的考虑因素。
数据中心规模相当庞大,遍布世界各地,包括芬兰和台湾。
能源消耗越高,运营成本就越高,实际消耗的金钱会随着时间的推移呈指数级增长。
Google工程师比较了FPGA和ASIC的效率,最终决定选择ASIC。
问题的第二部分与 TPU 的指令集有关。
这是一组基本命令,以硬编码的形式存在于芯片中,可以被识别和执行;在芯片世界中,指令集是计算机运行的基础。
TPU指令集开发时专门用于运行TensorFlow,这是一个旨在开发AI应用程序的开源软件库。
谷歌认为,如果AI需要在底层进行改变,那么很可能会发生在软件中,而芯片应该能够灵活地适应这种变化。
TPU架构的技术细节令许多了解该芯片的人感到惊讶。
Anandtech 的 Joshua Ho 有一个有趣的理论:TPU 更类似于第三种类型的芯片,即所谓的数字信号处理器。
3. TPU只能运行TensorFlow吗? AI应用的软件语言大约有5种。
TPU 可以支持这些语言吗?谷歌的答案是:其他代码可以在TPU上运行,但TPU已经针对TensorFlow进行了优化。
4. 多个TPU可以相互连接组成一个系统一起运行吗?谷歌的答案是:AlphaGo Go AI已经安装了多个TPU,它们可以作为一个庞大系统的一部分运行。
这是一个超级有趣的答案,我们的脑海中不禁浮现出“天网”式的愿景:数十个人工智能芯片能够在所有事情上完全超越人类思维。
5. 在服务器机架中,为什么需要将TPU插入硬盘托架中?谷歌曾表示,TPU将插在服务器机架上,靠近硬盘,看起来有点奇怪。
为什么 TPU 不靠近服务器 CPU 放置,以便所有计算都可以在一个地方完成?谷歌的答案是这样的:TPU有一个PCIe连接器。
PCIe 连接到主板 PCIe 插槽还是短电缆都没有区别。
Google服务器的硬盘架上有空间,安装在那里比较方便。
6.内存在哪里?谷歌的答案是:在散热器下。
就像我们想的那样。
如果你回头看第一个问题,也就是芯片预训练的问题,你就会知道训练芯片需要大量的内存。
谷歌想要用海量图像来训练AI,而散热器下方似乎没有足够的空间来安装大量内存。
芯片上似乎也没有太多内存,因此 TPU 实际上已被训练的可能性进一步提高。