云棲大會(huì)浪潮發(fā)布FPGA加速方案演講全文

2017-10-16 09:22 來源:美通社 作者:Janet

10月11日, 2017阿里云棲大會(huì)在杭州云棲小鎮(zhèn)舉行,這次大會(huì)吸引了來自全球近5萬名嘉賓參會(huì),堪稱史上最強(qiáng)。作為阿里在數(shù)據(jù)中心與AI計(jì)算基礎(chǔ)設(shè)施的重要合作伙伴,浪潮在阿里展臺(tái)發(fā)布了基于F10A的AI線上推理、GZip算法與WebP圖片轉(zhuǎn)碼三大云場景FPGA加速方案,在擴(kuò)充FPGA生態(tài)的同時(shí),也將為從事AI開發(fā)與應(yīng)用的公司以及大型數(shù)據(jù)中心用戶,提供更高性能功耗比的專用加速芯片選擇。

以下為發(fā)布現(xiàn)場的演講實(shí)錄。

面向FAAS服務(wù)的FPGA加速卡

我們看到,應(yīng)用逐步向云環(huán)境遷移,2020年,預(yù)計(jì)65%-85%的應(yīng)用遷移到云環(huán)境中,對(duì)公有云、私有云和傳統(tǒng)云數(shù)據(jù)中心來說,公有云具有最高的負(fù)載密度和性價(jià)比,將成為云服務(wù)應(yīng)用的主流形態(tài)。

當(dāng)前一些以深度學(xué)習(xí)為代表的新興計(jì)算應(yīng)用給云數(shù)據(jù)中心和云服務(wù)帶來了重大挑戰(zhàn),異構(gòu)計(jì)算成為解決這一挑戰(zhàn)的關(guān)鍵要素,成為一種新常態(tài)。異構(gòu)計(jì)算云服務(wù)也給我們帶來一個(gè)新的盈利模式,對(duì)于云應(yīng)用租戶來說,感受的是時(shí)間,時(shí)間就是金錢。如果通過異構(gòu)加速,縮短服務(wù)所需的時(shí)間,可以節(jié)省很多的費(fèi)用支出。對(duì)于面向云應(yīng)用租戶提供SaaS服務(wù)的廠商來說,單位時(shí)間內(nèi)生產(chǎn)效率的提升可以給他們帶來更多的收益,也提升了他們的提供云服務(wù)的積極性。對(duì)于公有云廠商來說,一方面,通過異構(gòu)計(jì)算,可以顯著降低系統(tǒng)的能耗,節(jié)約成本,另一方面,異構(gòu)計(jì)算給云應(yīng)用租戶和SaaS服務(wù)商帶來更多的好處,使得大家更踴躍的參與,這將形成多贏的局面。對(duì)于異構(gòu)計(jì)算加速部件,可以有GPU、FPGA、ASIC或者以TPU為代表的專用加速器等多種選擇。其中,GPU使用最廣,生態(tài)系統(tǒng)最成熟,在深度學(xué)習(xí)方面取得了良好效果。

與CPU和GPU不同,F(xiàn)PGA是一種典型的非諾依曼架構(gòu),是硬件適配軟件的模式,它能夠根據(jù)系統(tǒng)資源和算法特征靈活的調(diào)整并行度,達(dá)到最優(yōu)的適配,因此能效比高于CPU和GPU。對(duì)于ASIC專用加速器來說,它們在專用算法的加速方面會(huì)有比較好的效果,但難以滿足云服務(wù)對(duì)計(jì)算部件具有廣泛適用性的需求。

