<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用FPGA構建邊緣AI推理的解決方案

得捷電子DigiKey ? 來源:得捷電子DigiKey ? 作者:得捷電子DigiKey ? 2022-10-13 09:51 ? 次閱讀

對于希望在邊緣的推理處理器上實施人工智能 (AI) 算法的設計人員來說,他們正不斷面臨著降低功耗并縮短開發時間的壓力,即使在處理需求不斷增加的情況下也是如此?,F場可編程門陣列 (FPGA) 為實施邊緣AI所需的神經網絡 (NN) 推理引擎提供了特別有效的速度和效率效率組合。然而,對于不熟悉 FPGA 的開發人員來說,傳統FPGA的開發方法可能相當復雜,往往導致他們去選擇不太理想的解決方案。

本文將介紹來自Microchip Technology的一種比較簡單的方法。通過這種方法,開發人員可以使用FPGA和軟件開發套件 (SDK) 構建經過訓練的NN,或者使用基于FPGA的視頻套件立即啟動智能嵌入式視覺應用開發,從而避開傳統的FPGA開發。

為什么要在邊緣使用AI?

邊緣計算為物聯網 (IoT) 應用帶來了諸多好處,涵蓋了包括工業自動化、安全系統、智能家居等在內的多個領域。在以工廠車間為目標的工業物聯網 (IIoT) 應用中,邊緣計算通過避免到云端應用的往返延遲,可以顯著縮短過程控制環路的響應時間。同樣,基于邊緣的安全系統或智能家居門鎖即使由于意外或人為原因與云端的連接斷開時,也能繼續正常工作。在很多情況下,在任何此類應用中使用邊緣計算時,都可以通過減少產品對云資源的依賴來幫助降低整體運營成本。隨著產品要求的提高,開發者可以依靠產品中內置的本地處理功能去幫助維持更穩定的運營開支,而不會面臨增加昂貴的云資源的意外需求。對機器學習 (ML) 推理模型的快速接受和需求的增加,極大地提高了邊緣計算的重要性。對于開發人員來說,推理模型的本地處理能力有助于降低云端推理所需的響應延遲和云資源成本。對于用戶來說,使用本地推理模型會讓他們更加相信,其產品在偶爾與互聯網斷開或基于云的供應商產品發生變化時仍能正常運行。此外,在安全和隱私方面的擔憂會進一步推動對本地處理和推理的需求,以限制通過公共互聯網傳輸到云端的敏感信息數量。

為基于視覺的對象檢測開發NN推理模型是一個多步驟過程。首先進行模型訓練,這一步通常在TensorFlow等ML框架上使用公開的標記圖像或自定義的標記圖像進行訓練。由于處理需求,模型訓練通常使用云端或其他高性能計算平臺的圖形處理單元 (GPU) 進行。訓練完成后,模型被轉換為能夠在邊緣或霧計算資源上運行的推理模型,并將推理結果以一組對象類概率的形式交付(圖1)。

da1a8648-4a26-11ed-a3b6-dac502259ad0.png

圖1:在多步驟過程的末端實現邊緣人工智能的推理模型,需要使用現有或定制型訓練數據在框架上訓練和優化NN。(圖片來源:Microchip Technology)

為什么推理模型存在計算方面的挑戰?

與訓練過程中使用的模型相比,雖然NN推理模型的大小和復雜程度都有所降低,但還是需要大量計算,這對于通用處理器來說仍是一個挑戰。在其通用形式中,深層NN模型由多層神經元集組成。在一個全連接網絡的每一層內,每個神經元nij 都需要計算每個輸入與相關權重系數Wij 的乘積之和(圖2)。

da601c62-4a26-11ed-a3b6-dac502259ad0.png

圖2:通過NN進行推理所需的計算次數會造成龐大的計算工作量。(圖片來源:MicrochipTechnology)

圖2中沒有顯示激活函數和類似函數帶來的額外計算要求。激活函數通過將負值映射為零,將大于1的值映射為1來修改每個神經元的輸出。每個神經元nij 的激活函數的輸出作為下一層i+1的輸入,以此類推直至每一層。NN模型的輸出層最終產生一個輸出向量,代表原始輸入向量(或矩陣)對應于監督學習過程中使用的某一個類(或標簽)的概率。相比上圖所示具有代表性的通用NN架構,有效的NN模型是由大得多、復雜得多的架構來構建的。例如,用于圖像對象檢測的典型卷積NN(CNN) 以分段方式應用這些原理,掃描輸入圖像寬度、高度和顏色深度,從而生成一系列最終會產生輸出預測向量的特征圖(圖3)。

