丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
AIoT 正文
發(fā)私信給雷鋒專欄
發(fā)送

1

智慧云中的FPGA

本文作者: 雷鋒專欄 2017-06-27 17:53
導(dǎo)語:本文簡單分析了一下Amazon和Microsoft在Cloud中使用FPGA加速的實現(xiàn)方法。

雷鋒網(wǎng)按:本文來源 StarryHeavensAbove,作者 : 唐杉,雷鋒網(wǎng)授權(quán)轉(zhuǎn)載。

人工智能大熱之前,Cloud或Data Center已經(jīng)開始使用FPGA做各種加速了。而隨著Deep Learning的爆發(fā),這種需求越來越強勁。本文主要討論Cloud巨頭Amazon和Microsoft的FPGA策略。

在Microsoft Build 2017大會上,微軟Azure云計算平臺CTO Mark Russinovich做了一個名為 “Inside Microsoft's FPGA-Based Configurable Cloud”的演講,介紹了Azure平臺中使用FPGA的情況(大家可以點擊文末的閱讀原文收看視頻);另外,在Amazon的“Amazon EC2 F1 Instances”網(wǎng)站,有一個Webinar視頻,介紹AWS的FPGA服務(wù)。本文將結(jié)合這兩個講座展開討論,以下分別簡稱MS和AWS。

智慧云中的FPGA

智能云對數(shù)據(jù)處理的需求

智慧云中的FPGA

從需求層面來看,云端智能對數(shù)據(jù)處理有了更高的要求,體現(xiàn)在巨大的規(guī)模,低時延和高吞吐率幾個方面。而從這幾個角度來說,F(xiàn)PGA都有自己獨特的優(yōu)勢。

智慧云中的FPGA

AWS在云端部署FPGA所針對的應(yīng)用主要包括:Real Time Video Processing,F(xiàn)inancial Analysis, Genomic Research, Big Data Search and Analytics, and Seurity。這里雖然沒有專門提到AI和Deep Learning,但這些應(yīng)用實際上也都和AI技術(shù)有關(guān)。而他們預(yù)期實現(xiàn)的目標(biāo)如下:

智慧云中的FPGA

FPGA背景知識

FPGA全稱是“可編輯門陣列”(Field Programmable Gate Array),其基本原理是在芯片內(nèi)集成大量的數(shù)字電路基本門電路,存儲器以及互連線資源,而用戶可以通過對FPGA進行“編程”(燒寫配置文件)來定義這些門電路的功能以及模塊之間的連線。這種“編程”不是一次性的,你可以把FPGA設(shè)計成一個編解碼器,只要更改配置文件,就可以變成一個CPU,這也是所謂的re-Configurable的概念。當(dāng)然,F(xiàn)PGA在給我們提供了隨意實現(xiàn)硬件電路的靈活性的同時,也要求設(shè)計者具有硬件設(shè)計的知識和能力。這一點和CPU,GPU的軟件編程方法有很大的差別,或者說是有更高的應(yīng)用門檻。

目前主要的FPGA芯片廠商是Xilinx和Intel(Altera),AWS主要使用Xilinx的FPGA,MS則使用Intel的FPGA。在具體看FPGA的內(nèi)部結(jié)構(gòu)之前,我們還是通過對比來看看它的特點。

智慧云中的FPGA

其實最近這種對比很多,我之前的文章也提到過。MS把CPU,GPU,F(xiàn)PGA和ASIC放在Flexibility VS Efficiency的角度進行對比,這個也是我們經(jīng)常使用的方法。再次強調(diào),靈活性(通用性)一定意味著效率的損失,反之亦然。

另外,在MS的圖中可以看出,他們認為FPGA主要還是用在Evaluation(或者我們經(jīng)常說的Inference)。而有趣的是,他們認為ASIC方案在Training和Evaluation中都還是“under investigation”,好像把Google的TPU給忘了。

智慧云中的FPGA

AWS給出了另外一個視角的比較,CPU為了實現(xiàn)最大的靈活和通用,芯片中的很大一部分芯片面積用來提供控制功能(也包括復(fù)雜的存儲架構(gòu),比如Cache);而在GPU當(dāng)中,用作運算的芯片面積比例大大提高,能夠支持大規(guī)模的并行處理;而到了FPGA,已經(jīng)沒有預(yù)先定義的指令集概念,也沒有確定的數(shù)據(jù)位寬。這些你都可以根據(jù)應(yīng)用來自己設(shè)計。你可以設(shè)計一個只支持幾條指令的處理器;也可以只設(shè)計數(shù)據(jù)通道和簡單的控制邏輯,根本不用指令。

下圖來自MS的講座,對比了CPU和FPGA進行數(shù)據(jù)處理的特點。

智慧云中的FPGA

CPU可以看作是一種時間計算模型,指令順序進入,每條指令處理一定的數(shù)據(jù)。FPGA可以看作是空間計算模型,大量數(shù)據(jù)可以并行的進行處理。Deep Learning的處理,比如CNN的卷積運算,就是非常適合空間計算模型的例子。這一點我在之前的文章“深度神經(jīng)網(wǎng)絡(luò)的模型·硬件聯(lián)合優(yōu)化”中已有介紹。下面我們具體看看FPGA的內(nèi)部結(jié)構(gòu)。

FPGA內(nèi)部結(jié)構(gòu)

FPGA中幾個比較重要的基本模塊包括(按照Xilinx的說法):

CLB(Configurable Logic Block):FPGA最基本的組成單元,可以實現(xiàn)基本的組合邏輯和時序電路。其中,LUT(Lookup Tables)是實現(xiàn)組合邏輯的部分,可以實現(xiàn)n個輸入的任意組合邏輯運算(不同型號的FPGA有所不同,下圖的例子中為6個輸入)。而在CLB的輸出位置,還有一個寄存器,提供時序電路的功能。

DSP Slice:是比CLB粒度更粗的運算單元,直接實現(xiàn)乘法,累加等功能。它比較類似與我們在DSP處理器中使用的MAC單元,如下圖所示:

智慧云中的FPGA

此外,一般FPGA中還提供片上Memory模塊(Block RAM,UltraRAM),各種高速接口,IP和很多輔助電路。根據(jù)應(yīng)用需求不同,有的型號的FPGA本身也是一個SoC,還集成了處理器核(比如ARM),甚至視頻編解碼等功能。

下表中列出的Xilinx Virtex UltraScale+ FPGA系列的具體參數(shù)。后面要介紹的AWS F1 instance用的就是VU9P。

智慧云中的FPGA

在這里,我們觀察CLB Flip-Flops,CLB LUT和DSP Slices的數(shù)量,以及memory的數(shù)量,基本就可以了解該FPGA的規(guī)模,也就是在這個FPGA上可以實現(xiàn)多大規(guī)模的數(shù)字電路。


在云端部署FPGA

首先,作為加速功能,F(xiàn)PGA需要配合Host CPU來工作。比如在下圖中,一個應(yīng)用中有一個濾波器功能,需要大量的運算,比較合適放到FPGA來處理;而其它部分功能,主要和控制相關(guān),則放在CPU來運行。

智慧云中的FPGA

由于FPGA應(yīng)用往往都需要支持很大的數(shù)據(jù)吞吐量,這對于Memory帶寬和I/O互連帶寬要求很高。如果數(shù)據(jù)傳輸?shù)膸捠芟蓿瑒tFPGA提供的巨大的并行計算能力根本發(fā)揮不了作用。在云端部署FPGA的另一個重要挑戰(zhàn)是如何把FPGA的運算能力融合到云端的大規(guī)模彈性計算架構(gòu)當(dāng)中。

下面我們就分別看看MS和AWS的FPGA部署情況。值得注意的是,目前MS的Azure中的FPGA主要還是內(nèi)部使用,并沒有作為一項公有的服務(wù);而AWS則已經(jīng)提供了EC2 F1 實例(instance)的FPGA服務(wù)了。


MS Azure Catapult V2架構(gòu)

我們先看看MS的Catapult V2架構(gòu),如下圖:

智慧云中的FPGA

在一塊Catapult V2的板卡上,有一顆Altera Stratix FPGA和本地的DRAM,這塊卡上有三個和外部連接的接口,一個PCIe,兩個QSFP。這種架構(gòu)中,F(xiàn)PGA和WCS Server Blade的連接非常靈活,同時也支持很大的吞吐率。FPGA可以支持對網(wǎng)絡(luò)應(yīng)用(從NIC到Switch的channel),存儲應(yīng)用(CPU到Switch的channel)以及運算應(yīng)用(CPU和FPGA)的加速。而這種架構(gòu)也具有高度的伸縮性,如下圖所示。

智慧云中的FPGA

連接在一起的FPGA可以構(gòu)成一個獨立的運算層。多個FPGA可以組合在一起實現(xiàn)不同的加速功能,比如Deep neural network,Web search ranking,SQL,SDN offload等等。

MS還提出一個HW Microservices的概念:“A hardware-only self-contained service that can be distributed and accessed from across the datacenter compute fabric”。使用這個Microservices有如下優(yōu)勢:

智慧云中的FPGA

總的來說,就是有更多的靈活性,可以更有效的分享和利用FPGA資源。而針對DNN應(yīng)用,MS也提出了一個專門的架構(gòu)。首先,在FPGA上提供DNN Engine,包括了Neural FU(數(shù)據(jù)通道)和Instruction Decoder&control(控制面功能)。而多個FPGA可以部署為一個大規(guī)模的HW microservices,實現(xiàn)分布式處理。

智慧云中的FPGA

而相應(yīng)的,MS正在研發(fā)一套“編譯”工具,可以把在常見的Deep Learning Framework中訓(xùn)練好的model自動部署到一個或多個FPGA(也包括GPU,CPU)中。

智慧云中的FPGA

不過,這些看起來不錯的設(shè)計和功能我們現(xiàn)在還用不了,只能等MS準(zhǔn)備好公開發(fā)布的時候才能使用。所以,Mark Russinovich最后說,“We look forward to eventually making this available to you, a major step toward democratizing AI with the power of FPGA”。希望這個時間不會太遠吧。


AWS F1 Instance

相對而言,AWS的FPGA云服務(wù)離我們更近。它的規(guī)格如下圖所示:

智慧云中的FPGA

其中f1.16xlarge由8個FPGA組成,配合64個vCPUs,接近1T的Memory,規(guī)模相當(dāng)大。其中每個FPGA連接4個DDR。FPGA之間則有兩種互連方式,第一種是FPGA Link,這是一種雙向環(huán)狀連接,用于支持Streaming方式串聯(lián)多個FPGA的應(yīng)用;另一種是FPGA Direct,這是點到點的PCIe鏈路,可以從一個FPGA連接到任意一個其它FPGA。另外,為了簡化FPGA I/O的設(shè)計,AWS還提出FPGA Shell的概念。如下圖所示:

智慧云中的FPGA

這里Shell的概念我看的不是很清楚,感覺就是把FPGA的I/O封裝起來了。FPGA的內(nèi)部邏輯通過AXI4接口和Shell連接,Shell提供對外的PCIe和一個DDR接口;而前面提到的FPGA Link(FPGA間互連)和其它三個DDR接口好像還是在Core Logic中的。如果我看的不對,還請指正。

AWS F1的開發(fā)流程和使用的工具如下圖所示:

智慧云中的FPGA

這個流程和我們常見的FPGA開發(fā)流程類似。不過還是需要使用FPGA Developer AMI(AWS提供的工具image)和Hardware Developer Kit(HDK),最終需要生成Amazon FPGA Image(AFI)。FPGA設(shè)計和實現(xiàn)工具使用的就是Xilinx自家的工具Vivado。

目前,AWS似乎并沒提供專門針對Deep Learning Inferece的工具和硬件架構(gòu)(比如前面MS提到的DNN Engine和相應(yīng)的軟件工具)。因此,對于做相關(guān)工作的同學(xué)來說,還是必須自己設(shè)計在相應(yīng)的軟硬件系統(tǒng)。


阿里云和騰訊云

最后,我們看看國內(nèi)的玩家。目前阿里云和騰訊云也都推出了FPGA服務(wù),不過都在申請試用階段。其中,阿里云的F1實例已經(jīng)有比較清楚的Spec和工具鏈的介紹:

FPGA 計算型實例規(guī)格族(f1)

規(guī)格族特點:

      采用 INTEL ARRIA 10 GX 1150 計算卡

      CPU 和 Memory 配比為 1:7.5

      處理器:2.5 GHz 主頻的 Intel Xeon E5-2682 v4 (Broadwell)

      高性能本地 SSD 盤存儲

      實例網(wǎng)絡(luò)性能與計算規(guī)格對應(yīng)(規(guī)格越高網(wǎng)絡(luò)性能強)

      適用場景:

             1.適用于深度學(xué)習(xí)推理

             2.基因組學(xué)研究、金融分析

             3.時視頻處理及安全等計算工作負載

智慧云中的FPGA

其工具鏈?zhǔn)褂肁ltera FPGA自家的工具,方法和AWS類似。而騰訊云公開的信息比較少,這里就不再討論了。

總結(jié):

本文簡單分析了一下Amazon和Microsoft在Cloud中使用FPGA加速的實現(xiàn)方法。相比Google的TPU(ASIC)針對Deep Learning的設(shè)計,F(xiàn)PGA雖然在效率上有差距,但在靈活性方面有自己的優(yōu)勢。不管是在AWS和Azure中,F(xiàn)PGA可以更廣泛用于不同的加速任務(wù)當(dāng)中。如果能夠配合更好的開發(fā)環(huán)境,形成完整的生態(tài),相信未來它在云端會有更大的發(fā)展空間。

雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:

編輯

雷鋒專欄賬號,關(guān)注技術(shù)科普&行業(yè)深度分析!
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說