成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    AIoT 正文
    發私信給雷鋒專欄
    發送

    1

    智慧云中的FPGA

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

    雷鋒網按:本文來源 StarryHeavensAbove,作者 : 唐杉,雷鋒網授權轉載。

    人工智能大熱之前,Cloud或Data Center已經開始使用FPGA做各種加速了。而隨著Deep Learning的爆發,這種需求越來越強勁。本文主要討論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”網站,有一個Webinar視頻,介紹AWS的FPGA服務。本文將結合這兩個講座展開討論,以下分別簡稱MS和AWS。

    智慧云中的FPGA

    智能云對數據處理的需求

    智慧云中的FPGA

    從需求層面來看,云端智能對數據處理有了更高的要求,體現在巨大的規模,低時延和高吞吐率幾個方面。而從這幾個角度來說,FPGA都有自己獨特的優勢。

    智慧云中的FPGA

    AWS在云端部署FPGA所針對的應用主要包括:Real Time Video Processing,Financial Analysis, Genomic Research, Big Data Search and Analytics, and Seurity。這里雖然沒有專門提到AI和Deep Learning,但這些應用實際上也都和AI技術有關。而他們預期實現的目標如下:

    智慧云中的FPGA

    FPGA背景知識

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

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

    智慧云中的FPGA

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

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

    智慧云中的FPGA

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

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

    智慧云中的FPGA

    CPU可以看作是一種時間計算模型,指令順序進入,每條指令處理一定的數據。FPGA可以看作是空間計算模型,大量數據可以并行的進行處理。Deep Learning的處理,比如CNN的卷積運算,就是非常適合空間計算模型的例子。這一點我在之前的文章“深度神經網絡的模型·硬件聯合優化”中已有介紹。下面我們具體看看FPGA的內部結構。

    FPGA內部結構

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

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

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

    智慧云中的FPGA

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

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

    智慧云中的FPGA

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


    在云端部署FPGA

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

    智慧云中的FPGA

    由于FPGA應用往往都需要支持很大的數據吞吐量,這對于Memory帶寬和I/O互連帶寬要求很高。如果數據傳輸的帶寬受限,則FPGA提供的巨大的并行計算能力根本發揮不了作用。在云端部署FPGA的另一個重要挑戰是如何把FPGA的運算能力融合到云端的大規模彈性計算架構當中。

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


    MS Azure Catapult V2架構

    我們先看看MS的Catapult V2架構,如下圖:

    智慧云中的FPGA

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

    智慧云中的FPGA

    連接在一起的FPGA可以構成一個獨立的運算層。多個FPGA可以組合在一起實現不同的加速功能,比如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有如下優勢:

    智慧云中的FPGA

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

    智慧云中的FPGA

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

    智慧云中的FPGA

    不過,這些看起來不錯的設計和功能我們現在還用不了,只能等MS準備好公開發布的時候才能使用。所以,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云服務離我們更近。它的規格如下圖所示:

    智慧云中的FPGA

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

    智慧云中的FPGA

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

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

    智慧云中的FPGA

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

    目前,AWS似乎并沒提供專門針對Deep Learning Inferece的工具和硬件架構(比如前面MS提到的DNN Engine和相應的軟件工具)。因此,對于做相關工作的同學來說,還是必須自己設計在相應的軟硬件系統。


    阿里云和騰訊云

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

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

    規格族特點:

          采用 INTEL ARRIA 10 GX 1150 計算卡

          CPU 和 Memory 配比為 1:7.5

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

          高性能本地 SSD 盤存儲

          實例網絡性能與計算規格對應(規格越高網絡性能強)

          適用場景:

                 1.適用于深度學習推理

                 2.基因組學研究、金融分析

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

    智慧云中的FPGA

    其工具鏈使用Altera FPGA自家的工具,方法和AWS類似。而騰訊云公開的信息比較少,這里就不再討論了。

    總結:

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

    雷峰網特約稿件,未經授權禁止轉載。詳情見轉載須知

    分享:
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說