Project Catapult:人工智能时代微软押注FPGA
欢迎关注微信公众号:微软研究院
2012 年 12 月的某一天,Doug Burger 站在 Steve Ballmer 面前,尝试着预测未来。
Ballmer,微软的那个大嗓门 CEO,坐在微软在西雅图郊外的蓝天研发实验室(blue-sky R&D lab)基地99 号楼一层的演讲室。桌子排成 U 型,Ballmer 被他的高级助围住,开着笔记本电脑。Burger,一位四年前加入微软的计算机芯片研究员,正在为高管们描绘一个新想法,Project Catapult。
Doug Burger
Burger 解释道,技术世界正在迈向一个新轨道。未来将是少数几家互联网巨头运作着几个巨型互联网服务,这些服务非常复杂并与之前的服务非常不同,所以这几家公司不得不打造全新的架构来运行它们。不仅仅是驱动这些服务的软件,巨头们还得造出硬件,包括相应的服务器和网络设备。Project Catapult 将会为微软所有的服务器——几百万台——提供专用芯片,这些芯片可以用来为特定的任务重新编程。
但是还没等待 Burger 介绍到这个芯片时,Ballmer 突然抬起了头。Ballmer 刚到微软研究时,就说他希望看到研发中心有新进展,而不是一个战略简报。「他开始拷问我,」Burger 说。微软花了 40 年建立起像 Windows、Word 和 Excel 这样的 PC 软件,然而它才发现自己只是刚刚涉足互联网。微软还没有编程计算机芯片所必须的工具和工程师,这是一项困难、耗时、专业且有些奇怪的任务。微软编程计算机芯片听起来就像是可口可乐要做鱼翅汤了。
Project Catapult 目前的样子
Burger,着装整齐,轻微秃头,能冷静的分析问题,就像很多优秀的工程师一样。他转过身,告诉 Ballmer 像谷歌和亚马逊这样的公司一直正在超这个方向发展。他说世界上的硬件制造商不会提供微软需要用来运行线上服务的硬件。他说,如果微软不打造自己的硬件,就会落后。Ballmer 听完后并不买账。但是过了一会儿,另一个声音参与到这场讨论中来。这个声音来自陆奇,他管理者 Bing,微软的搜索引擎。两年来,陆奇的团队一直在和 Burger 讨论可再编程芯片的事情。Project Catapult 不仅仅是一种可能,陆说:他的团队已经开始着手做了。
今天,微软已经有了现场可编程门阵列(field programmable gate arrays,FPGA),Burger 和陆都相信这个可编程芯片可以改变世界。FPGA 目前已支持 Bing,未来几周,它们将会驱动基于深度神经网络——以人类大脑结构为基础建模的人工智能——的新搜索算法,在执行这个人工智能的几个命令时,速度比普通芯片快上几个数量级。有了它,你的计算机屏幕只会空屏 23 毫秒而不是 4 秒。
Catapult 团队成员 Adrian Caulfield, Eric Chung, Doug Burger, 和 Andrew Putnam
Bing 不只是要追赶 Google。Project Catapult 暗示着改变未来全球系统运作的方式。从美国的亚马逊到中国的百度,所有的互联网巨头都在用硅替代他们的标准服务器芯片——中央处理单元,也叫 CPU,这些硅制成的芯片可以让它们跟上人工智能的快速变化。微软现在每年花在硬件上的钱在 50 亿到 60 亿美元,以维持其线上帝国的运转。所以这样的工作「再也不仅仅是研究了,」Satya Nadella 说道,他在 2014 年接任了微软 CEO 一职。「它有极为重要的优先性。」也就是 Burger 当年在 99 号大楼中要解释的,并让他和他的团队耗费多年,克服种种挫折,不断重新设计,与体制对抗,最终实现的一种新的全球超级计算机。
一种全新的古老计算机芯片
2010 年 12 月,微软研究院 Andrew Putnam 离开西雅图度假,回到了位于科罗拉多斯普林斯的家中。当时正是圣诞节前两天,他还没开始大采购。正在他开车去商场的路上,电话突然响了,另一端正是他的老板 Burger。Burger 当时打算节后面见 Bing 高管,但他需要一份能在 FPGA 上运行 Bing 机器学习算法的硬件设计。
Putnam 找到最近的星巴克开始规划设计,这大约花了他 5 个小时,所以他仍有时间去购物。
当时 Burger 45 岁,Putnam 41 岁,两人过去都是学者。Burger 曾在特克萨斯大学奥斯汀分校担任计算机科学教授,他在那里工作了 9 年,专攻微处理器,还设计了一款名为 EDGE 的新型芯片。
Putnam 曾在华盛顿大学工作 5 年,担任研究员并主要从事 FPGA 研究。当时可编程芯片已经存在了好几十年,但它们大多被当作处理器的一部分。2009 年 Burger 将 Putnam 挖到微软,两人开始探索用可编程芯片提升线上服务速度的方法。
Project Catapult V1,即 Doug Burger 团队曾在微软西雅图数据中心测试过的版本。
微软的搜索引擎是一个依靠成千上万台机器运行的在线服务。每台机器都需要靠 CPU 驱动,尽管英特尔等公司不断改进它们,这些芯片还是跟不上软件更新的脚步。很大程度上,是因为人工智能浪潮的来临。
Bing 搜索等服务已经超出了摩尔定律预言的处理器能力,即每 18 个月处理器上晶体管的数量翻一倍。事实还证明增加 CPU 并不能解决问题。
但同时,为新出现的需求制造专用芯片,成本是非常昂贵的。恰好 FPGA 能弥补这个不足,Bing 决定让工程师制造运行更快、比流水线生产的通用 CPU 能耗更少、同时可定制的芯片,从而解决不断更新的技术和商业模式变化所产生的种种难题。
圣诞节后的会面中,Burger 为必应高管们拿出了一套用 FPGA 提升搜索速度,同时功耗较低的方法。高管们不置可否。在接下来的几个月中,Burger 团队根据 Putnam 圣诞节时画出的草图构建了原型,证明其运行必应的机器学习算法时速度可以提升 100 倍。「那时他们才表现出浓厚兴趣」,当时的团队成员、现瑞士洛桑联邦理工学院院长 Jim Larus 告诉我们,「但同样也是艰难时光的开始。」
原型是一个使用六个 FPGA 的专用盒,由一整个机架的服务器共享。如果盒子吱吱作响,表明它们需要更多 FPGA——考虑到机器学习模型的复杂性需求会越来越大——这些机器就会停止工作。必应的工程师非常厌恶这件事。「但他们没错,」Larus 说。
正是这个原型吸引了陆奇。他给了 Burger 足够的资金,可以在 1600 台服务器上装配 FPGA 并进行测试。在中国和台湾硬件制造商的帮助下,团队花费半年时间制造出了硬件产品,并在微软数据中心的一组机架上进行测试。但一天晚上灭火系统出现了问题。他们花了三天时间修复机架——它仍能工作。
在 2013 年到 2014 年的几个月中,测试显示必应「决策树」机器学习算法在新芯片的帮助下,可以提升 40 倍运行速度。2014 年夏天,微软公开表示要很快要将这些硬件应用到必应实时数据中心。但是在那之后,微软暂停了。
不只是 Bing 搜索
Bing 在前几年一直是微软线上发展的核心,但到 2015 年,公司有了其他两个主要的在线服务:商务应用套件 Office 365 和云计算服务 Microsoft Azure。和其他竞争者一样,微软高层意识到运营一个不断成长的在线帝国的唯一有效方法是在同样的基础上运营所有的服务。如果 Project Catapult 将转变微软的话,那 Bing 也不能被排除在外。它也要在 Azure 和 Office 365 内部工作。
问题是,Azure 高官们不在乎加速机器学习,他们需要联络的帮助。Azure 数据中心的流量跳动增长的太快,服务的 CPU 不能跟上脚步。最终,Azure 首席架构师 Mark Russinovich 这样一批人看到了 Catapult 能帮助解决这些问题,但不是为 Bing 设计的那种解决问题的方式。他的团队需要可编程的芯片,将每个服务器连接到主要网络,如此他们在数据流量到达服务器之前就能开始处理了。
FPGA 架构的第一代原型是一个被一架服务器共享的单个盒子(Version 0)。然后该团队转向为每个服务器设计自己的 FPGA(Version 1)。然后他们将芯片放到服务器和整体网络之间。
所以,研究 FPGA 的这伙人需要重新开发硬件。在第三代原型中,芯片位于每个服务器的边缘,直接插入到网络,但仍旧创造任何机器都可接入的 FPGA 池。这开始看起来是 Office 365 可用的东西了。最终,Project Catapult 准备好上线了。
Larus 将许多重新设计描述为噩梦,这不是因为他们需要建立新的硬件,而是他们每次都需要重新编程 FPGA。他说,「这非常的糟糕,要比编程软件都糟糕,更难写、难纠正。」这是一项非常繁琐的工作,像是改变芯片上的小逻辑门。
既然最终的硬件已经有了,微软还要面对每一次重新编程这些芯片时都会遇到的同样挑战。「这是一个看世界思考世界的全新视角,」Larus 说。但是 Catapult 硬件的成本只占了服务器中所有其他的配件总成本的 30%,需要的运转能量也只有不到 10%,但其却带来了 2 倍原先的处理速度。
这个布局非常大。微软 Azure 用这些可编程的芯片来路由、加密和压缩数据。Bing 占据着世界上 20% 的桌面搜索市场和 6% 的移动手机市场,在 Bing 上,这个芯片能帮助 Bing 适应新品种的人工智能:深度神经网络。而且据微软的一名员工说,Office365 正在尝试在加密和压缩上使用 FPGA 以及机器学习——这一举措将惠及其 2310 万用户。最终,Burger 说道,这些会驱动所有的微软服务。
这真的起作用吗?
Peter Lee 说,「这仍然使我迷惑。我们让公司做这些事。」Lee 监管着微软内部一个被称为 NExT 的组织,NExT 是 New Experience and Technologies 的缩写。在 Nadella 接任 CEO 之后,他个人推动了 NExT 的创建,代表了从 Ballmer 十年统治的重大转变。该组织的目标是培养能在近期实现的研究,而不是远期研究,这能改变微软如今的进程,而非多少年后的进程,就像增强现实设备 HoloLens 一样。当然也包括 Project Catapult。Burger 说,「起跳点就在前面,来自于非 CPU 技术。」
Peter Lee
所有的互联网巨头,包括微软,如今都在用图像处理单元增补 CPU,GPU 可为游戏和其他高度视觉化的应用渲染图像。例如,当这些公司训练神经网络识别图像中的人脸时(输入百万张图片),GPU 可处理很多的计算。像微软这样的巨头也使用可替代的硅片在训练后执行神经网络。而且,即使定制芯片异常昂贵,谷歌在设计执行神经网络的处理器上也走得相当远了,也就是他们设计的 TPU。
在 TPU 上,谷歌为追求速度牺牲了长期灵活性。也就是说,在识别进入智能手机的指令时,TPU 想要消除所有的延迟。但问题是如果神经网络模型改变的话,谷歌必须要建立新的芯片。但在 FPGA 上,微软在打一场长久战。尽管在速度上比不上谷歌的定制芯片,微软可在需要的时候重新编程芯片。微软不只能为新的人工智能模型编程,也能为任何任务重新编程。而且这些设计在接下来几年如果有用,微软能一直采用这种 FPGA 的程序,并建立专用芯片。
该硬件的新版本 V2,是一张能插入微软任一服务器终端的芯片,并能直接连接到网络。
微软的服务很广,也使用如此多的 FPGA,如今他们正在改变全球芯片市场。FPGA 出自一家名为 Altera 的公司,英特尔副总裁 Diane Bryant 告诉我为什么英特尔会在去年夏天收购 Altera,这是一笔价值 167 亿美元的收购,也是芯片制造商史上最大的一笔收购。她说,到 2020 年,所有主要的云计算公司的 1/3 的服务器将使用 FPGA。
这是科技名词缩写之间的纠缠:GPU、CPU、TPU、FPGA。但它们也是将成为关键的代名词。在云计算上,微软、谷歌、亚马逊这些公司驱动着世界上很大一部分技术,以至于这些可选择的芯片将驱动大范围的 app 和在线服务。Lee 说,直到 2030 年,Project Catapult 将继续扩展微软全球超级计算机的能力。在这之后,他说,微软就能转向到量子计算了。
之后当我们谈到手机时,Nadella 也告诉了我同样的事。他们读取自同样的微软蓝图,正在触摸量子技术驱动的超快计算机的未来。想象建立量子机器多么的难,就像白日梦一样。但在几年前,Project Catapult 也如同白日梦一样。
原文链接:https://www.wired.com/2016/09/microsoft-bets-future-chip-reprogram-fly/
你也许还想看: