微軟公司計劃將可重復編程芯片引入其數據中心的內部網絡,旨在顯著提升自家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。