谷歌在它的I/O开发者大会它设计并实现了自己的机器学习芯片。在他的主题,谷歌首席执行官桑达尔·皮查伊介绍了他所谓的张量处理单元(tpu),称该公司在其AlphaGo机器中使用了这些单元击败围棋冠军李世石.
Pichai说:“tpu的每瓦性能比商用fpga和gpu高一个数量级。”虽然他没有给出太多细节,谷歌杰出的硬件工程师Norm Jouppi在一篇文章中解释道博客(在一个新窗口中打开)TPU是一个定制ASIC(应用专用集成电路)。换句话说,它是一种专门设计来运行机器学习的芯片TensorFlow,谷歌的机器学习框架。
在帖子中,Jouppi说它对降低的计算精度“更宽容”,这意味着每次操作需要更少的晶体管。这允许谷歌每秒获得更多的操作,让用户更快地获得结果。他说,一个带有TPU的板可以插入数据中心机架的硬盘驱动器插槽中,并展示了一个装满TPU的服务器机架的图像,他说,该公司的AlphaGo机器使用了TPU。
此外,Jouppi表示,tpu已经在谷歌上开发了一些应用程序,包括用于提高搜索结果相关性的RankBrain,以及用于提高地图和导航的准确性和质量的Street View。
在一个新闻发布会上(在一个新窗口中打开),谷歌的技术基础设施副总裁Urs Hölzle证实,TPU运行使用8位整数数学,而不是更高精度的浮点数学,大多数现代cpu和gpu的设计。大多数机器学习算法可以很好地处理较低分辨率的数据,这意味着芯片可以在给定区域处理更多的操作,并有效处理更复杂的模型。这并不是什么新想法,英伟达Drive PX 2模块,今年早些时候在消费电子展上宣布的在32位浮点精度下,它能够进行8万亿次浮点运算,但深度学习“teraops”(该公司对8位整数数学的术语)达到24次。
尽管Hölzle拒绝透露细节,报告(在一个新窗口中打开)说他确认谷歌今天同时使用tpu和gpu。他表示,这种情况还将持续一段时间,但也暗示谷歌认为gpu过于通用,更倾向于一种更适合机器学习的芯片。他说,该公司稍后将发布一份描述该芯片优点的论文,但明确表示,这些设计只用于内部使用,不出售给其他公司。他描述的另一个应用是使用这些芯片处理Android手机语音识别引擎背后的部分计算。
谷歌选择使用ASIC是一个有趣的赌注。近年来,机器学习领域最大的进步——推动深度神经网络发展的技术——是采用了图形处理器,特别是英伟达的特斯拉生产线来训练这些模型。最近,英特尔收购阿尔特拉该公司是fpga(现场可编程门阵列)的领先制造商,介于两者之间;它们不像gpu那样通用,也不像谷歌的芯片那样专门为TensorFlow设计,但可以被编程来执行各种任务。微软一直在用Altera fpga进行深度学习的实验。IBM正在开发TrueNorth Neurosynaptic芯片(在一个新窗口中打开)专门为神经网络设计的,最近才开始用于各种各样的应用.Cadence (Tensilica)、飞思卡尔(Freescale)和Synopsys正在推动他们的dsp(数字信号处理器)运行这些模型;Mobileye和NXP最近宣布了专门为ADAS和自动驾驶汽车设计的芯片;包括Movidius和Nervana在内的几家较小的公司已经宣布了专门为人工智能设计芯片的计划。
现在要知道从长远来看哪种方法是最好的还为时过早,但拥有一些截然不同的选择意味着我们可能会在未来几年看到一些有趣的竞争。