以TPU為代表的各種PU們在深度學(xué)習(xí)加速方面取得了較好的效果,通常拿來與FPGA競爭、比較,這讓我們想起了20年前計(jì)算機(jī)體系結(jié)構(gòu)超標(biāo)量(Supersclar)和超長指令字(VLIW)之爭,超標(biāo)量架構(gòu)通過硬件發(fā)掘程序的并行性,但在4發(fā)射(4-issue)以上遇到了很大的困難,為了發(fā)掘程序的并行性并消除數(shù)據(jù)相關(guān)性和流水線沖突,付出了很大的硬件代價(jià),同時(shí)使得處理器的工作主頻難以提升。而超長指令字將程序并行性發(fā)掘任務(wù)交給了編譯器,同時(shí)簡化了數(shù)據(jù)相關(guān)性、流水線沖突處理單元設(shè)計(jì),以期望實(shí)現(xiàn)更高的工作主頻和更好的性能。但是理想很美好,現(xiàn)實(shí)很殘酷,編譯器很難從現(xiàn)有的編程模式下發(fā)掘更高的并行性。超長指令字并不能發(fā)揮,因此現(xiàn)在的主流CPU依然采用超標(biāo)量架構(gòu)。FPGA更像一種類似超標(biāo)量的架構(gòu),提升算法并行性的模式,對(duì)于TPU來說,其Tensorcore采用的脈動(dòng)陣列架構(gòu)處理方式,對(duì)數(shù)據(jù)復(fù)用性很敏感,對(duì)于像殘差神經(jīng)網(wǎng)絡(luò)(Resnet)這種小規(guī)模矩陣運(yùn)算(如1*1矩陣)效果存在折扣。另一方面,TPU類似于超長指令字架構(gòu),簡化了數(shù)據(jù)控制邏輯單元,需要通過框架優(yōu)化和編譯器優(yōu)化來發(fā)掘并行性,消除數(shù)據(jù)相關(guān)性,應(yīng)用場景受到限制,短時(shí)間內(nèi)難以滿足云服務(wù)通用性的要求。因?yàn)?,我們認(rèn)為,F(xiàn)PGA 是繼GPU之后,第二種具有更高能效比、更好通用性云服務(wù)加速部件。

其實(shí)FPGA不僅在計(jì)算的加速具有良好效果,其也可以應(yīng)用于數(shù)據(jù)中心存儲(chǔ)和網(wǎng)絡(luò)的加速,F(xiàn)PGA可為云服務(wù)計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)帶來綜合的提升。

FPGA作為一個(gè)加速卡,已經(jīng)有幾十年的歷史。但是在數(shù)據(jù)中心應(yīng)用有所不同,F(xiàn)PGA首先要提供云服務(wù),能夠滿足大規(guī)模部署和運(yùn)維的需求,滿足云服務(wù)的特性,包括遠(yuǎn)程監(jiān)控管理、在線動(dòng)靜態(tài)邏輯的重構(gòu),也需要支持各種虛擬機(jī)訪問以及支持各種驅(qū)動(dòng)兼容性,整個(gè)加速卡也需要有更高的RAS特性,這些在服務(wù)器里面,可能是比較通用的性質(zhì),但是先前的FPGA加速卡,并沒有這類應(yīng)用場景需求,也不具備這些特性,存在很大缺失。我們認(rèn)為,F(xiàn)PGA更重要的是一種FaaS(FPGAas a Service)服務(wù)。

在這里介紹一下浪潮研制的面向 FaaS(FPGA as a Service)服務(wù)的FPGA加速卡。它是業(yè)界功能密度最高的半高半長加速卡,它與其他卡的顯著不同之處在于在半高半寬的尺寸下支持雙DIMM模式,而不是內(nèi)存貼片。采用內(nèi)存貼片的方式,將會(huì)帶來較好的散熱效果,但內(nèi)存容量受限,同時(shí),現(xiàn)在內(nèi)存存在一些良率問題,采用貼片內(nèi)存就需要篩選,如果篩選不好的話,F(xiàn)PGA卡,可能如果發(fā)生內(nèi)存的故障,會(huì)不可修復(fù),可能會(huì)帶來FPGA里頭的通道,或者很大一塊(08:卡可能發(fā)成內(nèi)存故障,不可修復(fù),可能會(huì)帶來FPGA內(nèi)存訪問通道的缺失,或者一大塊內(nèi)存空間失效,影響整個(gè)板卡的使用,因?yàn)槔顺辈捎肈IMM的方式,并克服了DIMM方式帶來的一些問題,如信號(hào)完成性和散熱要求高要求。浪潮的FPGA卡每個(gè)DIMM最大可支持16GB,所以我們半高半長的板卡最大可以支持32GB內(nèi)存,比其他板卡高出一倍以上,它的峰值浮點(diǎn)性能可以達(dá)到1.5TFlops。浪潮作為服務(wù)器廠商,其FPGA加速卡不僅僅是一個(gè)板卡,而是將很多的服務(wù)器技術(shù)轉(zhuǎn)移至其中,構(gòu)建了一個(gè)支持FaaS服務(wù)的FPGA生態(tài)系統(tǒng)。

