返回 登录
0

《连线》揭秘:可再编程芯片是微软对未来的赌注

可编程的芯片将主导未来的互联网世界,几大科技巨头都认识到这一点。微软也不例外,这家做了四十年软件的公司,也在向硬件进军,而FPGA成为了微软未来竞争的押注。

那是2012年12月的某一天,Doug Burger站在Steve Ballmer面前,尝试着向Ballmer阐述自己所预测到的未来。

Ballmer,就是微软的那个块头很大、秃顶、说起话来很大声的CEO,坐在微软位于西雅图郊外的蓝天研发实验室所在地的99号楼一层的演讲室。演讲室里的桌子呈U型排列,Ballmer被自己的几位高级助手们团团围住,桌上的笔记本电脑打开着。Burger是一位在四年前加入微软的计算机芯片研究专家,他正在向在场的微软高管们阐述一个全新的项目想法,Burger将其称为Project Catapult。

图片描述

(图中人物为Doug Burger)

Burger向大家解释道,技术世界正在进入一个全新的轨道。未来,少数几家互联网巨头公司将运行几个巨型互联网服务,这些服务和之前的服务相比差别很大而且尤其复杂,因此这几家巨头公司必须打造一套全新的架构来运行这些服务。这些公司不仅要开发驱动这些服务的软件,同时还要打造出包括服务器和网络设备在内的硬件设备。Project Catapult将会为微软数百万台服务器提供专用芯片,这些芯片可以用来为特定任务进行重新编程。

然而还没等到Burger介绍到芯片部分,Ballmer突然抬起头表示,他来这里是想了解产品研发方面的最新进展,而不是听这个战略简报。Burger说:“他开始拷问我。” 微软花了40年打造像Windows、Word和Excel这样的PC软件,它发现自己才刚刚迈进互联网的大门。微软现在还没有编程计算机芯片所需要的工具和工程师,这是一项困难的、耗时的、昂贵的且有些古怪的任务。微软要打造可编程计算机芯片听起来就好比是可口可乐要做鱼翅汤。

图片描述

(Project Catapult现在的样子)

Burger着装整齐,有一点谢顶,善于冷静分析问题,就像很多优秀的工程师一样。他对Ballmer说,谷歌和亚马逊这样的公司已经在朝这个方向发展了。他表示,目前世界上的硬件制造商不会提供微软用以运行线上服务所需要的硬件。他说,如果微软不打造自己的硬件,那么就会落后。Ballmer听完后并不认同这个观点。不过过了一会儿,另一个人参与到这个讨论中来了。这个人就是陆奇,他负责运营微软的搜索引擎业务Bing。过去两年时间里,陆奇的团队一直在和Burger讨论可再编程芯片的事情。陆奇表示,Project Catapult不仅仅是一种可能,他的团队已经开始做这方面工作了。

今天,Burger和Burger所坚信的能够改变世界的可编程芯片有了自己的名字:现场可编程门阵列(field programmable gate arrays,FPGA),这个产品已经出来了。FPGA目前已经开始为Bing提供服务,在未来几周内,它们将会驱动基于深度神经网络(基于人类大脑结构建模的人工智能)的新搜索算法,在执行这个人工智能时要比普遍芯片快好几个数量级。有了FPGA,你的电脑屏幕只会空屏23毫秒,而不是原来的4秒。此外,GPGA还在驱动微软的云计算服务Azure。在未来几年里,每一台微软的新服务器里都会包含一个FPGA。

图片描述

(Catapult团队成员Adrian Caulfield、Eric Chung、Doug Burger和Andrew Putnam)

微软这么做并不单单是为了让Bing追赶Google。Project Catapult预示着未来全球系统运作方式的一种变化。从美国的亚马逊到中国的百度,所有互联网巨头都在用硅替代他们的标准服务器芯片(中央处理单元,也叫CPU),这些硅制成的芯片能够让它们跟上人工智能的快速变化。为了运行线上的业务帝国,微软现在每年在硬件上花费50亿到60亿美元。Satya Nadella于2014年开始担任微软CEO一职。Satya Nadella说道:“现在这样的工作再也不仅仅是研究了,它有着极为重要的优先级。”这正是Burger当年在99号大楼里试图向Ballmer所阐述的那样。基于对可编程芯片的坚信,他和他的团队在过去多年时间里克服了种种挫折、不断重新设计,最终推出了一种新的全球超级计算机。

一种全新但又非常古老的计算机芯片

2010年12月,当时微软的研究员Andrew Putnam已经离开西雅图回到位于Colorado Springs的家中度假去了。当时距离圣诞节还有两天时间,他还没有为圣诞采购货物。在他驱车前往商场进行圣诞购物的路上,电话突然响了,给他打电话的是他的老板Burger。Burger打算圣诞节后立刻与Bing高管会面,不过他需要一份能在FPGA上运行Bing的机器学习算法的硬件设计。Putnam随后立刻开车前往最近的星巴克开始设计,这花了他5个小时,他仍有时间去购物。

Burger当时45岁,Putnam41岁,他俩过去都是专业学者。Burger之前曾在德克萨斯大学做了9年的计算机科学教授,主要研究方向是微处理器,他曾设计了一款名为EDGE的新型芯片。Putnam曾在华盛顿大学做了5年的科研人员,主要从事FPGA的实验研究。当时可编程芯片已经出现几十年了,主要被用于为其它处理器制作原型的方式。2009年,Burger将Putnam挖来了微软,他们两人便开始一起探索用可编程芯片提高线上服务速度的方法。

图片描述

(Project Catapult的第一个版本,也就是Doug Burger和他的团队在微软西雅图数据中心测试过的版本)

微软的搜索引擎是一个依靠数千台机器运行的单个在线服务。每台机器都由一个CPU驱动,尽管英特尔这些公司正在持续对这些CPU进行改进,但是这些芯片依然跟不上软件更新的步伐,这在很大程度上是因为这股新人工智能浪潮的来临。像Bing这样的服务已经超越了摩尔定律能预测的范畴,即每18个月处理器上晶体管的数量翻一倍。事实证明,单纯增加CPU并不能解决问题。

但另一方面,如果为每一个新出现的问题需求都专门制造一种专用芯片的话,这样做的成本花费实在太过昂贵。而FPGA恰好能解决这个问题。于是他们开始让工程师制造运行更快、比流水线生产的通用CPU的能耗更低、而且可以定制化的芯片,从而解决不断变化的技术和商业模式所带来的各种新问题。

在那次圣诞节后的会谈中,Burger为Bing的高管们介绍了FPGA方案,阐述FPGA如何能够在提升搜索速度的同时降低能耗。当时Bing的那些高管们并没有明确表态是否支持。在接下来的几个月里,Burger带领自己的团队根据Putnam在圣诞节时画出的草图打造了一个原型,证明FPGA运行Bing机器学习算法时的速度可以提升100倍。“那时他们才真正开始对FPGA产生了兴趣,同时他们也给我们施加了巨大的压力。”当时的团队成员、现瑞士洛桑联邦理工学院院长Jim Larus这样说道。

原型是一个用了6个FPGA的专用盒子,由满满一架的服务器所共享。如果这个盒子吱吱作响,或者机器需要的FPGA超过6个(考虑到机器学习模型的复杂性,这种可能性是很大的),这些机器便无法很好运转。Bing的工程师非常痛恨这一点。

所以Burger的团队又花了几个月时间打造出了第二个原型。这是一个插入到每一台服务器中的电路板,里面只有一个FPGA。但它可以与所有其它服务器中的其它FPGA电路板相连,这就形成了一个巨大的可编程芯片池,任何Bing的机器都可以接入。

正是这个原型得到了陆奇的支持。他为Burger提供资金支持进行研发,并能在超过1600台装有FPGA的服务器上进行测试。在来自中国和台湾的硬件制造商的帮助下,Burger的团队花了半年时间制造出了这个硬件产品,并将第一组设备安装在微软的实验数据中心里。有一天晚上,灭火系统出现了故障。他们花了三天时间进行修复,修复完成后依然能正常工作。

在2013年到2014年的几个月时间里,测试显示,使用了这种全新的芯片后,Bing的【决策树】(decision tree)机器学习算法在新芯片的运行速度提升了40倍。到了2014年夏天,微软公开表示要很快要将这种硬件应用到Bing的实时数据中心。但是后来微软暂停了这项工作。

不单单是Bing

在前几年,Bing一直是微软的核心线上业务,但是到了2015年,公司有了其它两个庞大的线上业务:商务生产力套件Office 365和云计算服务Microsoft Azure。和自己的所有竞争对手一样,微软的高层意识到,运营一个不断成长的在线业务帝国的唯一有效的方法是在同一基础上运营所有服务。如果Project Catapult想要转变微软的话,那么它便不能为Bing所独有,除了Bing外,Project Catapult也需要在Azure和Office 365内运行。

但是问题是,Azure的高管们不在乎加快机器学习的速度,他们需要在网络连接上得到帮助。Azure数据中心的流量增长太快,但服务的CPU却跟不上。最终,Azure首席架构师Mark Russinovich发现Catapult能够解决这个问题,但解决这个问题的方式和解决Bing的问题的方式不一样。他的团队需要在每一个服务器与主网络连接的地方都有可编程芯片,这样一来,他们就能在流量到达服务器之前处理所有流量了。

图片描述

