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

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

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

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

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

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

17170946195662.jpg

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

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

單板多FPGA

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

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

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

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

單板單FPGA

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

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

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

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

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

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

FPGA資源池化

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

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

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

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

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

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

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

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

17171101680974.jpg

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

結(jié)尾

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

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


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