<li id="wkceg"></li>
<rt id="wkceg"><delect id="wkceg"></delect></rt>
<bdo id="wkceg"></bdo>
<strike id="wkceg"><acronym id="wkceg"></acronym></strike>

  • 帳號(hào):
    密碼:
    智動(dòng)化 / 文章 /

    使用Alveo 加速器卡加速DNN
    [作者 Xilinx]   2019年01月24日 星期四 瀏覽人次: [12678]


    Xilinx 深度神經(jīng)網(wǎng)路(xDNN)引擎使用 Xilinx Alveo資料中心加速器卡提供高效能、低延遲的 DNN 加速。通過(guò)保持較低能源成本以及最大限度地減少運(yùn)行過(guò)程中所需的特定加速器的數(shù)量,可以顯著降低總體擁有成本。本文概述 xDNN 硬體架構(gòu)和軟體堆疊,以及支援高能效推論聲明的基準(zhǔn)資料,幫助讀者實(shí)現(xiàn)Alveo資料中心加速器卡上的結(jié)果再創(chuàng)造。


    資料中心應(yīng)用的深度學(xué)習(xí)關(guān)聯(lián)性

    在過(guò)去幾年中,深度學(xué)習(xí)方法在各種應(yīng)用領(lǐng)域均取得了巨大成功。應(yīng)用機(jī)器學(xué)習(xí)(ML)的一個(gè)領(lǐng)域是視覺(jué)和視訊處理。互聯(lián)網(wǎng)上的視訊內(nèi)容在過(guò)去幾年中也迅速增長(zhǎng),對(duì)圖像整理、分類和辨識(shí)方法的需求也相應(yīng)增長(zhǎng)。


    卷積神經(jīng)網(wǎng)路(CNN)是ML神經(jīng)網(wǎng)路的一種,其一直是處理圖像資料的有效方法,尤其是在資料中心部署的背景下。CNN圖像網(wǎng)路可用於對(duì)雲(yún)端中的圖像進(jìn)行分類和分析。在許多情況下,影像處理的延遲對(duì)最終應(yīng)用至關(guān)重要,例如標(biāo)記流視訊中的非法內(nèi)容。


    賽靈思深度神經(jīng)網(wǎng)路(xDNN)引擎是一款可編程推論處理器,其能夠在賽靈思Alveo 加速器卡上運(yùn)行低延遲、高能效的推論。xDNN推論處理器通用CNN 引擎,支援各種標(biāo)準(zhǔn)的CNN 網(wǎng)路。


    xDNN引擎通過(guò)xfDNN軟體堆疊整合到諸如Caffe、MxNet和TensorFlow等ML框架中。在Alveo加速器卡上運(yùn)行的xDNN處理引擎,能夠以每秒GoogLeNet v1傳輸率4,000或更多圖像的速度進(jìn)行處理,意味著在Batch = 1時(shí)超過(guò)70%的運(yùn)算效率。


    正如該運(yùn)算效率所述,運(yùn)行在賽靈思 Alveo 加速器卡上的 xDNN,在落實(shí)低延遲推論方面優(yōu)於 GPU 等加速平臺(tái)。眾所周知,GPU 平臺(tái)能夠通過(guò)同時(shí)批次處理多個(gè)圖像來(lái)提高其效能;然而,雖然批次處理可以提高效能並減少所需的 GPU 記憶體頻寬,但批次處理的副作用是延遲顯著增加。


    相比之下,xDNN處理引擎不依賴於批次處理來(lái)達(dá)到最大化的傳輸率效能。而是每個(gè)引擎獨(dú)立運(yùn)行,並且不共用權(quán)重記憶體。每個(gè)引擎在Batch = 1下運(yùn)行,並且可以在單個(gè)Alveo加速器卡上實(shí)現(xiàn)多個(gè)引擎。因此,增加元件中 xDNN 引擎的數(shù)量?jī)H增加了聚合元件 Batch = 1 的傳輸率。


    xDNN架構(gòu)概覽

    xDNN硬體架構(gòu)如圖1所示。每個(gè)xDNN引擎由一個(gè)脈動(dòng)陣列、指令記憶體、執(zhí)行控制器和元素級(jí)處理單元組成。引擎通過(guò)指令佇列從在主處理器上執(zhí)行的命令軟體接收張量指令。僅當(dāng)目標(biāo)網(wǎng)路改變時(shí),CNN網(wǎng)路的指令(張量和記憶體操作)才改變。重複執(zhí)行相同的網(wǎng)路,會(huì)重複使用先前載入的駐留在指令緩衝器中的指令。



    圖1 : xDNN 硬體架構(gòu)
    圖1 : xDNN 硬體架構(gòu)

    xDNN 處理引擎架構(gòu)亮點(diǎn)

    ? 雙模式:傳輸率最佳化或延遲最佳化


    ? 命令級(jí)並存執(zhí)行


    ? 硬體輔助圖像分塊


    ? 客製層支援(異質(zhì)執(zhí)行)


    ? 脈動(dòng)陣列架構(gòu)


    傳輸率和延遲最佳化模式

    xDNN處理引擎的架構(gòu)特性之一是包括兩種操作模式,一種用於傳輸率最佳化,另一種用於延遲最佳化。在傳輸率最佳化模式中,通過(guò)創(chuàng)建最佳化的處理引擎(PE)來(lái)利用資料流程並行性,以處理低效映射到一般脈動(dòng)陣列的特定層。


    例如,GoogLeNet v1的第一層是RGB層,占整體運(yùn)算開(kāi)銷的近10%,不能有效地映射到有效運(yùn)算網(wǎng)路其餘部分的脈動(dòng)陣列。在此傳輸率最佳化模式中,xDNNv3 包括為三個(gè)輸入通道定制的其他脈動(dòng)陣列。這種變化的網(wǎng)路效應(yīng)是更高的整體運(yùn)算效率,因?yàn)榭梢栽谙惹皥D像卷積和 FC 層完成其各自的處理的同時(shí),運(yùn)算下一圖像的第一層。


    對(duì)於需要最低單圖像延遲的應(yīng)用,使用者可以選擇部署延遲最佳化版本的引擎。對(duì)於這些應(yīng)用,可以調(diào)整 xDNN PE 管線以減少延遲。


    命令級(jí)並存執(zhí)行

    xDNN 處理引擎為每種類型的命令(下載、Conv、池化、元素級(jí)和上傳)提供專用的執(zhí)行路徑。如果網(wǎng)路圖允許,則允許卷積命令與其他命令並行運(yùn)行。某些網(wǎng)路圖具有不同指令類型的並行分支,有時(shí)允許並行處理。例如,在 GoogLeNet v1 inception 模組中,3 x 3 最大池化層是一個(gè)層的主要實(shí)例,該層可以使用 xDNN 處理引擎與其他 1x1/3x3/5 x 5 卷積並行運(yùn)行,圖2 顯示了 GoogLeNet v1 網(wǎng)路的 inception 模組。



    圖2 :  GoogLeNet v1 中的 Inception 層
    圖2 : GoogLeNet v1 中的 Inception 層

    如圖3 所示,軟體可以與第二個(gè)分支的 3 x 3 卷積並行地調(diào)度 3 x 3 最大池化。



    圖3 : GoogLeNet v1 中 Inception 層的 xDNN 調(diào)度
    圖3 : GoogLeNet v1 中 Inception 層的 xDNN 調(diào)度

    硬體輔助圖像分塊

    xDNN 處理引擎具有內(nèi)置的硬體輔助圖像分塊功能,用來(lái)支援具有大圖像/啟動(dòng)大小的網(wǎng)路。xDNN 處理引擎允許跨寬度和高度的輸入特性映射分塊。如圖4所示。



    圖4 : 硬體輔助圖像分塊功能
    圖4 : 硬體輔助圖像分塊功能

    硬體輔助圖像分塊採(cǎi)用單個(gè)非資料移動(dòng)指令(Conv、Pool、EW)並生成正確的微操作序列(下載、操作、上傳)。通過(guò)將啟動(dòng)記憶體邏輯分區(qū)為兩個(gè)區(qū)域(如雙緩衝區(qū)),微操作在硬體中完全實(shí)現(xiàn)管線化。


    通過(guò)異質(zhì)執(zhí)行客製網(wǎng)路支援

    儘管 xDNN 處理引擎支援廣泛的 CNN 操作,但新的客製網(wǎng)路仍在不斷開(kāi)發(fā)中 - 有時(shí),F(xiàn)PGA 中的引擎可能不支援選擇層/指令。由 xfDNN 編譯器來(lái)辨識(shí) xDNN 處理引擎中不受支援的網(wǎng)路層,並且可以在 CPU 上執(zhí)行。


    這些不受支援的層可以位於網(wǎng)路的任何部分 - 開(kāi)始、中間、結(jié)束或分支中。圖5顯示了編譯器如何將處理劃分到 xDNN 處理引擎甚至 CPU 中的各種 PE 上



    圖5 : 由編譯器分區(qū)的處理
    圖5 : 由編譯器分區(qū)的處理

    脈動(dòng)陣列架構(gòu)

    xDNN處理引擎利用諸如“SuperTile”論文(1)中描述的技術(shù)來(lái)達(dá)到高工作頻率。這個(gè)SuperTile DSP 巨集提供了一個(gè)關(guān)係放置的宏,其可以進(jìn)行分塊以構(gòu)建更大的運(yùn)算陣列,例如矩陣乘法和卷積,這是 CNN 運(yùn)算最為密集的操作。


    圖 6 顯示了映射到FPGA中的DSP48和CLB-M(LUTRAM)分塊的邏輯處理元件的實(shí)例。該巨集單元是 xDNN 脈動(dòng)陣列中的基本處理單元。



    圖6 : DSP 宏實(shí)例中的 MAC 和權(quán)重包裝
    圖6 : DSP 宏實(shí)例中的 MAC 和權(quán)重包裝

    xfDNN 軟體堆疊概覽

    xfDNN 軟體堆疊是軟體工具和 API 的組合,其可通過(guò)各種常見(jiàn)的ML框架落實(shí)xDNN 處理引擎的無(wú)縫整合和控制。圖7中的流程圖詳細(xì)說(shuō)明了如何準(zhǔn)備網(wǎng)路和模型,以便通過(guò)Caffe、TensorFlow或 MxNet在 xDNN上進(jìn)行部署。在CPU上運(yùn)行不受支援的層的同時(shí),xfDNN編譯器還支援xDNN層。在編譯和量化網(wǎng)路/模型之後 - 該流程通常需要不到一分鐘 -使用者可以通過(guò)選擇簡(jiǎn)單易用的Python或 C++ API與xDNN處理引擎進(jìn)行介面連接。



    圖7 : xfDNN 流程圖
    圖7 : xfDNN 流程圖

    賽靈思 xfDNN 軟體堆疊包括:

    網(wǎng)路編譯器和最佳化器

    編譯器產(chǎn)生在 xDNN 引擎上執(zhí)行的指令序列,其提供張量級(jí)控制和資料流程管理,以實(shí)現(xiàn)給定的網(wǎng)路。


    型號(hào)量化器

    量化器從經(jīng)訓(xùn)練的CNN網(wǎng)路模型產(chǎn)生目標(biāo)量化(INT8 或 INT16),而無(wú)需數(shù)小時(shí)的再訓(xùn)練或標(biāo)記的資料集。


    執(zhí)行時(shí)間和調(diào)度器

    xfDNN簡(jiǎn)化了xDNN處理引擎的通訊和程式設(shè)計(jì),並利用了符合SDx的執(zhí)行時(shí)間和平臺(tái)。


    圖8顯示了xfDNN函式庫(kù)的流程圖,其將深度學(xué)習(xí)框架與在賽靈思FPGA上運(yùn)行的xDNN IP相連接。



    圖8 : xfDNN 軟體堆疊
    圖8 : xfDNN 軟體堆疊

    xfDNN編譯器的更多資訊

    現(xiàn)代CNN是數(shù)百個(gè)單獨(dú)操作的圖表,即卷積、Maxpool、Relu、偏置、批次處理規(guī)範(fàn)、元素級(jí)加法等。編譯器的主要工作是分析CNN網(wǎng)路並生成在xDNN上執(zhí)行的最佳化指令集。xfDNN編譯器不僅提供簡(jiǎn)單的Python API來(lái)連接到高級(jí)ML框架,而且還通過(guò)融合層、最佳化網(wǎng)路中的記憶體相關(guān)性,以及預(yù)調(diào)度整個(gè)網(wǎng)路來(lái)提供網(wǎng)路最佳化工具。這消除了CPU主機(jī)控制瓶頸。請(qǐng)參見(jiàn) 圖 9 作為實(shí)例。



    圖9 : xfDNN 編譯器最佳化
    圖9 : xfDNN 編譯器最佳化

    效能基準(zhǔn)測(cè)試結(jié)果

    隨著即時(shí)AI服務(wù)的日益增多,延遲成為整體 AI 服務(wù)效能的重要方面。GPU在延遲和傳輸率之間存在顯著的權(quán)衡,與此不同的是,xDNNv3 DNN 引擎可以提供低延遲和高傳輸率。此外,xDNNv3內(nèi)核提供簡(jiǎn)單的Batch = 1介面,無(wú)需任何排隊(duì)軟體來(lái)自動(dòng)批量輸入資料便可達(dá)到最大傳輸率,從而降低了介面軟體的複雜性。


    圖10和圖11顯示了Alveo 加速器卡,以及GPU和FPGA平臺(tái)上的CNN、延遲和傳輸率基準(zhǔn)。圖10顯示了沿左Y 軸以每秒圖像數(shù)量來(lái)測(cè)量的GoogLeNet V1 Batch = 1 傳輸率。傳輸率上方顯示的數(shù)位是以毫秒為單位的測(cè)量/ 報(bào)告延遲。



    圖10 : GoogLeNet v1 Batch = 1 傳輸率
    圖10 : GoogLeNet v1 Batch = 1 傳輸率

    注釋:


    1. Xeon E5-2696 v4 f1.2xlarge AWS 實(shí)例,Ubuntu 16.04LTS,amd64 xenial 映射建於 2018 年 08 月 14 日,Intel Caffe (https://github.com/intel/caffe),Git 版本:a3d5b02,run_benchmark.py w/Batch = 1 修改。


    2. Xeon Platinum 8124 Skylake,c5.18xlarge AWS 實(shí)例,Ubuntu 16.04LTS,amd64 xenial 映射建於 2018 年 08 月 14 日,Intel Caffe,Git 版本:a3d5b02,run_benchmark.py w/Batch = 1 修改。


    3. Arria-10 號(hào)碼取自英特爾白皮書(shū)“利用 OpenCL? 平臺(tái)和英特爾 Stratix 10 FPGA 加速深度學(xué)習(xí)。”https://builders.intel.com/docs/aibuilders/accelerating-deep-learning-with-the-opencl-platform-and-intel-stratix-10-fpgas.pdf。


    Arria 延遲資料尚未公佈。


    4. Nvidia P4 和 V100 號(hào)碼取自 NVIDIA技術(shù)概覽,“從資料中心到網(wǎng)路邊緣,深度學(xué)習(xí)平臺(tái)、AI 服務(wù)的效能和效率的巨大飛躍”。https://images.nvidia.com/content/pdf/inference-technical-overview.pdf。資料檢索於 2018 年 9 月 3 日。


    5. 採(cǎi)用當(dāng)前可用的已公佈基準(zhǔn)的 NVIDIA T4 投影。根據(jù)早期的功率效率基準(zhǔn),GoogLeNet Batch = 1 效能範(fàn)圍在 1700-2000 個(gè)圖像/秒之間。


    6. Alveo U200 數(shù)字測(cè)量 Intel Xeon CPU E5-2650v4 2.2GHz、2400MHz DDR4、Ubuntu 16.04.2 LTS 實(shí)例在 OpenStack Pike,Centos 7.4 上運(yùn)行,預(yù)發(fā)佈版本 MLSuite,streaming_classify.py,合成資料,MLSuite DSA Thin Shell,F(xiàn)C 和在 Xeon 主機(jī)上運(yùn)行的 SoftMax 層和不包含在運(yùn)算總計(jì)中的操作(占總運(yùn)算的 0.06%)。


    7. Alveo U250 數(shù)字測(cè)量 Intel Xeon Silver 4110 CPU @ 2.10GHz,CentOS Linux 發(fā)佈4.1708,預(yù)發(fā)佈版本 MLSuite,streaming_classify.py,合成資料,DSA:Thin Shell,F(xiàn)C 和在 Xeon 主機(jī)上運(yùn)行的 SoftMax 層和不包含在運(yùn)算總計(jì)中的操作(占總運(yùn)算的 0.06%)。


    圖11顯示了沿 Y 軸以每秒每瓦特圖像數(shù)量來(lái)測(cè)量的 GoogLeNet V1 傳輸率。雖然GoogLeNet v1效能可用於基準(zhǔn)測(cè)試,但xDNN支援廣泛的CNN 網(wǎng)路。



    圖11 : GoogLeNet v1Batch= 1 能源效率
    圖11 : GoogLeNet v1Batch= 1 能源效率

    注釋:


    1. Arria-10 號(hào)碼取自英特爾白皮書(shū)“利用 OpenCL? 平臺(tái)和英特爾R StratixR 10 FPGA 加速深度學(xué)習(xí)。”https://builders.intel.com/docs/aibuilders/accelerating-deep-learning-with-the-opencl-platform-and-intel-stratix-10-fpgas.pdf。


    2. Nvidia P4 和 V100 號(hào)碼取自 Nvidia 技術(shù)概覽,“從資料中心到網(wǎng)路邊緣,深度學(xué)習(xí)平臺(tái)、AI 服務(wù)的效能和效率的巨大飛躍”。https://images.nvidia.com/content/pdf/inference-technical-overview.pdf。資料檢索於 2018 年 9 月 3 日。


    3. 基準(zhǔn)執(zhí)行期間電路板管理固件報(bào)告的電路板功率資料。


    結(jié)論與行動(dòng)呼籲

    如共用效能結(jié)果所示,xDNN處理引擎是一種低延遲、高能效的DNN加速器,在即時(shí)推論作業(yè)負(fù)載方面優(yōu)於當(dāng)今眾多常見(jiàn)的CPU/GPU平臺(tái)。xDNN處理引擎可通過(guò)ML Suite在眾多雲(yún)端環(huán)境(例如 Amazon AWS/EC2 或 Nimbix NX5)中使用。其通過(guò)賽靈思的新Alveo加速器卡無(wú)縫擴(kuò)展到本地部署。


    賽靈思的可重配置 FPGA 晶片允許使用者通過(guò) xDNN 更新繼續(xù)接收新的改進(jìn)和功能,這使得使用者能夠跟上不斷變化的需求和不斷演進(jìn)發(fā)展的網(wǎng)路。


    相關(guān)文章
    ? 資料科學(xué)與機(jī)器學(xué)習(xí)協(xié)助改善頸部損傷評(píng)估
    ? MATLAB與Simulink整合自動(dòng)化機(jī)器學(xué)習(xí)與DevOps
    ? 智慧人機(jī)介面將產(chǎn)品設(shè)計(jì)發(fā)想變成無(wú)限可能
    ? 以深度學(xué)習(xí)和Spine Tool評(píng)估阿茲海默癥治療標(biāo)的
    ? Sklearn2ONNX AI範(fàn)例分享:風(fēng)扇堵塞偵測(cè)
    comments powered by Disqus
      相關(guān)新聞
    » u-blox 推出精巧、強(qiáng)大且安全的藍(lán)牙低功耗模組 ANNA-B5
    » TrendForce:自動(dòng)化成關(guān)稅戰(zhàn)避風(fēng)港 美智慧工廠成本遠(yuǎn)超陸廠
    » Discovery《臺(tái)灣無(wú)比精采:AI 科技島》即將首播 外宣臺(tái)灣科技實(shí)力
    » 臺(tái)灣PCB產(chǎn)業(yè)鏈盼化風(fēng)險(xiǎn)為轉(zhuǎn)機(jī) TPCA估2025年穩(wěn)健成長(zhǎng)5.8%
    » 意法半導(dǎo)體獲 CDP 肯定,列入氣候變遷與水資源管理領(lǐng)導(dǎo)企業(yè)名單
      相關(guān)產(chǎn)品
    » KSC XA輕觸開(kāi)關(guān)提供聲音柔和的輕觸回饋,增強(qiáng)用戶體驗(yàn)
    » 首款採(cǎi)用 DO-214AB 緊湊型封裝的 2kA 保護(hù)晶閘管
    » 意法半導(dǎo)體推出新款智慧型功率開(kāi)關(guān),具備小巧外型、高效率與高度可靠性
    » 意法半導(dǎo)體推出全方位參考設(shè)計(jì),專為低壓高功率馬達(dá)應(yīng)用打造
    » 開(kāi)發(fā)人員均可開(kāi)始使用Nordic Semiconductor nPM2100

    ?
    刊登廣告 新聞信箱 讀者信箱 著作權(quán)聲明 隱私權(quán)聲明 本站介紹

    Copyright ©1999-2025 遠(yuǎn)播資訊股份有限公司版權(quán)所有 Powered by O3
    地址:臺(tái)北數(shù)位產(chǎn)業(yè)園區(qū)(digiBlock Taipei) 103臺(tái)北市大同區(qū)承德路三段287-2號(hào)A棟204室
    電話 (02)2585-5526 #0 轉(zhuǎn)接至總機(jī) / E-Mail: webmaster@hope.com.tw
    主站蜘蛛池模板: 蓝田县| 习水县| 墨脱县| 绥滨县| 辉南县| 北流市| 德惠市| 信阳市| 鄂尔多斯市| 和田县| 牙克石市| 新闻| 丘北县| 民乐县| 梁平县| 汤阴县| 准格尔旗| 呈贡县| 舟山市| 玛多县| 巴东县| 金平| 丽水市| 会东县| 威海市| 潼关县| 建阳市| 仙桃市| 马山县| 翁牛特旗| 富宁县| 高平市| 佛坪县| 苍山县| 龙陵县| 乡宁县| 璧山县| 宝坻区| 沙洋县| 林州市| 甘德县|