<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 利用VectorBlox開發(fā)工具包在PolarFire FPGA實(shí)現(xiàn)人工智能

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

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

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

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

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

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

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

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

          開發(fā)設(shè)計(jì)流程可以簡單的分成三個(gè)步驟:

          步驟1:準(zhǔn)備訓(xùn)練好的模型

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

          步驟2:準(zhǔn)備硬件

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

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

          本文引用地址:http://www.ex-cimer.com/article/202305/447065.htm

          部署選項(xiàng):

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

           圖片.png

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

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();