《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 業(yè)界動態(tài) > FPGA在微軟數(shù)據(jù)中心的前世今生

FPGA在微軟數(shù)據(jù)中心的前世今生

2019-03-19
關(guān)鍵詞: 微軟 FPGA 騰訊

"2014年,微軟在計算機架構(gòu)領(lǐng)域的頂會ISCA上發(fā)表了一篇名為“A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services”的論文,詳細(xì)介紹了微軟Catapult項目團(tuán)隊如何在其數(shù)據(jù)中心里的1632臺服務(wù)器中部署了英特爾Stratix V FPGA,并用FPGA對必應(yīng)(Bing)搜索引擎的文件排名運算進(jìn)行了硬件加速,得到了高達(dá)95%的吞吐量提升。這篇文章一經(jīng)發(fā)表,立刻轟動了整個業(yè)界。它是第一篇真正意義上詳述由互聯(lián)網(wǎng)/軟件巨頭開發(fā)并部署FPGA的專業(yè)論文,標(biāo)志著FPGA第一次在互聯(lián)網(wǎng)/軟件公司的大型數(shù)據(jù)中心里得到實質(zhì)性應(yīng)用。同時也將微軟Catapult項目引入大眾的視野,告訴人們FPGA已不再僅僅是硬件公司的專屬產(chǎn)品,而是可以有效的應(yīng)用于像微軟這樣的互聯(lián)網(wǎng)公司,并有機會部署在谷歌、亞馬遜、臉書、阿里、百度、騰訊等其他互聯(lián)網(wǎng)巨頭遍布全球的成千上萬臺服務(wù)器中。"

Catapult項目的產(chǎn)生背景

微軟對FPGA在數(shù)據(jù)中心里應(yīng)用的研究起源于2010年底,當(dāng)時微軟正希望從一個基于PC軟件的公司,逐步轉(zhuǎn)型為提供各類互聯(lián)網(wǎng)服務(wù)的企業(yè)。Catapult項目的負(fù)責(zé)人Doug Burger認(rèn)識到,像微軟這種體量的互聯(lián)網(wǎng)巨頭不能只提供軟件層面的互聯(lián)網(wǎng)服務(wù),還要從根本上掌控最高效的網(wǎng)絡(luò)硬件設(shè)備。

17170946195662.jpg

隨著大數(shù)據(jù)時代的到來,包括人工智能在內(nèi)的各類新應(yīng)用不斷涌現(xiàn),網(wǎng)絡(luò)帶寬也由1Gbps不斷增長為10Gbps、40Gbps直至100Gbps甚至更高。此時,傳統(tǒng)的基于CPU的服務(wù)器和網(wǎng)絡(luò)設(shè)備已無法滿足日益增長的對計算量和網(wǎng)絡(luò)帶寬的需求。因此,尋找合適的網(wǎng)絡(luò)加速設(shè)備勢在必行。

雖然在很多微軟高管看來,微軟自研網(wǎng)絡(luò)硬件設(shè)備就好比“可口可樂宣布要做魚翅”,但Doug Burger還是得到了當(dāng)時擔(dān)任必應(yīng)(Bing)搜索引擎負(fù)責(zé)人陸奇的鼎力支持,并最終向時任微軟CEO鮑爾默及其繼任者納德拉展示了FPGA在加速數(shù)據(jù)中心實際應(yīng)用時的巨大潛力。2016年,微軟在計算機體系架構(gòu)頂會MICRO上發(fā)表了名為“A Cloud-Scale Acceleration Architecture”的論文,系統(tǒng)介紹了Catapult的新一代架構(gòu)和工作。至此,Catapult項目已經(jīng)歷三個階段。

單板多FPGA

在Catapult項目最初期,微軟采用了單板多FPGA的方案,即每塊加速卡上集成6片Xilinx Virtix-6 FPGA,各FPGA之間通過自身的通用I/O端口相連和通信。然而,這種大型加速卡在實際部署時遇到了很多問題,最主要的有以下三點:

1.靈活性極差。如果某種大型應(yīng)用需要多于6片F(xiàn)PGA,則無法用該方案實現(xiàn)。

2.同構(gòu)性極差。由于功耗、供電和尺寸限制,這種大型板卡很難直接部署在數(shù)據(jù)中心的高密度服務(wù)器上。

3.穩(wěn)定性不足。在這種大型板卡中,任何元件發(fā)生故障都有可能造成整個板卡的失效,繼而可能導(dǎo)致相關(guān)服務(wù)器和應(yīng)用的錯誤。

單板單FPGA

這個階段的工作是Catapult項目第一個代表性成果。與前一階段相比,加速卡架構(gòu)從單板多FPGA,變成了單板單FPGA的結(jié)構(gòu)。第二代FPGA架構(gòu)的主要特點是使用了Shell&Role結(jié)構(gòu)。

Catapult項目第二階段的最主要工作之一,是將Bing搜索引擎中原先超過3萬行C++代碼的文件排名運算,卸載到了FPGA上進(jìn)行硬件加速,并得到了驚人的結(jié)果。

