微软,就是 Intel 为什么在去年夏天收购 Altera 的理由。
2016 年 9 月,面对《连线》杂志的采访,时任 Intel 执行副总裁的 Diane Bryant(她已经于 2017 年年底离开 Intel 并担任 Google Cloud COO)阐释了这家半导体巨头在 2015 年以 167 亿美元的天价收购世界第二大 FPGA 厂商 Altera 的原因。很明显,微软不可能是上述收购的唯一理由,但毫无疑问是最为重要的理由之一。
这件事情,还要从 2010 年微软的 Project Catapult 说起。
2010 年的微软,依然处于这家公司的第二任 CEO Steve Ballmer 的执掌之下;那时候,陆奇的角色是在微软担任在线业务部门总裁, 他同时是 Bing 项目的负责人。在当时的条件下,Bing 搜索是微软内部为数不多的在线业务,而它正在追赶强大的 Google 搜索引擎——无论是在搜索结果还是响应速度上;其中,后者是衡量一款搜索引擎背后的技术能力的核心指标。
微软与 FPGA 的渊源就是在这种情况下开始的。
当时,微软的搜索引擎是一个依靠成千上万台机器运行的在线服务,每台机器都需要靠 CPU 驱动,尽管 Intel 等公司不断改进 CPU,这些芯片还是跟不上节奏。换句话说,Bing 搜索等服务已经超出了摩尔定律预言的处理器能力——事实还证明增加 CPU 并不能解决问题。
不过,倘若为新出现的需求制造专用芯片,成本是非常昂贵的。而恰好 FPGA 能弥补这个不足,Bing 决定让工程师制造运行更快、比流水线生产的通用 CPU 能耗更少、同时可定制的芯片,从而解决不断更新的技术和商业模式变化所产生的种种难题。
2010 年 12 月,39 岁的微软研究员 Andrew Putnam 赶在圣诞节前两天,用大约 5 个小时的时间完成了一份能够在 FPGA 上运行 Bing 机器学习算法的硬件设计。雷锋网了解到,Andrew Putnam 曾在华盛顿大学工作 5 年,担任研究员并主要从事 FPGA 研究,他在 2009 年受到一位从事计算机芯片研究的微软研究员 Doug Burger 的邀请加入微软,而 Doug Burger 后来成为 Andrew Putnam 在微软的上司。
Andrew Putnam 的硬件设计,是在 Doug Burger 的授意下进行的——它正是后来的 Project Catapult,尽管但是还没有这样的名字。
后来,根据这一硬件设计,Burger 团队成功构建出模型,并证明它能够让 Bing 的机器学习算法速度提升 100 倍;最终,这个原型吸引了陆奇,并且在 2012 年 12 月以 Project Cataplut 的面目出现在时任微软 CEO Steve Ballmer 的面前。
此后,微软给出足够的资金,允许 Burger 在 1600 台服务器上配置 FPGA 进行测试。在中国相关硬件制造商的帮助下,团队花费半年时间制造出了硬件产品,并在微软数据中心的一组机架上进行测试。在 2013 年到 2014 年的几个月中,测试显示 Bing「决策树」机器学习算法在新芯片的帮助下,可以提升 40 倍运行速度。
2014 年夏天,微软表示很快要将这些硬件应用到 Bing 的实时数据中心。
然而,FPGA 在数据处理加速方面上的出色贡献,不仅仅被 Bing 业务部门所重视,它同时进入到微软其他在线业务的视野,一个是 Azure 云计算业务,一个是 Office 365。当然,就业务本身对微软整体营收的贡献而言,Azure 显然是更加厥功甚伟的。
于是,由 Bing 出发,利用 FPGA 来加速驱动 Azure 数据中心的想法最终在微软那里得到了认可。不过,在 Azure 首席架构师 Mark Russinovich 看来,Project Cataplut 具备解决问题的潜力,但其方式又与 Bing 本身的不同。他的团队需要在每个服务器上配置可编程芯片,然后将每个服务器连接到主要网络上,这样他们就能在数据流量到达服务器之前就开始处理了。
2014 年,来自微软、Amazon、哥伦比亚大学、Google 等单位的 23 位联合作者在IEEE发表了一篇题为《提升大型数据中心的可配置架构》(A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services)的长篇论文,该论文得到来自 Altera 和 Quanta 两家 FPGA 公司的技术支持;其中,上文中提到的 Andrew Putnam 和 Doug Burger 都是论文的作者之一,而包括陆奇、沈向洋在内的十余位微软高管也对该论文进行了支持。
在这篇论文中,来自微软研究院的 Project Catapult 被重点提到。文章表示,为了使得数据中心拥有传统服务器所不具备的能力,微软推出了一种可组合、可配置的新型架构,这种架构中的每个实例都拥有 48 个嵌入式的 Statix V FPGA(Statix 正是 Altera 旗下的品牌) 芯片,每个 FPGA 芯片都被嵌入到一台服务器中,通过 PCIe 接口相连接,然后在直接与其他 FPGA 通过 10Gb 的 SAS 线缆直接相连。
雷锋网注意到,这篇论文提到的实际案例依然是 Bing Web 搜索引擎,但它已经展示了将 FPGA 应用于大型的数据中心的可能性。
最终,在 Project Cataplut 的第三代原型中,FGPA 芯片位于每个服务器的边缘,能直接插入到网络,但仍旧保留了任何机器都可接入的 FPGA 池,增加了它的可扩展性。为此,FPGA 的研究者们需要重新设计硬件,最终的结果是,Project Catapult 硬件的成本只占了服务器中所有其他的配件总成本的 30%,需要的运转能量也只有不到 10%,但其却带来了 2 倍原先的处理速度。
于是,Azure 拥抱了 FPGA,Office 365 也是如此;Doug Burger 说,它们会驱动所有的微软服务。
2016 年的 AlphaGo 大战李世石,让 AI 这个词成为一个新的科技发展阶段的标签,甚至是新时代的标签。于是,在人工智能的热潮之下,AI 芯片这样的概念也随之而来,不过相对于微软、Google 这样的巨头已经在相关领域所作出的探索和努力而言,概念本身实在不足以囊括。
不过,在 Project Catapult 的基础之上,微软在这条路上走得越来越远。
2017 年的 HotChips 大会上,微软展示了 Project Brainwave,一个基于 FPGA 的低延迟深度学习云平台。微软官方测评显示,当使用 Intel(是时 Altera 已经被 Intel 收购)的 Stratix 10 FPGA,Brainwave 不需要任何 batching 就能在大型 GRU (gated recurrent unit)达到 39.5 Teraflops 的性能。
Project Brainwave 分为三层构件。首先是高性能、分布式的 FPGA 系统架构;在数据中心网络中直接加入 FPGA,可将此作为硬件微服务。 其实是将 DNN 处理单元整合入 FPGA。 最后,Project Brainwave 还支持流行深度学习框架的软件栈,比如说微软 Cognitive Toolkit 和 Google Tensorflow。
微软表示:
该系统为实时 AI 而设计——这意味着,它能以极低的延迟在接收数据后立刻处理请求。由于云基础设施需要处理实时数据流,不管是搜索请求、视频、传感器数据流还是用户交互,实时 AI 正在变得越来越重要。
可以看到,与 Project Cataplut 相比,Project Brainwave 在许多方面都更为出色,包括在运行速度、软硬件结合度和 AI 领域的契合程度。更重要的是,Project Brainwave 在设计之初就考虑到,它不仅要帮助 Bing 运行深度学习等复杂运算,也要通过 Azure 开放给外部开发者使用。
2018 年 5 月的 Bulid 大会上,微软宣布 Project Brainwave 开放预览。这种用于深层神经网络处理的架构可用于 Azure 与边缘环境。微软表示,Project Brainwave 能够让 Azure 成为实时运行人工智能最快的云平台,并且实现了与 Azure 机器学习的完全整合;它还支持 Intel 的 FPGA 硬件以及基于 ResNet50 的神经网络。 此外,Project Brainwave 面向 Azure Stack 和 Azure Data Box 的开发也在进行之中。
然而,连微软自己都承认,Project Brainwave 本质上是利用了 Project Cataplut 的成果而构建来的,这是一个前后相续的工程,只是在不同的发展阶段扮演了不同的角色。
只不过,从 Project Cataplut 到 Project Brainwave,前前后后已经过去了七八年的时间。
如果我们用 AI 芯片去界定微软在 Project Brainwave 甚至 Project Cataplut 上的作为,可以说是一件完全没毛病的事情;当然,微软在所谓的 AI 芯片领域做得更多,比如说还有面向 Hololens 的 HPU,不过已经是端侧 AI 的范畴了。
只不过在微软从事 AI 芯片相关工作已经成为既定事实的情况下,它在业界的相关动态其实没有必要捕风捉影地鼓噪一番了。本来就是一句话就能讲清楚的事:微软 Azure 部门还在招募芯片人才——结果又被强行吹成大新闻了。
相关文章: