可编程芯片可帮助微软简化其云服务


Project Catapult的电路板原型(来源:Clayton Cotterell for Wired)

Microsoft已宣布对其全球数据中心进行重大硬件升级。首先,有关提供Azure云服务的DC。新设备是数据中心的典型设备,芯片除外。这些是现场可编程门阵列(FPGA)可重编程门阵列。 FPGA本身并不是什么新鲜事物,但是它们在数据中心中的使用是Microsoft的一个新想法。据该公司称,可编程芯片将为实现各种软件算法提供硬件加速。

最初,该公司计划借助FPGA来优化其搜索服务Bing的操作。公司开发并开始实施项目的第一阶段,名称为弹射计划。作为该项目的一部分,在一些负责Bing的服务器中,将FPGA添加到了Altera的PCI卡(现在的Altera的所有者是Intel)中。根据该项目的作者,这应该可以改善搜索服务的排名算法的工作。事实证明,这种假设是正确的。与未修改硬件的服务器相比,修改后的服务器的性能显着提高。

进一步建议开发专用集成电路,其工作原理将等同于FPGA。微软已经为他们的Hololens视频眼镜开发了这种芯片。这大大降低了设备的功耗并提高了其性能。事实证明,此方法不适用于Bing团队。事实是搜索服务算法经常更改。而且,如果您开始开发适用于某些算法的芯片,那么在制造和引入这些芯片时,搜索算法将发生变化。这意味着芯片将变得无用(硬件锁定的典型示例)。

但是,由于试点项目总体上是成功的,所以他们决定在可提供公司其他服务的设备中使用FPGA。例如,Azure和Office365。在这种情况下,可以开发专用芯片而不必担心过时的情况。 Azure的主要问题根本不是算法,而是日益增加的网络带宽要求。


Microsoft在其Project Catapult项目中使用了类似的板,

Azure运行了大量的虚拟机。它们托管在数量有限的物理服务器上。该公司的数据中心使用Hyper-V虚拟机管理程序进行虚拟化。每个虚拟机都有一个或多个网络适配器,这些计算机通过这些适配器来接收和发送网络流量。系统管理程序管理连接到Azure网络基础结构的物理网络设备。将流量从虚拟设备重定向到真实设备,反之亦然,同时平衡设备负载平衡和管理流量路由需要大量资源。

Microsoft员工已提议在PCIe FPGA中添加。专家认为,FPGA应该直接与Azure网络基础结构一起使用,从而允许网络服务器直接发送和接收流量,而无需在主系统的网络接口上进行路由。

决定直接将PCIe接口连接到虚拟机,从而缩短了网络流量的路径。结果呢Azure虚拟机现在可在25 Gb / s的网络基础结构性能下运行,并且延迟仅为100毫秒。而且这是在不涉及服务器处理器的情况下实现的。

使用现代网卡可以解决相同的问题,该网卡可以以相同的方式直接与虚拟机一起工作,而绕过主机。但是在这种情况下有局限性。例如,每个卡只能与4个虚拟机同时工作。 FPGA提供的灵活性不在这里。借助FPGA,Microsoft可以根据当前需求更加积极地对芯片进行编程。结果,数据中心的整体性能提高了,设备的负载也减少了。所有指令均直接写在芯片上。如果您使用网卡,则在这种情况下,仍将涉及主机处理器,该主机处理器负责执行指令。

经过对此类系统的测试启动后,该公司对其有效性深信不疑,并决定在提供Azure的所有数据中心中进行部署。本周,该公司在Ignite会议上演示了其系统的操作。该公司的一名雇员展示了使用数千个FPGA转换英语维基百科中30亿个单词同步过程。只需十分之一秒即可处理数据。在这种情况下,系统性能达到每秒10 18次操作。

Source: https://habr.com/ru/post/zh-CN397969/


All Articles