下圖總結(jié)了這項工作最具代表性的結(jié)果,即使用FPGA后與純軟件方案的對比。其中,坐標(biāo)橫軸代表系統(tǒng)延時,縱軸代表吞吐量。由于純軟件方案已經(jīng)經(jīng)過了深度優(yōu)化,因此這個比較結(jié)果具有極高的說服力。

這個結(jié)果可以從兩個方面解讀:

當(dāng)系統(tǒng)延時相同的情況下,采用FPGA進(jìn)行硬件加速后吞吐量提升了接近一倍;

對于相同的吞吐量要求,采用FPGA后系統(tǒng)延時會下降29%。由此可見采用FPGA后,系統(tǒng)整體性能得到了大幅度提升。此外,每個FPGA帶來的額外功耗小于25W,相比原系統(tǒng)而言增加了不到10%,且總體成本的增加不超過30%。整個系統(tǒng)只有在部署初期發(fā)現(xiàn)了7塊板卡發(fā)生了硬件故障,占總板卡數(shù)量的0.4%。在之后幾個月的運行中,所有板卡都穩(wěn)定運轉(zhuǎn),足以證明FPGA系統(tǒng)的穩(wěn)定性。

FPGA資源池化

第二階段的工作最主要的問題是,為了實現(xiàn)FPGA之間的低延時通信,引入了一個6x8的二維Torus網(wǎng)絡(luò)。相比于傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)TOR交換機直連CPU的結(jié)構(gòu),這個Torus網(wǎng)絡(luò)相當(dāng)于在當(dāng)前數(shù)據(jù)中心網(wǎng)絡(luò)里額外增加了一個二層網(wǎng)絡(luò),而這個二層網(wǎng)絡(luò)在擴展性和同構(gòu)性方面帶來了很多問題。

為了解決問題,微軟在2016年發(fā)表了Catapult新一階段的工作,最主要的貢獻(xiàn)是取消了FPGA互連的第二級網(wǎng)絡(luò),直接將FPGA與數(shù)據(jù)中心網(wǎng)絡(luò)進(jìn)行互連。

和上一個版本相同,CPU可以通過PCIe訪問FPGA,并使用FPGA為各類計算任務(wù)進(jìn)行加速運算。除此之外,新版本的硬件布局還帶來了以下幾點好處:

1. FPGA可以被用來加速數(shù)據(jù)中心的各類網(wǎng)絡(luò)和存儲功能。

2. 微軟在自家數(shù)據(jù)中心的5670個服務(wù)器里部署了新一代的FPGA加速卡,遍布全球五大洲的15個國家。

為了實現(xiàn)對池化FPGA資源的統(tǒng)一管理和分配,微軟提出了一種硬件即服務(wù)(Hardware-as-a-Service)”的使用模型

性能方面,Catapult被正式部署在微軟的Azure云數(shù)據(jù)中心,并將必應(yīng)搜索引擎的頁面排序算法進(jìn)行了FPGA加速,對于給定的延時要求,相比于深度優(yōu)化后的軟件實現(xiàn),F(xiàn)PGA可以輕松達(dá)到2.25倍的吞吐量提升。

同時,微軟還對比測試了使用遠(yuǎn)程FPGA獲得的結(jié)果,使用遠(yuǎn)程FPGA與使用本地FPGA相比,并沒有明顯的性能差異。這證明了LTL協(xié)議與HaaS使用模型的有效性。

17171101680974.jpg

由此,Catapult第三階段的工作很好的解決了FPGA在大型數(shù)據(jù)中心里部署的靈活性和擴展性問題,為今后FPGA的大規(guī)模部署打下了堅實的基礎(chǔ)。在2017年,微軟推出了一款基于FPGA的深度學(xué)習(xí)加速平臺,名為“腦波(brainwave)”項目。腦波項目代表著FPGA在數(shù)據(jù)中心里的應(yīng)用正式擴展到人工智能領(lǐng)域。

結(jié)尾

微軟的Catapult項目可以稱作是FPGA在大型商業(yè)數(shù)據(jù)中心里進(jìn)行大規(guī)模部署和使用的開山之作,直至目前仍然也是這個領(lǐng)域最具代表性的工作。Catapult兼顧了學(xué)術(shù)創(chuàng)新和工程的實用性,這樣對于業(yè)界其他公司更具有直接的借鑒意義。在結(jié)果方面,微軟使用了自家已經(jīng)深度優(yōu)化的純軟件方案作為對比,使得FPGA取得的顯著性能提升更具可信度和說服力。

有趣的是,除了項目初期的原型驗證外,微軟均采用了Intel/Altera的FPGA芯片,微軟也一躍成為英特爾FPGA的最大客戶之一。有人曾斷言,那些年叱咤風(fēng)云的“Wintel”聯(lián)盟,在后PC時代終將土崩瓦解。然而,在風(fēng)起云涌的大數(shù)據(jù)和AI時代,伴隨著兩家公司的一步步華麗轉(zhuǎn)型,Wintel組合正通過FPGA再一次獲得新生。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。