FPGA资源池化
第二阶段的工作最主要的问题是,为了实现FPGA之间的低延时通信,引入了一个6x8的二维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再一次获得新生。