0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用 FPGA 快速路徑構(gòu)建高性能、高能效邊緣 AI 應(yīng)用

海闊天空的專欄 ? 來源:Stephen Evanczuk ? 作者:Stephen Evanczuk ? 2023-10-03 14:31 ? 次閱讀

作者:Stephen Evanczuk

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

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

為什么要在邊緣使用 AI?

邊緣計算為物聯(lián)網(wǎng)IoT) 應(yīng)用帶來了諸多好處,涵蓋了包括工業(yè)自動化、安全系統(tǒng)、智能家居等在內(nèi)的多個領(lǐng)域。在以工廠車間為目標(biāo)的工業(yè)物聯(lián)網(wǎng) (IIoT)應(yīng)用中,邊緣計算通過避免到云端應(yīng)用的往返延遲,可以顯著縮短過程控制環(huán)路的響應(yīng)時間。同樣,基于邊緣的安全系統(tǒng)或智能家居門鎖即使由于意外或人為原因與云端的連接斷開時,也能繼續(xù)正常工作。在很多情況下,在任何此類應(yīng)用中使用邊緣計算時,都可以通過減少產(chǎn)品對云資源的依賴來幫助降低整體運(yùn)營成本。隨著產(chǎn)品要求的提高,開發(fā)者可以依靠產(chǎn)品中內(nèi)置的本地處理功能去幫助維持更穩(wěn)定的運(yùn)營開支,而不會面臨增加昂貴的云資源的意外需求。

機(jī)器學(xué)習(xí) (ML)
推理模型的快速接受和需求的增加,極大地提高了邊緣計算的重要性。對于開發(fā)人員來說,推理模型的本地處理能力有助于降低云端推理所需的響應(yīng)延遲和云資源成本。對于用戶來說,使用本地推理模型會讓他們更加相信,其產(chǎn)品在偶爾與互聯(lián)網(wǎng)斷開或基于云的供應(yīng)商產(chǎn)品發(fā)生變化時仍能正常運(yùn)行。此外,在安全和隱私方面的擔(dān)憂會進(jìn)一步推動對本地處理和推理的需求,以限制通過公共互聯(lián)網(wǎng)傳輸?shù)皆贫说拿舾?a target="_blank">信息數(shù)量。

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

為什么推理模型存在計算方面的挑戰(zhàn)

與訓(xùn)練過程中使用的模型相比,雖然 NN 推理模型的大小和復(fù)雜程度都有所降低,但還是需要大量計算,這對于通用處理器來說仍是一個挑戰(zhàn)。在其通用形式中,深層NN 模型由多層神經(jīng)元集組成。在一個全連接網(wǎng)絡(luò)的每一層內(nèi),每個神經(jīng)元 nij 都需要計算每個輸入與相關(guān)權(quán)重系數(shù) wij 的乘積之和(圖 2)。
1.png


2 中沒有顯示激活函數(shù)和類似函數(shù)帶來的額外計算要求。激活函數(shù)通過將負(fù)值映射為零,將大于 1 的值映射為 1來修改每個神經(jīng)元的輸出。每個神經(jīng)元 nij 的激活函數(shù)的輸出作為下一層i+1 的輸入,以此類推直至每一層。NN模型的輸出層最終產(chǎn)生一個輸出向量,代表原始輸入向量(或矩陣)對應(yīng)于監(jiān)督學(xué)習(xí)過程中使用的某一個類(或標(biāo)簽)的概率。

相比上圖所示具有代表性的通用NN 架構(gòu),有效的 NN 模型是由大得多、復(fù)雜得多的架構(gòu)來構(gòu)建的。例如,用于圖像對象檢測的典型卷積 NN (CNN)以分段方式應(yīng)用這些原理,掃描輸入圖像寬度、高度和顏色深度,從而生成一系列最終會產(chǎn)生輸出預(yù)測向量的特征圖(圖 3)。

1.png

用 FPGA 加速 NN 數(shù)學(xué)

