编者按:在无人不谈 AI 的时代,微软同样将目光投向了这个领域, 而它把赌注押在了 FPGA上 —— Project Catapult 于微软而言,暗示着改变未来全球系统运作的方式——至少在微软看来是这样的。本文首发于 wired, 由雷锋网(公众号:雷锋网)陈杨英杰、夏睿及管策联合编译,未经授权不得转载。
硬件原型,六年奋斗,只为在下一波的AI浪潮中重建微软帝国的雄风
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 47 岁,Putnam 39 岁,两人过去都是学者。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 用这些可编程的芯片来路由、加密和压缩数据。世界上 20% 的桌面搜索市场和 6% 的移动手机市场是 Bing的,有了这个芯片, 它就能适应新型人工智能:深度神经网络。据微软一名员工说,Office365 正在尝试使用 FPGA 和机器学习进行加密和压缩。而这一行为将使 2310 万用户收益。Burger 说,最终,它们会驱动所有的微软服务。
| 这真的会起作用吗?
Peter Lee 表示道:“现在回想起来我还感到震惊,我们居然让公司做了这件事。”他还负责管理微软研究院内一个名为新体验和技术(NExT)的组织,该组织是萨提亚·纳德拉在担任微软 CEO 后亲自推动创建,代表了微软研究院的重大转向。NExT 旨在促进能更快改变微软前进路线的研究。Project Catapult 就是典型的例子。而 Project Catapult 只是行业大变革的一部分。Doug Burger 表示道:“未来的进步将来自于非 CPU 技术。”
Peter Lee
包括微软在内的所有互联网巨头现在都在用 GPU 作为 CPU 的补充。GPU 本来是专门用来渲染游戏画面和满足其他对画面要求很高的应用需求,但现在这些公司在训练神经网络时也会大量使用 GPU 来计算,比如识别数千万张照片中的人脸。一些互联网巨头如微软还会在训练后,用可再编程芯片来运行神经网络。虽然自行开发芯片极其昂贵,但谷歌已经开发了专门用于运行神经网络的处理器 TPU(tensor processing unit)。
谷歌的 TPU 以长期灵活性换取了速度。谷歌希望在识别语音命令时不再有延时。问题是,如果谷歌的神经网络模型改变,谷歌就必须再制造一种新芯片,而 FPGA 可以让微软打持久战。尽管 FPGA 不像谷歌的自制芯片一样快,但微软可以根据需要对芯片进行再编程。微软不仅能根据新的人工智能模型再编程,还可以根据任何任务进行再编程。如果其中一种设计在未来很多年都有用,微软也可以用这一设计来制造专用芯片。
新版 V2,它可以插在每台微软服务器的末端,直接与网络连接在一起
微软的服务非常庞大,使用的 FPGA 芯片多到开始改变全球芯片市场。FPGA 技术来自于 Altera,英特尔执行副总裁 Diane Bryant 称,微软就是英特尔在去年以 167 亿美元收购 Altera 的理由,这是英特尔有史以来最大一笔收购。Diane Bryant 表示,到 2020 年,主流云计算公司三分之一的服务器都会使用 FPGA 芯片。
CPU、GPU、TPU、FPGA,这么多首字母缩写词看得人眼花缭乱。但真正重要的还是它们的使用场景。微软、谷歌、亚马逊等公司通过云计算驱动着全球技术发展,而这些另类芯片则驱动着更庞大的应用和网络服务体系。Peter Lee 表示,Project Catapult 将可以让微软继续扩大自己的全球超级计算机运算能力,直到 2030 年。在此之后,微软可以转向量子计算。
Nadella 在接受电话采访时也表达了差不多的观点。他俩说的都差不多,都在鼓吹超高速量子计算机的未来。考虑到打造量子计算机的难度,他们描述的未来就像是在做白日梦一样。但在几年前,Project Catapult 也是同样像是在做白日梦。
via Wired
推荐阅读:
洪小文独家解读: 直到AI可以自己编程 它才有资格跟 “路人甲” 比智能
雷锋网原创文章,未经授权禁止转载。详情见转载须知。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/61075.html