(Version o是FPGA架构的第一代原型,这是一个被一架服务器共享的单个盒子。后来,团队转向为每个服务器各自提供一个FPGA,这个版本为Version 1。在最新的Version 2里,他们将芯片置于服务器和整体网络之间)

所以FPGA团队必须再次重新打造这款硬件。在第三代原型中,芯片位于每个服务器的边缘,直接插入网络,与此同时依然形成了一个任何机器都能接入的FPGA池。这样看起来,FPGA也可以应用到Office 365上。最终,Project Catapult准备好可以上线了。

Larus将很多的重新设计形容为一场延续的噩梦,这不是因为他们需要打造一款新的硬件,而是他们每次都要重新编程FPGA。“这太恐怖了,要比编程软件恐怖的多,因为它更难写,也更难不出问题。”

现在最终的硬件版本已经准备就绪,不过微软依然要面临每次重新编程这些芯片时都会遇到的同样的挑战。“这是一个看待世界和思考世界的完全不同的视角”,Larus说道。虽然Catapult硬件成本只占了服务器里所有其它配件总成本的30%,只消耗不到10%的能耗,但有了它,处理数据的速度却是之前的两倍。

微软Azure使用这些可编程芯片来路由数据。Bing目前占据着全球20%的桌面搜索市场和6%的移动手机市场,在Bing上,可编程芯片能够让Bing加速转向新生代的人工智能:深度神经网络。微软的一名员工表示,Office365正在尝试将FPGA用于加密、压缩和机器学习上,让它为2310万用户服务。Burger表示,这些可编程芯片最终将会驱动微软所有的服务。

等等,这真的能奏效吗?

Peter Lee表示:“虽然现在整个公司层面都在推动这件工作,但这依然让我感到震惊。”Lee目前主管微软内部一个名为NExT(New Experience and Technologies的缩写)的机构。在接任微软CEO一职后,Nadella自己亲自推动了NExT的创立,NExT也代表着由Ballmer统治了十年的微软的一个重大转变。NExT的目标主要是快速推动那些能较快出成果的短期研究,而不是远期研究,让这些研究现在就能改变微软的进程,而不是改变微软多年后的发展进程,Project Catapult就是一个很好的例子。Burger表示:“微软的下一次跳跃将来自非CPU技术。”

图片描述

(图中人物为Peter Lee)

所有的互联网巨头,包括微软在内,现在都在用图形处理器(GPU)补充自己的CPU,图形处理器芯片可为游戏和其他高度视觉化应用渲染图像。例如,当这些公司训练神经网络去识别图像中的人脸时(输入数百万张图片),GPU能完成其中大部分的计算工作。像微软这样的巨头公司也在使用可替代的硅片在训练后执行神经网络。虽然定制化打造芯片成本及其昂贵,不过谷歌在为执行神经网络定制设计处理器方面已经做了大量工作,也就是他们设计的TPU(tensor processing unit,张量处理器)。

在TPU上面,谷歌为了追求速度而牺牲了长期灵活性。也就是说,在识别输入智能手机的指令时,TPU想要消除任何延迟。然而麻烦是,如果神经网络模型发生改变的话,谷歌就必须要打造全新的芯片。相比谷歌的TPU,在FPGA方面,微软着眼的是长远。尽管FPGA在速度上赶不上谷歌定制打造的芯片,不过微软可以在需求发生变化时重新编程芯片。微软不仅能为新的人工智能模型重新编程,也能为任何任务进行重新编程。

图片描述

(硬件的最新版本 V2,是一张能插入微软任一服务器终端的芯片,并能直接与网络相连)

微软的服务规模非常大,它使用的FPGA数量也非常多,所以他们正在改变全球芯片市场。FPGA来源于一家名为Altera的公司,英特尔的执行副总裁Diane Bryant告诉我,英特尔之所以会在去年夏天以167亿美元的价格收购Altera,主要是因为微软,这笔收购交易也是芯片制造商史上最大的一笔收购交易。她表示,到2020年,所有主要云计算公司里1/3的服务器都将使用FPGA。

这是科技领域首字母缩写之间的典型纠缠:GPU、CPU、TPU、FPGA。但它们所代表的意义非常重大。在云计算领域,像微软、谷歌和亚马逊这些大公司驱动着全球技术的很大一部分,因此那些可替代芯片也将驱动更广范围的App和在线服务。Lee表示,Project Catapult能够让微软持续扩展自己全球超级计算机的能力一直到2030年。2030年以后,微软可能就会朝量子计算方向发展。

后来,Nadella也告诉了我同样的事情。他们读取自同样的微软蓝图,正在触摸量子技术驱动的超快计算机的未来。想象一下,打造一款量子机器是多么艰难,像做白日梦一样。然而就在几年前,Project Catapult不也是如此吗?

原文链接Microsoft Bets Its Future on a Reprogrammable Computer Chip(译/欧开磊)

评论