微软公司计划将可重复编程芯片引入其数据中心的内部网络,旨在显著提升自家Web应用程序的性能表现。
这项技术给Windows巨头留下了深刻印象,其认为可定制硬件最终也许能够带来较英特尔主机处理器更为强大的计算能力,从而填补现有服务器的性能缺失。而谷歌方面也在这方面作出自己的尝试,即在数据中心内使用非英特尔CPU。
在最近一篇题为《云规模加速架构》的论文当中,微软方面详尽描述了如何将现场可编程门阵列直接引入其自有网络,从而提升必应搜索查询的返回结果以及其它服务的性能表现。这篇论文日前已经在网络上正式发布,并被上周六召开的IEEE计算机协会第四十九次小规模架构研讨会所引用。
FPGA代表着可重新编程芯片,其中包含大量决策制定电路并可彼此连接以构成芯片内应用形式:大家可以将这些阵列理解为一大盒乐高积木,使用者能够根据需要随机将其拼凑成新的形态。不过与利用积木搭建起的毫无实际用处的空间站及海盗船不同,FPGA构建起的专用硬件能够高速处理数据,从而带来远高于通用型处理器的软件运行性能。
自2010年以来,微软方面一直在探索着FPGA的使用途径,而对应举措正是Catapult项目。就在上个月,微软公司正式宣布在其Azure云当中使用英特尔Altera FPGA芯片。
这些逻辑阵列位于主机服务器的一块子板之上,且拥有自己的独立内存容量。这些子板通过PCIe Gen-3接口与主机CPU实现对接。另外,其亦直接经由线缆利用一条400 Gbps QSFP连接同一台周边交换机对接,并经由主机服务器的传统网卡实现数据包的传入与传出。因此,FPGA实际上充当的是加速器角色,其能够对输入与输出该设备的数据进行直接操作。
微软公司的基本设计思路是将FPGA纳入输入请求与输出数据的直接通路,这意味着不再需要经由网卡将数据分流至FPGA,再通过内部系统总线接收返回结果。阵列能够自行处理任务,或者将信息传递给主机的英特尔x86处理器以进行必要操作。另外,FPGA还能够在传输过程中对数据执行更多附加操作。
举例来说,FPGA能够在数据触及运行于设备上的应用之前,对其进行加密与解密。
FPGA-CPU-网络设计基本示意图。图片来源:微软
微软方面指出,这一设计方案的结果在于,全部云服务皆借此实现了显著的延迟削减效果。“通过让FPGA与网络交换机直接通信,每套FPGA皆能够直接同数据中心内的其它FPGA经由网络实现通信,且无需涉及任何CPU软件,”微软公司的研究员们在其论文当中指出。
“这种灵活性意味着FPGA将能够组成为服务池。”
通过在必应网络搜索数据中心内使用这套方案,微软公司的研究员们发现各服务器如今能够更快地处理更高搜索查询负载,且需要的设备数量也得以降低。根据我们得到的消息,这一FPGA加速设计方案已经“在微软公司全球生产型数据中心内部进行大规模部署”。
微软公司的研究员们认为,FPGA集成设计在其它云计算平台之上亦将实现类似的效果,且适用范围包括Web应用程序乃至软件定义网络等本地云任务。
“利用这种可配置云设计,可重新配置逻辑将成为数据中心内的首选资源实现机制,并将随着时间推移而承载超越传统CPU的大部分数据中心计算任务,”微软公司总结称。
考虑到这一巨大的潜在价值,英特尔公司目前正在尝试于x86至强处理器当中内置FPGA。