板卡能夠支持動(dòng)態(tài)邏輯的在線可重構(gòu)、靜態(tài)邏輯的遠(yuǎn)程更新,采用帶內(nèi)(CPU-PCIE-FPGA)帶外(BMC-SMBUS-CPLD)雙環(huán)監(jiān)控管理機(jī)制,大大提升了板卡遠(yuǎn)程監(jiān)控管理的可靠性,通過它們可以實(shí)時(shí)的監(jiān)控FPGA芯片的溫度、板卡風(fēng)扇轉(zhuǎn)速、板卡序列號(hào)、板卡內(nèi)存特性并可以調(diào)整FPGA的工作頻率。

同時(shí)也支持虛擬機(jī)的直接訪問,板卡本身也加入了很多RAS特性,如高可靠內(nèi)存訪問等。板卡支持并行(FPP)和串行(AS)雙加載模式,任何一種模式加載出現(xiàn)故障,都可以快速切換到另一種模式加載,保證了板卡大規(guī)模服務(wù)的可用性。

基于OpenCL高級(jí)語言的FPGA一體化解決方案

傳統(tǒng)的FPGA的開發(fā)類似于芯片的開發(fā),采用硬件描述(RTL)語言開發(fā),RTL開發(fā)帶來的問題就會(huì)像芯片設(shè)計(jì)一樣周期會(huì)比較長。一個(gè)典型的應(yīng)用開發(fā),我們首先要進(jìn)行架構(gòu)設(shè)計(jì),然后我們要寫算法的C模型,C模型做完驗(yàn)證之后,RTL工程師使用RTL語言改寫一遍,寫后需要仿真綜合,如果我們發(fā)現(xiàn)時(shí)序達(dá)不了標(biāo),可能要調(diào)整時(shí)序,甚至要推倒重來重新優(yōu)化設(shè)計(jì),時(shí)序達(dá)標(biāo)后,首先要跟C模型進(jìn)行聯(lián)合仿真驗(yàn)證,驗(yàn)證完畢還要上板卡進(jìn)行測試驗(yàn)證,板卡級(jí)的測試驗(yàn)證會(huì)有很多問題,尤其是人工開發(fā)引入的時(shí)序、時(shí)鐘問題,發(fā)現(xiàn)難驗(yàn)證難。因此,要開發(fā)一個(gè)大型應(yīng)用可能需要一年的時(shí)間。當(dāng)然,現(xiàn)在有一些HLS(HighLevel Synthsis)的工具,它可以把C模型直接翻譯成RTL模型,但是它的主要問題是開發(fā)不是特別友好,它僅僅把算法實(shí)現(xiàn)了,但是算法周邊,包括總線接口、訪存單元、驅(qū)動(dòng)、上層的調(diào)用都存在著空白需要額外開發(fā)。因?yàn)镽TL工程師僅僅把它當(dāng)成一個(gè)輔助的開發(fā)工具,整體開發(fā)時(shí)間并不能節(jié)省太多。

互聯(lián)網(wǎng)存在快速開發(fā)和迭代開發(fā)的特性,以滿足線上應(yīng)用快速變化的需求,RTL或HLS開發(fā)模式動(dòng)輒以半年或年為單位的開發(fā)周期難以滿足需求,迫切需要更高層次的開發(fā)模型。OpenCL高級(jí)語言開發(fā)方式為我們打開了一扇窗戶,它把底層的硬件如總線、IO接口、訪存控制器等和底層軟件如驅(qū)動(dòng)、函數(shù)調(diào)用等全部封裝在BSP中,變成標(biāo)準(zhǔn)單元提供上層支持。用戶只需要關(guān)注算法本身,OpenCL的開發(fā)的邏輯通過編譯工具直接映射到FPGA中,開發(fā)周期大大縮短,也符合互聯(lián)網(wǎng)應(yīng)用的需求。

Gzip數(shù)據(jù)壓縮

基于OpenCL語言浪潮開發(fā)了一些解決方案,下面我們講一些案例,以數(shù)據(jù)壓縮Gzip為例,存儲(chǔ)面臨的壓力遠(yuǎn)遠(yuǎn)高于計(jì)算,數(shù)據(jù)產(chǎn)生可以分為兩類,一類是人類產(chǎn)生的數(shù)據(jù),比方說,文本、圖片和視頻等,它的特點(diǎn)是隨機(jī)性高、重復(fù)率低,另一類是機(jī)器產(chǎn)生的數(shù)據(jù),包括交易記錄、編譯報(bào)告和日志等,這類的數(shù)據(jù)其實(shí)比我們?nèi)祟惍a(chǎn)生的要多的多,它的特點(diǎn)是隨機(jī)性比較低,重復(fù)率非常高。對(duì)于壓縮來說,怎么樣把各類數(shù)據(jù)都進(jìn)行很好的壓縮,是個(gè)很大的挑戰(zhàn)。

對(duì)于FPGA壓縮方案業(yè)內(nèi)通用的是一種簡化方案,它把Gzip最重要的兩個(gè)部件LZ77壓縮、Huffman并行執(zhí)行,犧牲了壓縮率,不兼容Gzip標(biāo)準(zhǔn)算法。

針對(duì)這些問題,浪潮推出了完全兼容Gzip標(biāo)準(zhǔn)的FPGA壓縮算法,并且提供兩種方案,一種是高性能的(High Performance)的方案,另一種是高壓縮率的方案。數(shù)據(jù)對(duì)比表明,采用簡化方案雖然性能可以達(dá)到2.5GB每秒,但壓縮率只有45%,浪潮的高性能方案和高壓縮率方案性能可以到1-1.5GB每秒,壓縮率可達(dá)25%-28%,比簡化方案提升了50%以上。    另外,在機(jī)器產(chǎn)生的日志文件壓縮中效果更加明顯,壓縮率能到5%,而簡化的方案只能到26%-27%左右,浪潮的方案提升了5倍,這是非常顯著的一個(gè)數(shù)據(jù),因?yàn)楝F(xiàn)在很多互聯(lián)網(wǎng)廠商,他們每天的日志文件,都是TB級(jí)的,所以減少5倍存儲(chǔ)開銷是非??捎^的數(shù)字。

與CPU軟件方案相比,在文本上面壓縮上與其接近,在日志文件壓縮上與其差距不大,但性能提升了10-20倍。現(xiàn)在最快的SSD數(shù)據(jù)寫入速度大約在1GB每秒左右,浪潮FPGA加速方案可以實(shí)現(xiàn)實(shí)時(shí)壓縮和存儲(chǔ)。  

圖片轉(zhuǎn)碼FPGA加速

WebP是谷歌提出的一種圖片編碼格式,它能夠在保證圖象質(zhì)量的同時(shí),進(jìn)一步壓縮圖片存儲(chǔ)空間,比PNG、JPG、GIF格式有25%-60%的存儲(chǔ)空間減少。對(duì)于數(shù)據(jù)中心來說,網(wǎng)絡(luò)帶寬其實(shí)是很大的一塊運(yùn)營成本。谷歌的數(shù)據(jù)表明,Webp格式可減少33%的網(wǎng)頁傳輸時(shí)間,同時(shí)整體加載時(shí)間可以減少10%。騰訊的數(shù)據(jù)表明,采用Webp格式,其新聞客戶端、QQ空間等,流量峰值帶寬降低9GB,圖片延時(shí)和數(shù)據(jù)下載延時(shí)降低100ms。因此采用WebP的方式不僅僅能夠數(shù)據(jù)每天節(jié)省TB級(jí)的數(shù)據(jù)存儲(chǔ)空間,同時(shí)也能有效降低網(wǎng)絡(luò)帶寬的開銷,從而降低整個(gè)數(shù)據(jù)中心的運(yùn)營成本。從VGA(640*480)到4K高清各種尺度下的測試表明,浪潮FPGA的WebP編碼性能可提升10倍以上。

深度學(xué)習(xí)

浪潮FPGA在深度學(xué)習(xí)線上推理應(yīng)用也做了很多嘗試。首先是AlexNet深度學(xué)習(xí)網(wǎng)絡(luò),單機(jī)單卡性能可達(dá)到848楨每秒的線上識(shí)別率。我們也嘗試單機(jī)雙卡、三卡到四卡性能加速,在單機(jī)四卡情況下,可達(dá)到2971幀每秒的線上識(shí)別率。而且,從單機(jī)到單卡到四卡,它們的性能提升線性度非常好。

另外,我們也構(gòu)建了兩種殘差深度學(xué)習(xí)網(wǎng)絡(luò)加速模型,一種是采用CIFAR-10的57層神經(jīng)網(wǎng)絡(luò),另一種采用ImageNet數(shù)據(jù)集的50層神經(jīng)網(wǎng)絡(luò)。浪潮作為一家服務(wù)器廠商,可以提供包含F(xiàn)PGA板卡、BSP和驅(qū)動(dòng)、IP算法,同時(shí)可以集成在我們的服務(wù)器中給客戶提供一體化的解決方案。

云棲大會(huì) 浪潮 FPGA加速方案

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門