用FPGA構建邊緣AI推理應用很難?這樣做,變簡單!
發布時間:2023-11-02 來源:DigiKey 責任編輯:wenwei
【導讀】對於希望在邊緣的推理處理器上實施人工智能 (AI) 算suan法fa的de設she計ji人ren員yuan來lai說shuo,他ta們men正zheng不bu斷duan麵mian臨lin著zhe降jiang低di功gong耗hao並bing縮suo短duan開kai發fa時shi間jian的de壓ya力li,即ji使shi在zai處chu理li需xu求qiu不bu斷duan增zeng加jia的de情qing況kuang下xia也ye是shi如ru此ci。現xian場chang可ke編bian程cheng門men陣zhen列lie (FPGA) 為實施邊緣AI所需的神經網絡 (NN) 推理引擎提供了特別有效的速度和效率效率組合。然而,對於不熟悉 FPGA 的開發人員來說,傳統FPGA的開發方法可能相當複雜,往往導致他們去選擇不太理想的解決方案。
本文將介紹來自Microchip Technology的一種比較簡單的方法。通過這種方法,開發人員可以使用FPGA和軟件開發套件 (SDK) 構建經過訓練的NN,或者使用基於FPGA的視頻套件立即啟動智能嵌入式視覺應用開發,從而避開傳統的FPGA開發。
為什麼要在邊緣使用AI?
邊緣計算為物聯網 (IoT) 應用帶來了諸多好處,涵蓋了包括工業自動化、安全係統、智能家居等在內的多個領域。在以工廠車間為目標的工業物聯網 (IIoT) yingyongzhong,bianyuanjisuantongguobimiandaoyunduanyingyongdewangfanyanchi,keyixianzhusuoduanguochengkongzhihuanludexiangyingshijian。tongyang,jiyubianyuandeanquanxitonghuozhinengjiajumensuojishiyouyuyiwaihuorenweiyuanyinyuyunduandelianjieduankaishi,yenengjixuzhengchanggongzuo。zaihenduoqingkuangxia,zairenhecileiyingyongzhongshiyongbianyuanjisuanshi,doukeyitongguojianshaochanpinduiyunziyuandeyilailaibangzhujiangdizhengtiyunyingchengben。suizhechanpinyaoqiudetigao,kaifazhekeyiyikaochanpinzhongneizhidebendichuligongnengqubangzhuweichigengwendingdeyunyingkaizhi,erbuhuimianlinzengjiaangguideyunziyuandeyiwaixuqiu。
對機器學習 (ML) tuilimoxingdekuaisujieshouhexuqiudezengjia,jidaditigaolebianyuanjisuandezhongyaoxing。duiyukaifarenyuanlaishuo,tuilimoxingdebendichulinengliyouzhuyujiangdiyunduantuilisuoxudexiangyingyanchiheyunziyuanchengben。duiyuyonghulaishuo,shiyongbendituilimoxinghuirangtamengengjiaxiangxin,qichanpinzaioueryuhulianwangduankaihuojiyuyundegongyingshangchanpinfashengbianhuashirengnengzhengchangyunxing。ciwai,zaianquanheyinsifangmiandedanyouhuijinyibutuidongduibendichulihetuilidexuqiu,yixianzhitongguogonggonghulianwangchuanshudaoyunduandeminganxinxishuliang。
為基於視覺的對象檢測開發NN推理模型是一個多步驟過程。首先進行模型訓練,這一步通常在TensorFlow等ML框kuang架jia上shang使shi用yong公gong開kai的de標biao記ji圖tu像xiang或huo自zi定ding義yi的de標biao記ji圖tu像xiang進jin行xing訓xun練lian。由you於yu處chu理li需xu求qiu,模mo型xing訓xun練lian通tong常chang使shi用yong雲yun端duan或huo其qi他ta高gao性xing能neng計ji算suan平ping台tai的de圖tu形xing處chu理li單dan元yuan (GPU) 進行。訓練完成後,模型被轉換為能夠在邊緣或霧計算資源上運行的推理模型,並將推理結果以一組對象類概率的形式交付(圖1)。
圖1:在多步驟過程的末端實現邊緣人工智能的推理模型,需要使用現有或定製型訓練數據在框架上訓練和優化NN。(圖片來源:Microchip Technology)
為什麼推理模型存在計算方麵的挑戰?
與訓練過程中使用的模型相比,雖然NN推理模型的大小和複雜程度都有所降低,但還是需要大量計算,這對於通用處理器來說仍是一個挑戰。在其通用形式中,深層NN模型由多層神經元集組成。在一個全連接網絡的每一層內,每個神經元nij 都需要計算每個輸入與相關權重係數Wij 的乘積之和(圖2)。
圖2:通過NN進行推理所需的計算次數會造成龐大的計算工作量。(圖片來源:Microchip Technology)
圖2中沒有顯示激活函數和類似函數帶來的額外計算要求。激活函數通過將負值映射為零,將大於1的值映射為1來修改每個神經元的輸出。每個神經元nij 的激活函數的輸出作為下一層i+1的輸入,以此類推直至每一層。NN模型的輸出層最終產生一個輸出向量,代表原始輸入向量(或矩陣)對應於監督學習過程中使用的某一個類(或標簽)的概率。
相比上圖所示具有代表性的通用NN架構,有效的NN模型是由大得多、複雜得多的架構來構建的。例如,用於圖像對象檢測的典型卷積NN (CNN) 以分段方式應用這些原理,掃描輸入圖像寬度、高度和顏色深度,從而生成一係列最終會產生輸出預測向量的特征圖(圖3)。
圖3:用於圖像對象檢測的CNN會在許多層中牽涉到大量神經元,這對計算平台提出了更高的要求。(圖片來源:Aphex34 CC BY-SA 4.0)
用FPGA加速NN數學
雖然在邊緣執行推理模型的方案不斷湧現,但很少有方案能夠提供實際的邊緣高速推理所需的最佳靈活性、性能和能效組合。在現有的邊緣AI替代品中,FPGA特別有效,因為它們可執行基於硬件的高性能計算密集型工作,同時功耗相對較低。
盡管FPGA優勢突出,但由於傳統的開發流程有時會讓沒有豐富FPGA經驗的開發人員望而生畏,舍棄FPGA。為了有效實施通過NN框架生成的NN模型的FPGA,開發人員需要了解將模型轉換為寄存器傳輸語言 (RTL)、設計綜合和最終審定之間的細微差別,並需要製定具體的設計階段路線,從而做到優化實施(圖4)。
圖4:為了在FPGA上實現NN模型,開發人員即便是現在還需要了解如何將其模型轉換為RTL,並執行傳統的FPGA工作流程。(圖片來源:Microchip Technology)
憑借其PolarFire FPGA、專用軟件和相關知識產權 (IP),Microchip Technology提供了一種解決方案,讓沒有FPGA經驗的開發人員也能廣泛地使用高性能、低功耗邊緣推理。
PolarFire FPGA采用先進的非易失性工藝技術製造,旨在最大限度地提高靈活性和性能,同時將功耗降至最低。除了用於通信和輸入/輸出 (I/O) 的大量高速接口外,它們還具有深厚的FPGA結構,能夠使用軟IP內核支持高級功能,具體包括RISC-V處理器、高級內存控製器和其他標準接口子係統(圖5)。
圖 5:Microchip Technology 的 PolarFire 架構提供了一種深度結構,旨在支持高性能設計要求,包括實施計算密集型推理模型。(圖片來源:Microchip Technology)
PolarFire FPGA架構提供了一套廣泛的邏輯元件和專用功能塊,通過PolarFire FPGA係列的不同器件獲得各種不同的容量支持,具體包括MPF100T、MPF200T、MPF300T和MPF500T係列(表1)。
表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處理係統將包括CoreVectorBlox IP塊、存儲器、存儲器控製器和主機處理器,如微軟RISC-V (Mi-V) 軟件處理器內核(圖6)。
圖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)。
圖 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)。
圖8:VectorBlox Accelerator SDK提供了一套全麵的服務,旨在優化由框架生成的推理模型的FPGA實施。(圖片來源:Microchip Technology)
VectorBlox Accelerator SDK支持采用開放神經網絡交換 (ONNX) 格式的模型,以及來自包括TensorFlow、Caffe、Chainer、PyTorch和MXNET在內的多種框架的模型。可支持的CNN架構包括MNIST、MobileNet版、ResNet-50、Tiny Yolo V2和Tiny Yolo V3。Microchip正在努力擴大支持範圍,將大多數網絡納入預訓練模型的開源式OpenVINO工具包開放模型動物園中,包括Yolo V3、Yolo V4、RetinaNet和SSD-MobileNet等。
視頻套件演示FPGA推理
為幫助開發人員快速啟動智能嵌入式視覺應用開發,Microchip Technology提供了一個全麵的樣例應用,設計用於在該公司的MPF300-VIDEO-KIT PolarFire FPGA視頻和成像套件和參考設計上運行。
基於Microchip MPF300T PolarFire FPGA,該套件電路板結合了雙攝像頭傳感器、雙數據速率4 (DDR4) RAM、閃存、電源管理和各種接口(圖9)。
圖9:MPF300-VIDEO-KIT PolarFire FPGA視頻和成像套件及相關軟件能讓開發人員在智能嵌入式視覺應用中快速啟動基於FPGA的推理。(圖片來源:Microchip Technology)
該套件附帶一個完整的Libero設計項目,用於生成固件和網絡BLOB文件。將BLOB文件編程到板載閃存中後,開發人員點擊Libero中的運行按鈕即可開始演示,處理來自攝像頭傳感器的視頻圖像,並將推理結果在顯示屏上顯示(圖10)。
圖10:Microchip Technology PolarFire FPGA視頻和成像套件演示了如何設計和使用圍繞Microchip CoreVectorBlox NN引擎構建的智能嵌入式視覺係統的FPGA實施。(圖片來源:Microchip Technology)
對於每個輸入視頻幀,基於FPGA的係統會執行以下步驟(步驟編號與圖10相關)。
1. 從相機中加載一幀畫麵
2. 將幀存儲在RAM中
3. 讀取RAM中的幀
4. 將原始圖像轉換為RGB、平麵化RGB並將結果存儲在RAM中。
5. Mi-V soft RISC-V處理器啟動CoreVectorBlo x引擎,從RAM中檢索圖像,進行推理並將分類概率結果存儲回RAM中。
6. Mi-V使用結果創建一個包含邊界框、分類結果和其他元數據的疊加幀,並將該框架存儲在RAM中。
7. 原始幀與疊加幀混合並寫入HDMI顯示屏。
該演示支持Tiny Yolo V3和MobileNet V2模型加速,但需要開發人員改動少許代碼,將模型名稱和元數據添加到包含兩個默認模型的現有列表中,即可使用上述方法運行其他SDK支持的模型。
結論
NN模型等人工智能算法通常會施加計算密集型工作負載,這需要比通用處理器更強大的計算資源。雖然FPGA能夠很好地滿足推理模型執行的性能和低功耗要求,但傳統的FPGA開發方法可能會很複雜,往往導致開發人員轉向不太理想的解決方案。
如圖所示,使用Microchip Technology的專用IP和軟件,沒有FPGA經驗的開發人員也能實施基於推理的設計,更好地滿足性能、功耗以及設計進度要求。
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
- 冬季續航縮水怎麼辦?揭秘熱管理係統背後的芯片力量
- 從HDMI 2.1到UFS 5.0:SmartDV以領先IP矩陣夯實邊緣計算基石
- 小空間也能實現低噪供電!精密測量雙極性電源選型指南,覆蓋小功率到大電流全場景
- 直擊藍牙亞洲大會 2026:Nordic 九大核心場景演繹“萬物互聯”新體驗
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall





