"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之間的低延時通信,引入了一個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再一次獲得新生。
評論
查看更多