2012年12月的一天,道格·伯格(Doug Burger)站在微软首席执行官史蒂夫·鲍尔默(Steve Ballmer)的面前做着陈述,想要向他描绘一幅科技界的未来发展蓝图。伯格是一位计算机芯片研究员,他于2008年加入微软。那时,伯格正在向高管们推销一个新想法,他称之为“Project Catapult”(弹射器项目)。未来,一些巨型互联网公司将会运营一些庞大的互联网服务,这些服务非常复杂,而且与此前出现的服务迥然不同,以至于这些公司将不得不打造一种全新的架构来运营它们。这些公司不仅需要开发驱动服务的软件,还需要打造包括服务器和网络设备在内的硬件。Project Catapult将为微软的所有服务器(多达数百万台)装备专用芯片,微软将可以依据特定的工作任务,对这些芯片进行重新编程。但就在伯格把话题引到芯片之前,鲍尔默忍不住发话了。鲍尔默说,他在视察微软研究院时,期待听到的是关于研发工作的进展,而不是战略走向。微软花了40年时间来开发Windows、Word和Excel这样的PC软件,涉足互联网领域只是刚刚开始。毫无疑问,这家公司缺乏必要的工具和工程师来进行计算机芯片的编程工作,而这项任务又异常费时费力,并且看上去还有些奇怪——微软做这件事就好比可口可乐公司要烹制鱼翅汤。他告诉鲍尔默,谷歌和亚马逊等公司已经在朝这个方向努力了。他说,世界上没有哪家硬件制造商,能够提供微软运营其在线服务所需的硬件。他还说,如果微软不打造自己的硬件,它就会被甩在后面。但过了不久,另一个声音加入了讨论,此人就是微软必应搜索引擎负责人陆奇。在后来的近两年时间里,陆奇的团队与伯格不断讨论可再编程计算机芯片的事情。Project Catapult不仅仅是有可能实现的,陆奇表示:他的团队已经开始着手做了。如今,这种被伯格和陆奇认为将改变世界的可编程芯片已经问世了,它的名字叫“现场可编程逻辑门阵列”(FPGA)。FPGA已经在为必应搜索引擎提供支持,未来几周,它们还将驱动基于深度神经网络(即仿照人脑结构建模的人工智能)的新搜索算法。与普通计算机芯片相比,FPGA运行人工智能的速度将快出几个数量级。具体来说,如果你以前需要等待4秒才能在屏幕上看到搜索结果,现在这个时间被缩短到23毫秒。此外,FPGA还驱动着微软的云计算服务Azure。未来数年中,微软新增的几乎每一台服务器都将装备FPGA,全球范围内,这样的机器将多达数百万台。“这赋予了我们强大的能力和极大的灵活性,还有经济效应。”伯格说,“这现在就是微软的标准全球架构。”Project Catapult团队成员:阿德里安·考尔菲尔德(Adrian Caulfield)、张益肇、道格·伯格和安德鲁·普特南 这不仅仅是必应搜索在追赶谷歌搜索,Project Catapult昭示着一种变化,即未来全球网络系统的运行方式将发生改变。从美国的亚马逊到中国的百度,所有的互联网巨头都在用自制芯片对标准的服务器芯片提供补充,以期跟上人工智能的快速变化。目前,微软每年要花费五六十亿美元,用以打造相关硬件来运营其在线帝国。2014年接任微软首席执行官的萨蒂亚·纳德拉(Satya Nadella)说,“这是重要的优先事项。”这正是伯格当初试图解释的事情,也正是它推动着伯格和他的团队克服了多年以来的挫折、推倒重建和体制混乱,成功推出了一种新的全球超级计算机。 2010年12月,微软研究员安德鲁·普特南(Andrew Putnam)回到家乡科罗拉多州休假。伯格打算节后同必应的高管会面,他需要一款硬件设计方案,让必应的机器学习算法可以运行在FPGA之上。伯格在得克萨斯州大学奥斯汀分校担任过九年的计算机科学教授,他的研究方向是微处理器,并在任教期间设计出了一种名为EDGE的新型芯片。普特南则在华盛顿大学做过五年时间的研究员,在那里从事FPGA相关实验——这种可编程芯片问世已有数十年,但大多数时候都被用来制作其他处理器的原型。2009年,伯格介绍普特南加入微软,他们开始一起探索这样一个想法,即FPGA可以用于加速在线服务。Project Catapult的第一版硬件,伯格团队在微软西雅图园区的一个数据中心对它进行了测试 “每两年就会有人跟我说一次,FGPA时代‘终于要来了’。”微软研究院副总裁、伯格团队的直属上司彼得·李(Peter Lee)说,“所以,当他们向我展示这个想法时,我像任何有理智的人一样,颇为不屑。”不过伯格团队认为,这个旧想法绽放光彩的时刻已经到来,而必应搜索就是完美的试验品。微软的搜索引擎是一项跨越数千台服务器运行的在线服务,每台服务器都由一部中央处理器(CPU)驱动。然而,尽管英特尔等厂商在不断改进CPU,但这些芯片已经跟不上软件的前进步伐,这在很大程度上是因为出现了人工智能这样的新潮流。必应搜索之类的服务已经超越了摩尔定律的范畴——该定律指出,处理器上可容纳的晶体管数量每隔18个月便会增加一倍。事实证明,我们无法通过增加CPU的数量来解决这个问题。但另一方面,若是为每个新问题研制专用芯片,成本通常会太过高昂。而FPGA能够解决这一难题:一方面它们能够让工程师打造出速度更快、能耗更低的芯片;另一方面它们是可定制的,这样它们就能应对不断变化的技术和商业模式所带来的新问题。在那场圣诞节之后的会议上,伯格向必应搜索的高管们展示,FPGA能够成为一种加快搜索速度的低能耗方案。于是在接下来的几个月里,伯格及其团队按照普特南的设计草图,打造了一款原型产品,证明它运行必应机器学习算法的速度可以提高大约100倍。“就是在那个时候,他们真正产生了兴趣。”吉姆·拉鲁斯(Jim Larus)说,“但随后,他们也开始给我们出难题了。”拉鲁斯当时是该团队的一员,如今在瑞士洛桑联邦理工学院担任院长。原型产品是一个装有六个FPGA的盒子,它由一整个机架的服务器共享使用。如果盒子出现故障,或者服务器需要六个以上的FPGA,所有的机器就都无法工作了。必应的工程师非常讨厌这种事。“他们是对的。”拉鲁斯说。于是,伯格的团队又花了好几个月时间打造第二款原型产品。这一次是一块可以插入服务器的电路板,上面只有一个FPGA。不过,所有服务器上的FPGA可以相互连接,形成一个巨大的可编程芯片池,从而让必应的任何一台服务器都可以接入使用。他向伯格提供了资金,让他可以在1,600多台服务器上装备FPGA并进行测试。在中国制造商的帮助下,伯格团队用六个月时间打造出了硬件。然后,他们在微软园区的一处实验数据中心对首批机架进行了安装部署。测试显示,2013年到2014年的数月间,使用新芯片后,必应“决策树”机器学习算法的运行速度大约提高了40倍。2014年夏天,微软公开表示,将很快在真正的必应数据中心使用这种硬件。前几年,必应还是微软在线业务的主要组成部分,但到2015年时,微软已拥有另外两项规模庞大的在线业务:商业生产力套件Office 365以及云计算服务Azure。同所有竞争对手一样,微软高管意识到,运营一个不断增长的在线帝国,唯一高效的方式是在一个相同的基础上运营所有的服务。如果Project Catapult要改变微软,就不能只用于必应,它必须能够对Azure和Office 365提供支持才行。但问题在于,Azure的高管并不在乎提高机器学习的速度,他们需要的是网络系统方面的帮助。在Azure的数据中心之间,往来传输的数据流量增长迅猛,这项服务使用的CPU已经跟不上节奏。最终,包括Azure首席架构师马克·拉希诺维奇(Mark Russinovich)在内的一些人认识到,Project Catapult也能在这方面提供帮助,只是帮助方式不同于它在必应中的运用。拉希诺维奇的团队需要在每台服务器与主网络的连接之处使用可编程芯片,这样,他们就可以在所有流量到达服务器之前完成处理。FPGA架构的第一版原型是由一整个机架服务器共享使用的单个盒子(Version 0)。之后,团队给每台服务器配备了各自的FPGA(Version 1)。再后来,他们把芯片安装在服务器和整体网络之间(Version 2)。 在第三版原型产品中,芯片将被置于每台服务器的终端,并直接连接到网络,同时仍可以形成一个任何机器都能接入使用的FPGA池。看上去,这样的设计似乎能够用于Office 365。Project Catapult终于准备正式上线了。“这是一种全然不同的看待世界和思考世界的方式。”拉鲁斯说。Project Catapult硬件的成本仅占服务器其他部件总成本的不到30%,消耗的能量也少于整体的10%,但却能将数据处理速度提高一倍。Project Catapult的部署规模是巨大的。Azure使用这些可编程芯片来传输、加密和压缩数据。至于必应,这些芯片正推进它向新的人工智能技术迁移,即深度神经网络。据一位微软员工称,Office 365将逐渐使用FPGA进行加密、压缩以及机器学习,此举将惠及该服务的2,310万用户。“我们在推动公司做这件事,想想还是有些不可思议。”彼得·李说。他在微软研究院内部掌管着一个名为NeXT的组织,其名称的含义是“新体验和新技术”。这个组织是纳德拉出任首席执行官之后,亲自推动成立的,它代表着微软在鲍尔默掌舵十年之后的一个重大转变。NeXT致力于促成那些很快能出成果的研究,它们要能在短期内改变微软的发展进程,而不是等到几年之后,就比如Hololens增强现实头戴设备,还有Project Catapult。伯格说,“未来的飞跃来自非CPU技术。”  彼得·李 目前,包括微软在内的所有互联网巨头都在使用图形处理器(GPU)对CPU提供补充,前者是一种为游戏和其他视觉化应用程序呈现图像的芯片。举例来说,当这些公司使用数百万张照片来训练自己的神经网络识别面孔时,大部分的计算工作都是由GPU完成的。训练完成后,微软等公司还会使用其他类型的芯片运行自己的神经网络。尽管定制芯片的成本极其高昂,但谷歌却不惜花费,自主设计了运行神经网络的处理器:张量处理器(TPU)。在TPU问题上,谷歌是牺牲了长期的灵活性来换取了速度的提升。比方说,当用户向智能手机发出语音指令时,谷歌希望消除识别过程中的任何延迟现象。这样做的问题在于,如果神经网络模型发生改变,谷歌必须开发出一款新的芯片。但如果使用FPGA,微软就省去了开发新型芯片的麻烦。虽然FPGA的速度比不上谷歌的定制芯片,但微软可以在需求发生变化时,对芯片进行重新编程。这种重新编程的方式不仅适用于新的人工智能模型,也适用于几乎任何领域。如果某一种设计有望在未来几年发挥重要作用,微软就可以一直利用FPGA编程,打造出一款专用芯片。Project Catapult的新版硬件(V2),这是一块可以插入微软服务器终端的电路板,它可以直接连接到整体网络。 微软提供的服务是如此广泛,它们使用的FPGA又是如此之多,在这种情况下,全球芯片市场都将因此发生改变。这些FPGA来自一家名为Altera的公司,英特尔副总裁黛安·布莱恩特(Diane Bryant)说,他们去年之所以收购Altera,其中的原因正是微软。这笔交易价值167亿美元,是英特尔有史以来进行的最大收购。她说,到2020年时,所有大型云计算公司的全部服务器中,将有三分之一装备FPGA。CPU、GPU、TPU,还有FPGA,这些缩略词让人有点犯晕,但它们的潜在含义才是最重要的。眼下,微软、谷歌、亚马逊等公司正通过云计算,为世界上的许多技术提供驱动力,而这些新型芯片将为更广泛的应用程序和在线服务提供动力。彼得·李表示,凭借Project Catapult,微软将继续扩展其全球超级计算机的能力,直至2030年。想想如今,研制量子计算机的难度是何等之大,那看起来就像是一个遥不可及的梦。但几年前,Project Catapult不也是一样吗?
|