雖然在邊緣執(zhí)行推理模型的方案不斷涌現(xiàn),但很少有方案能夠提供實際的邊緣高速推理所需的最佳靈活性、性能和能效組合。在現(xiàn)有的邊緣 AI 替代品中,F(xiàn)PGA特別有效,因為它們可執(zhí)行基于硬件的高性能計算密集型工作,同時功耗相對較低。

盡管 FPGA 優(yōu)勢突出,但由于傳統(tǒng)的開發(fā)流程有時會讓沒有豐富 FPGA 經(jīng)驗的開發(fā)人員望而生畏,舍棄 FPGA。為了有效實施通過 NN 框架生成的 NN模型的 FPGA,開發(fā)人員需要了解將模型轉(zhuǎn)換為寄存器傳輸語言 (RTL)、設(shè)計綜合和最終審定之間的細(xì)微差別,并需要制定具體的設(shè)計階段路線,從而做到優(yōu)化實施(圖 4)。

1.png

憑借其 PolarFire FPGA、專用軟件和相關(guān)知識產(chǎn)權(quán) (IP),Microchip Technology 提供了一種解決方案,讓沒有 FPGA經(jīng)驗的開發(fā)人員也能廣泛地使用高性能、低功耗邊緣推理。

PolarFire FPGA 采用先進(jìn)的非易失性工藝技術(shù)制造,旨在最大限度地提高靈活性和性能,同時將功耗降至最低。除了用于通信和輸入/輸出 (I/O)的大量高速接口外,它們還具有深厚的 FPGA 結(jié)構(gòu),能夠使用軟 IP 內(nèi)核支持高級功能,具體包括 RISC-V 處理器、高級內(nèi)存控制器和其他標(biāo)準(zhǔn)接口子系統(tǒng)(圖 5)。

1.png

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

1.png

在特別令人關(guān)注的推理加速功能中,PolarFire 架構(gòu)包括一個專用數(shù)學(xué)塊,提供一個具有預(yù)加法器的 18 位 × 18 位有符號乘法累加函數(shù)
(MAC)。內(nèi)置的點積模式使用一個數(shù)學(xué)塊來執(zhí)行兩個 8 位乘法運(yùn)算,通過利用模型量化對精度的影響可以忽略這一優(yōu)勢,提供了一種可提高容量的機(jī)制。

除了能加快數(shù)學(xué)運(yùn)算外,PolarFire 架構(gòu)還有助于緩解在通用架構(gòu)上實施推理模型時遇到的存儲器擁堵問題,例如用來保存在 NN算法執(zhí)行過程中創(chuàng)建的中間結(jié)果的小型分布式存儲器。另外,NN 模型的權(quán)重值和偏置值可以存儲在一個系數(shù)為 16 深 x 18 位的只讀存儲器 (ROM)中,這種存儲器通過位于數(shù)學(xué)塊附近的邏輯元件構(gòu)建。

結(jié)合其他 PolarFire FPGA 結(jié)構(gòu)特性,數(shù)學(xué)塊為 Microchip Technology 更高級別的 CoreVectorBlox IP奠定了基礎(chǔ)。這將作為一個靈活的 NN 引擎,能夠執(zhí)行不同類型的 NN。除了一組控制寄存器外,CoreVectorBlox IP 還包括三個主要功能塊:

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

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

CNN 加速器:使用通過數(shù)學(xué)塊實現(xiàn)的二維 MAC 函數(shù)陣列來加速 MXP 運(yùn)算,運(yùn)算精度為 8 位。

一個完整的 NN 處理系統(tǒng)將包括 CoreVectorBlox IP 塊、存儲器、存儲器控制器和主機(jī)處理器,如微軟 RISC-V(Mi-V)軟件處理器內(nèi)核(圖 6)。

2.png

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

開發(fā)流程簡化了 NN FPGA 實施

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

3.png

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

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

4.png

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

視頻套件演示 FPGA 推理

為幫助開發(fā)人員快速啟動智能嵌入式視覺應(yīng)用開發(fā),Microchip Technology 提供了一個全面的樣例應(yīng)用,設(shè)計用于在該公司
MPF300-VIDEO-KIT PolarFire FPGA 視頻和成像套件和參考設(shè)計上運(yùn)行。

