"2014年,微软在核算机架构范畴的顶会ISCA上宣告了一篇名为“A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services”的论文,具体介绍了微软Catapult项目团队怎么在其数据中心里的1632台服务器中布置了英特尔StraTIx V FPGA,并用FPGA对必应(Bing)搜索引擎的文件排名运算进行了硬件加快,得到了高达95%的吞吐量提高。这篇文章一经宣告,马上轰动了整个业界。它是第一篇真实含义上胪陈由互联网/软件巨子开发并布置FPGA的专业论文,标志着FPGA第一次在互联网/软件公司的大型数据中心里得到实质性运用。一起也将微软Catapult项目引进群众的视界,告知人们FPGA已不再仅仅是硬件公司的专属产品,而是能够有用的运用于像微软这样的互联网公司,并有时机布置在谷歌、亚马逊、脸书、阿里、百度、腾讯等其他互联网巨子遍及全球的不计其数台服务器中。"
Catapult项目的产生布景
微软对FPGA在数据中心里运用的研讨起源于2010年末,其时微软正期望从一个根据PC软件的公司,逐渐转型为供给各类互联网服务的企业。Catapult项目的负责人Doug Burger认识到,像微软这种体量的互联网巨子不能只供给软件层面的互联网服务,还要从根本上掌控最高效的网络硬件设备。
跟着大数据年代的到来,包含人工智能在内的各类新运用不断涌现,网络带宽也由1Gbps不断添加为10Gbps、40Gbps直至100Gbps乃至更高。此刻,传统的根据CPU的服务器和网络设备已无法满意日益添加的对核算量和网络带宽的需求。因而,寻觅适宜的网络加快设备势在必行。
虽然在许多微软高管看来,微软自研网络硬件设备就比如“可口可乐宣告要做鱼翅”,但Doug Burger仍是得到了其时担任必应(Bing)搜索引擎负责人陆奇的鼎力支持,并终究向时任微软CEO鲍尔默及其继任者纳德拉展现了FPGA在加快数据中心实践运用时的巨大潜力。2016年,微软在核算机体系架构顶会MICRO上宣告了名为“A Cloud-Scale AcceleraTIon Architecture”的论文,体系介绍了Catapult的新一代架构和作业。至此,Catapult项目已阅历三个阶段。
单板多FPGA
在Catapult项目最初期,微软选用了单板多FPGA的计划,即每块加快卡上集成6片Xilinx VirTIx-6 FPGA,各FPGA之间经过本身的通用I/O端口相连和通讯。但是,这种大型加快卡在实践布置时遇到了许多问题,最首要的有以下三点:
1.灵活性极差。假如某种大型运用需求多于6片FPGA,则无法用该计划完成。
2.同构性极差。因为功耗、供电和尺度约束,这种大型板卡很难直接布置在数据中心的高密度服务器上。
3.安稳性缺乏。在这种大型板卡中,任何元件产生毛病都有或许形成整个板卡的失效,继而或许导致相关服务器和运用的过错。
单板单FPGA
这个阶段的作业是Catapult项目第一个代表性效果。与前一阶段比较,加快卡架构从单板多FPGA,变成了单板单FPGA的结构。第二代FPGA架构的首要特点是运用了Shell&Role结构。
Catapult项目第二阶段的最首要作业之一,是将Bing搜索引擎中原先超越3万行C++代码的文件排名运算,卸载到了FPGA上进行硬件加快,并得到了惊人的成果。
下图总结了这项作业最具代表性的成果,即运用FPGA后与纯软件计划的比照。其间,坐标横轴代表体系延时,纵轴代表吞吐量。因为纯软件计划现现已过了深度优化,因而这个比较成果具有极高的说服力。
这个成果能够从两个方面解读:
当体系延时相同的情况下,选用FPGA进行硬件加快后吞吐量提高了挨近一倍;
关于相同的吞吐量要求,选用FPGA后体系延时会下降29%。由此可见选用FPGA后,体系全体功用得到了大幅度提高。此外,每个FPGA带来的额定功耗小于25W,比较原体系而言添加了不到10%,且整体本钱的添加不超越30%。整个体系只要在布置初期发现了7块板卡产生了硬件毛病,占总板卡数量的0.4%。在之后几个月的作业中,一切板卡都安稳作业,足以证明FPGA体系的安稳性。
FPGA资源池化
第二阶段的作业最首要的问题是,为了完成FPGA之间的低延时通讯,引进了一个6×8的二维Torus网络。比较于传统数据中心网络TOR交换机直连CPU的结构,这个Torus网络相当于在当时数据中心网络里额定添加了一个二层网络,而这个二层网络在扩展性和同构性方面带来了许多问题。
为了处理问题,微软在2016年宣告了Catapult新一阶段的作业,最首要的奉献是取消了FPGA互连的第二级网络,直接将FPGA与数据中心网络进行互连。
和上一个版别相同,CPU能够经过PCIe拜访FPGA,并运用FPGA为各类核算使命进行加快运算。除此之外,新版别的硬件布局还带来了以下几点优点:
1. FPGA能够被用来加快数据中心的各类网络和存储功用。
2. 微软在自家数据中心的5670个服务器里布置了新一代的FPGA加快卡,遍及全球五大洲的15个国家。
为了完成对池化FPGA资源的统一管理和分配,微软提出了一种硬件即服务(Hardware-as-a-Service)”的运用模型
功用方面,Catapult被正式布置在微软的Azure云数据中心,并将必应搜索引擎的页面排序算法进行了FPGA加快,关于给定的延时要求,比较于深度优化后的软件完成,FPGA能够轻松到达2.25倍的吞吐量提高。
一起,微软还比照测试了运用长途FPGA取得的成果,运用长途FPGA与运用本地FPGA比较,并没有显着的功用差异。这证明了LTL协议与HaaS运用模型的有用性。
由此,Catapult第三阶段的作业很好的处理了FPGA在大型数据中心里布置的灵活性和扩展性问题,为往后FPGA的大规模布置打下了坚实的根底。在2017年,微软推出了一款根据FPGA的深度学习加快渠道,名为“脑波(brainwave)”项目。脑波项目代表着FPGA在数据中心里的运用正式扩展到人工智能范畴。
结束
微软的Catapult项目能够称作是FPGA在大型商业数据中心里进行大规模布置和运用的开山之作,直至现在依然也是这个范畴最具代表性的作业。Catapult统筹了学术创新和工程的实用性,这样关于业界其他公司更具有直接的学习含义。在成果方面,微软运用了自家现已深度优化的纯软件计划作为比照,使得FPGA取得的明显功用提高更具可信度和说服力。
风趣的是,除了项目初期的原型验证外,微软均选用了Intel/Altera的FPGA芯片,微软也一跃成为英特尔FPGA的最大客户之一。有人曾断语,那些年叱咤风云的“Wintel”联盟,在后PC年代终将分崩离析。但是,在如火如荼的大数据和AI年代,伴跟着两家公司的一步步富丽转型,Wintel组合正经过FPGA再一次取得重生。