da94f112-4a26-11ed-a3b6-dac502259ad0.png

圖3:用于圖像對象檢測的CNN會在許多層中牽涉到大量神經元,這對計算平臺提出了更高的要求。(圖片來源:Aphex34CC BY-SA 4.0)

用FPGA加速NN數學

雖然在邊緣執行推理模型的方案不斷涌現,但很少有方案能夠提供實際的邊緣高速推理所需的最佳靈活性、性能和能效組合。在現有的邊緣AI替代品中,FPGA特別有效,因為它們可執行基于硬件的高性能計算密集型工作,同時功耗相對較低。盡管FPGA優勢突出,但由于傳統的開發流程有時會讓沒有豐富FPGA經驗的開發人員望而生畏,舍棄FPGA。為了有效實施通過NN框架生成的NN模型的FPGA,開發人員需要了解將模型轉換為寄存器傳輸語言 (RTL)、設計綜合和最終審定之間的細微差別,并需要制定具體的設計階段路線,從而做到優化實施(圖4)。

dad21e7a-4a26-11ed-a3b6-dac502259ad0.png

圖4:為了在FPGA上實現NN模型,開發人員即便是現在還需要了解如何將其模型轉換為RTL,并執行傳統的FPGA工作流程。(圖片來源:Microchip Technology)

憑借其PolarFire FPGA、專用軟件和相關知識產權 (IP),Microchip Technology提供了一種解決方案,讓沒有FPGA經驗的開發人員也能廣泛地使用高性能、低功耗邊緣推理。PolarFire FPGA采用先進的非易失性工藝技術制造,旨在最大限度地提高靈活性和性能,同時將功耗降至最低。除了用于通信和輸入/輸出 (I/O) 的大量高速接口外,它們還具有深厚的FPGA結構,能夠使用軟IP內核支持高級功能,具體包括RISC-V處理器、高級內存控制器和其他標準接口子系統(圖5)。

db07a87e-4a26-11ed-a3b6-dac502259ad0.png

圖 5:Microchip Technology 的 PolarFire 架構提供了一種深度結構,旨在支持高性能設計要求,包括實施計算密集型推理模型。(圖片來源:Microchip Technology)

PolarFire FPGA架構提供了一套廣泛的邏輯元件和專用功能塊,通過PolarFireFPGA系列的不同器件獲得各種不同的容量支持,具體包括MPF100T、MPF200T、MPF300T和MPF500T系列(表1)。

dba82b46-4a26-11ed-a3b6-dac502259ad0.png

表1:PolarFire系列包括多種FPGA結構特性和容量。(表格來源:Digi-Key Electronics,基于Microchip Technology的PolarFire數據表)

在特別令人關注的推理加速功能中,PolarFire架構包括一個專用數學塊,提供一個具有預加法器的18位 × 18位有符號乘法累加函數(MAC)。內置的點積模式使用一個數學塊來執行兩個8位乘法運算,通過利用模型量化對精度的影響可以忽略這一優勢,提供了一種可提高容量的機制。除了能加快數學運算外,PolarFire架構還有助于緩解在通用架構上實施推理模型時遇到的存儲器擁堵問題,例如用來保存在NN算法執行過程中創建的中間結果的小型分布式存儲器。另外,NN模型的權重值和偏置值可以存儲在一個系數為16深 x 18位的只讀存儲器(ROM) 中,這種存儲器通過位于數學塊附近的邏輯元件構建。結合其他PolarFire FPGA結構特性,數學塊為Microchip Technology更高級別的CoreVectorBlox IP奠定了基礎。這將作為一個靈活的NN引擎,能夠執行不同類型的NN。除了一組控制寄存器外,CoreVectorBlox IP還包括三個主要功能塊:

微控制器:一個簡單的RISC-V軟處理器,可從外部存儲器讀取Microchip固件二進制大對象 (BLOB) 和用戶特定型NN BLOB文件。通過執行固件BLOB的指令來控制CoreVectorBlox的整體運算。

