<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 設計應用 > 利用VectorBlox開(kāi)發(fā)工具包在PolarFire FPGA實(shí)現人工智能

利用VectorBlox開(kāi)發(fā)工具包在PolarFire FPGA實(shí)現人工智能

作者: 時(shí)間:2023-05-28 來(lái)源:CTIMES 收藏

隨著(zhù)、機器學(xué)習技術(shù)和物聯(lián)網(wǎng)的興起,的應用開(kāi)始逐漸轉移到收集數據的邊緣裝置。為縮小體積、減少產(chǎn)熱、提高計算性能,這些邊緣應用需要節能型的解決方案。Microchip的智能嵌入式視覺(jué)解決方案,致力于讓軟件開(kāi)發(fā)人員可以更方便地在?現場(chǎng)可編程門(mén)陣列()內執行的模型,進(jìn)而滿(mǎn)足邊緣應用對節能型推理功能日益增長(cháng)的需求。作為Microchip嵌入式解決方案組合的重要新成員,?加速器軟件(SDK)可幫助軟件開(kāi)發(fā)人員在不學(xué)習工具流程的前提下,利用Microchip 創(chuàng )建靈活的低功耗神經(jīng)網(wǎng)絡(luò )應用。

軟件支持以下幾個(gè)特性:
1.基于OpenVINO?工具包的前端工具;
2.支持最常見(jiàn)的框架,如TensorFlow、Caffe、MxNet、PyTorch和DarkNet;
3.無(wú)需預先了解FPGA即可快速評估;
4.基于軟件覆蓋的實(shí)現;更新CNN時(shí)無(wú)需重新編程FPGA。

 圖片.png
Accelerator SDK包含不同的工具,可將來(lái)自TensorFlow和ONNX等框架的神經(jīng)網(wǎng)絡(luò )描述編譯成二進(jìn)制大型對象(BLOB)。這些BLOB存儲在閃存中,并在執行期間加載到 DDR 內存中。

主要幾個(gè)工具如下:

1.模型優(yōu)化:將經(jīng)過(guò)訓練的網(wǎng)絡(luò )轉換為通用的中間語(yǔ)言(IR),并通過(guò)刪除訓練期間使用的多個(gè)層以及優(yōu)化網(wǎng)絡(luò )以進(jìn)行推理;
2.量化:將優(yōu)化的網(wǎng)絡(luò )從 FP32 轉換為 INT8,并使網(wǎng)絡(luò )能夠使用更少的內存來(lái)表示,同時(shí)將精度損失降至最低;
3.校準:調整以INT8精度表示的模型的激活函數和權重;
4.運行時(shí)生成:創(chuàng )建寫(xiě)入嵌入式非易失性存儲(例如 SPI 閃存)的BLOB。

CoreVectorBlox IP是包含在SDK里面的硬件加速器,CoreVectorBlox IP由矩陣處理器(MXP)和MXP CNN IP組成。當需要共享神經(jīng)網(wǎng)絡(luò )工作負載時(shí),它可以實(shí)例化為單核加速器或多核加速器。MXP由八個(gè)32位算術(shù)/邏輯單元(ALU)組成,負責按元素張量運算,如加、減、異或、移位、乘法、內積等。MXP CNN IP由乘法和累加的二維數組組成,IP使用FPGA內部的數學(xué)塊來(lái)實(shí)現功能。顧名思義,MXP CNN IP負責執行CNN的卷積層。多個(gè)網(wǎng)絡(luò )可以在運行時(shí)迭加并動(dòng)態(tài)切換。
圖片.png 

開(kāi)發(fā)設計流程可以簡(jiǎn)單的分成三個(gè)步驟:

步驟1:準備訓練好的模型

使用SDK中提供的Python腳本將經(jīng)過(guò)訓練的模型轉換為優(yōu)化的INT8表示形式,稱(chēng)為BLOB。通過(guò)VectorBlox Accelerator Simulator運行BLOB,以驗證網(wǎng)絡(luò )的準確性并確保網(wǎng)絡(luò )的成功轉換。
圖片.png 

步驟2:準備硬件

FPGA視頻套件配置為作為支持AI的智能相機運行。SDK包括一個(gè)預編譯的套件刻錄檔。使用套件中包含的FlashPro編程器將刻錄檔寫(xiě)入PolarFire FPGA并將第1步生成的BLOB寫(xiě)入套件的SPI閃存。
圖片.png 
步驟3:編寫(xiě)您的嵌入式代碼

在基于C/C++的SoftConsole IDE中使用提供的嵌入式代碼并生成和編程hex文件。將視頻套件連接到HDMI顯示器并將其打開(kāi)。修改嵌入式代碼以加載和運行多個(gè)CNN BLOB、實(shí)時(shí)動(dòng)態(tài)切換CNN或按順序加載CNN以進(jìn)行同時(shí)推理。
圖片.png

本文引用地址:http://dyxdggzs.com/article/202305/447065.htm

部署選項:

PolarFire FPGA視頻套件(MPF300-VIDEO-KIT-NS)支持VectorBlox SDK。

 圖片.png

VectorBlox智能相機參考設計流程:
1.通過(guò)MIPI CSI-2接收影像;
2.影像存儲在DDR4內存中;
3.推理之前,影像從DDR4讀回;
4.影像從RAW轉換為RGB并寫(xiě)回DDR4;
5.CoreVectorBlox引擎對R、G、B數組運行推理并將結果寫(xiě)回內存;
6.Mi-V(軟RISC-V?)生態(tài)系統對概率進(jìn)行排序并創(chuàng )建帶有邊界框的覆蓋框架,并將結果放入 DDR4;
7.讀取原始影像并與迭加幀進(jìn)行 alpha 混合,然后發(fā)送到 HDMI 顯示器。
圖片.png

本文作者為:Microchip高級應用工程師 張長(cháng)軒



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>