基于 Microchip MPF300T PolarFire FPGA,該套件電路板結(jié)合了雙攝像頭傳感器、雙數(shù)據(jù)速率 4 (DDR4)RAM、閃存、電源管理和各種接口(圖 9)。

5.png

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

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

從相機(jī)中加載一幀畫面

將幀存儲在 RAM 中

讀取 RAM 中的幀

將原始圖像轉(zhuǎn)換為 RGB、平面化 RGB 并將結(jié)果存儲在 RAM 中。

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

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

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

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

結(jié)論

NN 模型等人工智能算法通常會施加計算密集型工作負(fù)載,這需要比通用處理器更強(qiáng)大的計算資源。雖然 FPGA能夠很好地滿足推理模型執(zhí)行的性能和低功耗要求,但傳統(tǒng)的 FPGA 開發(fā)方法可能會很復(fù)雜,往往導(dǎo)致開發(fā)人員轉(zhuǎn)向不太理想的解決方案。

如圖所示,使用 Microchip Technology 的專用 IP 和軟件,沒有 FPGA經(jīng)驗的開發(fā)人員也能實施基于推理的設(shè)計,更好地滿足性能、功耗以及設(shè)計進(jìn)度要求。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21627

    瀏覽量

    601252
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18975

    瀏覽量

    302086
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2900

    文章

    44083

    瀏覽量

    370279
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29824

    瀏覽量

    268112
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA構(gòu)建高性能DSP

      FPGA的方案選擇  幸運(yùn)的是,需要高性能DSP功能的便攜式設(shè)備設(shè)計者還有其它選擇。最近FPGA開始達(dá)到了應(yīng)用所要求的成本競爭力。優(yōu)選的FPGA方案可用來處理計算量繁重的高端DSP
    發(fā)表于 02-17 11:21

    高能電源的設(shè)計指南

    的內(nèi)容,還將為大家講述太陽能充電控制器設(shè)計和高能智能電表電源方案。1.筆記本電腦電源適配器設(shè)計伴隨著越來越多的筆記本用戶要求高性能、小尺寸或低重量的筆記本,同時價格適宜。對于電源適配器設(shè)計人員而言,就要
    發(fā)表于 12-13 10:46

    硬件幫助將AI移動到邊緣

    進(jìn)行擴(kuò)展,并具有實現(xiàn)更新算法的靈活性和性能余量。這是你可以更有效地利用FPGA獲得的東西?!叭R迪思的AI產(chǎn)品基于其sensAI硬件/軟件堆棧,可在兩個不同的
    發(fā)表于 05-29 10:38

    Xilinx FPGA高性能SDN對的應(yīng)用

    利用 FPGA 的靈活性和可編程性,Corsa Technology 在不到六個月的時間內(nèi)設(shè)計并銷售了其首款軟件定義網(wǎng)絡(luò)交換機(jī)。作者:Yatish Kumar 首席技術(shù)官Corsa
    發(fā)表于 06-20 06:13

    如何利用FPGA開發(fā)高性能網(wǎng)絡(luò)安全處理平臺?

    通過FPGA構(gòu)建一個低成本、高性能、開放架構(gòu)的數(shù)據(jù)平面引擎可以為網(wǎng)絡(luò)安全設(shè)備提供性能提高的動力。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,性能成為制約網(wǎng)絡(luò)
    發(fā)表于 08-12 08:13

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

    科技攜手百度,推出系列高性能及高性價比EdgeBoard 邊緣AI計算卡/計算盒,助力AI項目落地??伸`活適配海量的且不斷迭代的AI模型,并
    發(fā)表于 08-31 14:12

    嵌入式邊緣AI應(yīng)用開發(fā)指南

    如果在沒有嵌入式處理器供應(yīng)商提供的合適工具和軟件的支持下,既想設(shè)計高能邊緣人工智能(AI)系統(tǒng),同時又要加快產(chǎn)品上市時間,這項工作難免會冗長乏味。面臨的一系列挑戰(zhàn)包括選擇恰當(dāng)?shù)纳疃?/div>
    發(fā)表于 11-03 06:53

    FPGA構(gòu)建高性能DSP

    FPGA構(gòu)建高性能DSP 在數(shù)據(jù)通信和圖像處理這樣的應(yīng)用中,需要強(qiáng)大的處理能力。當(dāng)最快的數(shù)字信號處理器(DSP)仍無法達(dá)到速度要求時,唯一的選擇是
    發(fā)表于 12-08 14:20 ?2307次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>高性能</b>DSP

    利用安森美半導(dǎo)體IGBT實現(xiàn)高能高性能開關(guān)應(yīng)用

    今天,不論是用在工業(yè)領(lǐng)域還是民用產(chǎn)品的開關(guān)應(yīng)用,絕緣柵雙極晶體管(IGBT)都可以提供有效的解決方案,以實現(xiàn)最終產(chǎn)品的高能高性能。在節(jié)能至上的市場上,電子設(shè)計人員首選可以實現(xiàn)高能
    發(fā)表于 11-20 17:28 ?1099次閱讀
    <b class='flag-5'>利用</b>安森美半導(dǎo)體IGBT實現(xiàn)<b class='flag-5'>高能</b><b class='flag-5'>效</b>的<b class='flag-5'>高性能</b>開關(guān)應(yīng)用

    高性能FPGA的典型應(yīng)用詳細(xì)資料說明

    本文檔的詳細(xì)介紹的是高性能FPGA的典型應(yīng)用詳細(xì)資料說明內(nèi)容包括了:1.Altera的FPGA體系結(jié)構(gòu)和代表產(chǎn)品,2.基于FPGA和DSP的軟件無線電解決方案,3.
    發(fā)表于 04-18 17:30 ?24次下載
    <b class='flag-5'>高性能</b><b class='flag-5'>FPGA</b>的典型應(yīng)用詳細(xì)資料說明

    什么樣的FPGA會更好地適用于邊緣AI

    FPGA從成本、性能、開發(fā)門檻方面都在改變滿足邊緣AI的需求,那到底什么樣的FPGA可以更好滿足邊緣
    發(fā)表于 12-16 15:24 ?719次閱讀

    邊緣AI設(shè)計需要全面的開發(fā)工具

      網(wǎng)絡(luò)邊緣高能 AI 已經(jīng)到來,這使得邊緣 AI SoC 以及支持它們的綜合開發(fā)工具成為必
    的頭像 發(fā)表于 07-11 10:51 ?856次閱讀

    利用FPGA構(gòu)建邊緣AI推理的解決方案

    對于希望在邊緣的推理處理器上實施人工智能 (AI) 算法的設(shè)計人員來說,他們正不斷面臨著降低功耗并縮短開發(fā)時間的壓力,即使在處理需求不斷增加的情況下也是如此?,F(xiàn)場可編程門陣列 (FPGA) 為實施
    的頭像 發(fā)表于 10-13 09:51 ?1123次閱讀

    使用 FPGA 快速路徑構(gòu)建高性能、高能邊緣 AI 應(yīng)用

    發(fā)表于 11-24 19:34 ?0次下載
    使用 <b class='flag-5'>FPGA</b> <b class='flag-5'>快速</b><b class='flag-5'>路徑</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>高性能</b>、<b class='flag-5'>高能</b><b class='flag-5'>效</b>的<b class='flag-5'>邊緣</b> <b class='flag-5'>AI</b> 應(yīng)用

    研華和Hailo聯(lián)合推出可擴(kuò)展、高能邊緣AI解決方案

    工業(yè)嵌入式AI解決方案供應(yīng)商研華榮幸宣布與AI芯片制造商Hailo合作。通過合作,雙方將推出即用成熟平臺,在邊緣部署可擴(kuò)展高性能AI。該方案
    發(fā)表于 11-09 17:44 ?284次閱讀
    研華和Hailo聯(lián)合推出可擴(kuò)展、<b class='flag-5'>高能</b><b class='flag-5'>效</b><b class='flag-5'>邊緣</b><b class='flag-5'>AI</b>解決方案