矩陣處理器 (MXP):這是一種由8個32位算術邏輯單元 (ALU) 組成的軟處理器,旨在使用逐元素張量運算對數據向量執行并行運算,包括加法、減法、xor、移位、mul、dotprod等,并根據需要使用8位、16位和32位混合精度。

CNN加速器:使用通過數學塊實現的二維MAC函數陣列來加速MXP運算,運算精度為8位。

一個完整的NN處理系統將包括CoreVectorBloxIP塊、存儲器、存儲器控制器和主機處理器,如微軟RISC-V (Mi-V) 軟件處理器內核(圖6)。

dbbcd6b8-4a26-11ed-a3b6-dac502259ad0.png

圖6:CoreVectorBlox IP塊與Microchip的Mi-V RISC-V微控制器等主機處理器配合,實現NN推理模型。(圖片來源:Microchip Technology)

在視頻系統實施過程中,主機處理器將從系統存儲器加載固件和網絡BLOB,并將其復制到雙數據速率 (DDR) 隨機存取存儲器 (RAM) 中供CoreVectorBlox塊使用。當視頻幀到達時,主機處理器將其寫入DDR RAM,并向CoreVectorBlox塊發出信號,以開始圖像處理。在主機運行網絡BLOB中定義的推理模型后,CoreVectorBlox塊將結果(包括圖像分類)寫回DDR RAM中,供目標應用程序使用。

開發流程簡化了NN FPGA實施

Microchip使開發人員避開了在PolarFire FPGA上實施NN推理模型的復雜性。NN模型開發人員無需處理傳統FPGA流程的細節,而是像往常一樣使用其NN框架,并將生成的模型加載到Microchip Technology的VectorBlox 加速器軟件開發工具包 (SDK) 中。SDK生成所需的一組文件,包括正常FPGA開發流程所需的文件和上文提到的固件和網絡BLOB文件(圖7)。

dc0a6568-4a26-11ed-a3b6-dac502259ad0.png

圖 7:VectorBlox Accelerator SDK 管理在 FPGA 上的 NN 模型實施細節,自動生成設計并運行基于 FPGA 的推理模型所需的文件。(圖片來源:Microchip Technology)

由于VectorBlox Accelerator SDK流程將NN設計置于在FPGA中實施的NN引擎之上,因此不同的NN可以在同一FPGA設計上運行,而無需重復FPGA設計綜合流程。開發者為生成的系統創建C/C++代碼,并能在系統內快速切換模型,或使用時間切片同時運行模型。

VectorBlox Accelerator SDK將Microchip Technology Libero FPGA設計套件與NN推理模型開發的全套功能融為一體。除了模型優化、量化和校準服務之外,SDK還提供了一個NN仿真器,能讓開發人員在FPGA硬件實施中使用其模型之前用相同的BLOB文件進行模型評估(圖8)。

dc887746-4a26-11ed-a3b6-dac502259ad0.png

圖8:VectorBlox Accelerator SDK提供了一套全面的服務,旨在優化由框架生成的推理模型的FPGA實施。(圖片來源:Microchip Technology)

VectorBlox Accelerator SDK支持采用開放神經網絡交換 (ONNX) 格式的模型,以及來自包括TensorFlow、Caffe、Chainer、PyTorch和MXNET在內的多種框架的模型??芍С值腃NN架構包括MNIST、MobileNet版、ResNet-50、Tiny Yolo V2和Tiny Yolo V3。Microchip正在努力擴大支持范圍,將大多數網絡納入預訓練模型的開源式OpenVINO工具包開放模型動物園中,包括Yolo V3、Yolo V4、RetinaNet和SSD-MobileNet等。

視頻套件演示FPGA推理

為幫助開發人員快速啟動智能嵌入式視覺應用開發,MicrochipTechnology提供了一個全面的樣例應用,設計用于在該公司的MPF300-VIDEO-KIT PolarFireFPGA視頻和成像套件和參考設計上運行?;贛icrochip MPF300T PolarFire FPGA,該套件電路板結合了雙攝像頭傳感器、雙數據速率4 (DDR4) RAM、閃存、電源管理和各種接口(圖9)。

dcbd6794-4a26-11ed-a3b6-dac502259ad0.png

圖9:MPF300-VIDEO-KIT PolarFire FPGA視頻和成像套件及相關軟件能讓開發人員在智能嵌入式視覺應用中快速啟動基于FPGA的推理。(圖片來源:Microchip Technology)

該套件附帶一個完整的Libero設計項目,用于生成固件和網絡BLOB文件。將BLOB文件編程到板載閃存中后,開發人員點擊Libero中的運行按鈕即可開始演示,處理來自攝像頭傳感器的視頻圖像,并將推理結果在顯示屏上顯示(圖10)。

dd01842e-4a26-11ed-a3b6-dac502259ad0.png

圖10:Microchip Technology PolarFire FPGA視頻和成像套件演示了如何設計和使用圍繞Microchip CoreVectorBlox NN引擎構建的智能嵌入式視覺系統的FPGA實施。(圖片來源:Microchip Technology)

對于每個輸入視頻幀,基于FPGA的系統會執行以下步驟(步驟編號與圖10相關)。

從相機中加載一幀畫面

將幀存儲在RAM中

讀取RAM中的幀

將原始圖像轉換為RGB、平面化RGB并將結果存儲在RAM中。

Mi-V soft RISC-V處理器啟動CoreVectorBlo x引擎,從RAM中檢索圖像,進行推理并將分類概率結果存儲回RAM中。

Mi-V使用結果創建一個包含邊界框、分類結果和其他元數據的疊加幀,并將該框架存儲在RAM中。

原始幀與疊加幀混合并寫入HDMI顯示屏。

該演示支持Tiny Yolo V3和MobileNet V2模型加速,但需要開發人員改動少許代碼,將模型名稱和元數據添加到包含兩個默認模型的現有列表中,即可使用上述方法運行其他SDK支持的模型。

結論

NN模型等人工智能算法通常會施加計算密集型工作負載,這需要比通用處理器更強大的計算資源。雖然FPGA能夠很好地滿足推理模型執行的性能和低功耗要求,但傳統的FPGA開發方法可能會很復雜,往往導致開發人員轉向不太理想的解決方案。如圖所示,使用Microchip Technology的專用IP和軟件,沒有FPGA經驗的開發人員也能實施基于推理的設計,更好地滿足性能、功耗以及設計進度要求。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1602

    文章

    21324

    瀏覽量

    593215
  • 邊緣AI
    +關注

    關注

    0

    文章

    47

    瀏覽量

    4798

原文標題:用FPGA構建邊緣AI推理應用很難?這樣做,變簡單!

文章出處:【微信號:得捷電子DigiKey,微信公眾號:得捷電子DigiKey】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    萊迪思FPGA在網絡邊緣計算AI開發方案

    邊緣端,將產品布局在適于低功耗運行的低密度 FPGA 上,其全新的毫瓦級功耗 FPGA 解決方案 LatticesenAI ,為機器學習推理
    發表于 06-06 03:04 ?1747次閱讀

    如何通過FPGA和軟件開發工具包(SDK)創建邊緣AI應用

    邊緣推理處理器實現人工智能(AI)算法的設計人員不斷需要降低功耗和開發時間,即使處理需求不斷增加?,F場可編程門陣列(FPGA)提供了速度和功率效率的有效組合,用于實現
    的頭像 發表于 02-21 11:57 ?4309次閱讀
    如何通過<b class='flag-5'>FPGA</b>和軟件開發工具包(SDK)創建<b class='flag-5'>邊緣</b><b class='flag-5'>AI</b>應用

    利用 FPGA 快速路徑構建高性能、高能效邊緣 AI 應用

    ?,F場可編程門陣列 (FPGA) 為實施邊緣 AI所需的神經網絡 (NN) 推理引擎提供了特別有效的速度和效率效率組合。然而,對于不熟悉 FPGA
    的頭像 發表于 10-03 14:31 ?667次閱讀
    <b class='flag-5'>利用</b> <b class='flag-5'>FPGA</b> 快速路徑<b class='flag-5'>構建</b>高性能、高能效<b class='flag-5'>邊緣</b> <b class='flag-5'>AI</b> 應用

    邊緣AI“金礦”:PC的智能和感知,Lattice sensAI有了新方案

    邊緣計算的FPGA硬件和設計軟件解決方案,針對邊緣智能的萊迪思sensAI也更新到了4.1版本。最近,萊迪思半導體亞太區資深市場開拓經理林國松,就萊迪思最新的
    的頭像 發表于 11-26 10:14 ?3026次閱讀
    <b class='flag-5'>邊緣</b><b class='flag-5'>AI</b>“金礦”:PC的智能和感知,Lattice sensAI有了新<b class='flag-5'>方案</b>

    超低功耗FPGA解決方案助力機器學習

    本帖最后由 曾12345 于 2018-5-23 15:49 編輯 全新的毫瓦級功耗FPGA解決方案為機器學習推理在大眾市場物聯網應用中實現快速部署創造機遇。1. 將AI加速部署
    發表于 05-23 15:31

    硬件幫助將AI移動到邊緣

    FPGA器件可能適用于邊緣應用上的AI。(來源:Lattice Semi)“這類FPGA非常適合這些非視覺的低端傳感器處理應用,”萊迪思半導體部門和
    發表于 05-29 10:38

    EdgeBoard FZ5 邊緣AI計算盒及計算卡

    ` 隨著應用場景的多樣化,利用人工智能技術在邊緣側部署一系列創新應用解決方案,對企業傳統的業務形態進行升級,加速業務增長,增強競爭優勢,起著至關重要的作用。 在市場需求和產業趨勢的推動下,米爾
    發表于 08-31 14:12

    如何使用ECP5FPGA解決網絡邊緣應用設計挑戰

    的顯著領先優勢,ECP5 FPGA是滿足新興AI市場上多元需求的理想選擇。例如,ECP5 FPGA中的DSP能夠以相比GPU浮點運算更低的功耗/MHz來進行定點運算。這些特性為功耗要求嚴苛的網絡
    發表于 10-21 11:53

    AI遇上FPGA會產生怎樣的反應

    是人工智能大躍進的基礎,在線下模型訓練中Xeon-Phi、GPU等發揮著巨大的作用,而在線上的推理任務中,浪潮FPGA深度學習加速解決方案則能夠實現7倍以上的能效比提升。 卷積網絡之父、Facebook
    發表于 09-17 17:08

    嵌入式邊緣AI應用開發指南

    保駕護航。下面讓我們來了解如何不借助手動工具或手動編程來選擇模型、隨時隨地訓練模型并將其無縫部署到TI處理器上,從而實現硬件加速推理。圖1: 邊緣AI應用的開發流程第1步:選擇模型邊緣
    發表于 11-03 06:53

    嘉楠勘智K510開發板簡介——高精度AI邊緣推理芯片及應用

    隨著人工智能應用的不斷普及,各種行業應用對于算力的需求不斷增加。從當前提供AI加速運算的解決方案來看,在云端仍然以GPU方案為主,在終端領域,使用邊緣
    發表于 11-22 15:52

    索尼投資樹莓派,共同開發邊緣 AI 解決方案

    索尼半導體解決方案(SSS)今天發布新聞稿,宣布和樹莓派公司簽署戰略協作框架,持有后者的少數股權,共同開發邊緣人工智能(Edge AI解決方案。IT之家翻譯索尼新聞稿內容如下:“公司
    發表于 04-13 15:55

    基于FPGA嵌入式AI解決方案的百度EdgeBoard

    EdgeBoard是基于FPGA打造的嵌入式AI解決方案,能夠提供強大的算力,并支持定制化模型,適配各種不同的場景,并大幅提高設備的AI推理
    發表于 03-13 11:23 ?885次閱讀

    邊緣AI推理將覆蓋60%設備,萊迪思FPGA+sensAI 4.1組合拳如何打?

    ABI的研究調查表明,預計到2024年設備端的AI推理功能將覆蓋近60%的設備。FPGA作為實現邊緣AI的技術方式之一受到了青睞。要知道
    的頭像 發表于 08-12 16:39 ?2326次閱讀
    <b class='flag-5'>邊緣</b><b class='flag-5'>AI</b><b class='flag-5'>推理</b>將覆蓋60%設備,萊迪思<b class='flag-5'>FPGA</b>+sensAI 4.1組合拳如何打?

    利用內存及存儲構建邊緣策略

    利用內存及存儲構建邊緣策略
    的頭像 發表于 11-23 09:04 ?129次閱讀
    <b class='flag-5'>利用</b>內存及存儲<b class='flag-5'>構建</b><b class='flag-5'>邊緣</b>策略
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>