到目前為止,人工智能(包括訓練和推理)主要為數據中心開發。隨著“邊緣AI”這個新興領域的出現,這個趨勢正在發生變化。在不久的將來,智能手機、機器人、無人機、監控攝像頭和工業相機等設備都將配備AI處理功能。如果直接在成像設備上進行推理,事情就會變得有趣得多。離開了大數據中心,這種大功率技術如何在資源優化的嵌入式設備中高效及可持續地使用呢?目前,市場上已經有一些解決方案能夠在邊緣設備上有效加速神經網絡。但在靈活度方面,只有少部分解決方案才能跟上快速發展的AI技術的步伐。
邊緣智能
簡單來說,通過神經網絡和機器學習算法,邊緣智能設備能夠在網絡“邊緣設備上”完成推理任務。問題是,為什么我們要在嵌入式設備越來越多地使用AI以及為什么整個行業開始關注深度學習和深度神經網絡?
對于這個問題,答案與AI本身無關,而與帶寬、延時、安全性或者分散式數據處理這些話題相關。這就涉及到了現代工業4.0應用的核心主題和挑戰。把大量傳感器或者相機數據過濾或者轉換成邊緣設備上已有的可用信息,以減少共享通信信道的內在帶寬競爭,是一項重要的任務。即時數據處理能夠在圖像捕捉設備上直接做出處理決定,不會出現數據通信延時。從技術或者安全性的角度而言,甚至很難實現與中央處理器(可能在云端)進行可靠、持續的通信。以這種方式在邊緣設備上封裝獲得的數據有助于分散數據儲存和處理,減少整個系統受到攻擊的可能性。畢竟,生成和傳輸的數據安全性對于每個組織而言都至關重要。
分布式系統智能對作業相關的任務進行了清晰的區分。比如,一個工廠可能有幾百個工位,每個工位都需要圖像分類服務,對不同組的目標進行分析。但是,在云端托管多個分類器并非免費。節省成本的解決辦法就是訓練云端的所有分類器,把模型發送到邊緣設備,這些邊緣設備已根據各個工位的情況進行過調整。每個模型的性能比在所有工位做出預測的分類器更好。此外,相對于在實現數據中心這一功能,這種簡單的方案還縮短研發周期。所有這些都表明應該將推理下放至邊緣設備。
挑戰
為什么“實際上”神經網絡不適合嵌入式使用,“在邊緣設備上”使用它們面臨哪些挑戰?在邊緣設備上進行AI推理任務并不容易。總的來說,效率是邊緣計算的核心。通常,邊緣設備可用的計算、存儲和能源資源都是有限的。因此,計算必須高效進行,同時在低延時的情況下提供高性能,這兩者好像自相矛盾。我們也通過運行卷積神經網絡(CNN)來解決這一矛盾。CNN以高密度計算而著稱,處理一個輸入時需要進行數十億次計算。CNN架構本身需要數百萬個參數描述,因此原則上并非邊緣計算的理想候選方案。所謂的“參數高效”網絡(如MobilNet、EfficientNet和SqueezeNet)由少量參數描述,適合嵌入式使用。這極大減少了內存和計算需求。不僅如此。為了進一步減少存儲需求,必須壓縮網絡。例如,經過所謂的“剪枝”訓練,可以刪除不重要的參數,通過“量化”,也可以減少描述參數的位元數量。CNN內存減少對處理時間產生積極的影響。然后就是最后一個需要優化的層面。
雖然使用了參數高效和壓縮網絡,但是為了在邊緣高效運行AI,必須繼續使用一種為這些架構特別訂制的計算系統。為此,需要考慮兩個基本系統屬性。除了已經提到的效率外,該系統還應具備靈活性以支持CNN架構的新技術發展。這一點很重要,尤其是在AI領域,每月都會研發出新的架構和層類型。今天的新技術明天可能就會成為昨日黃花。有哪些平臺可供選擇呢?
平臺選擇
基于CPU的系統無疑提供最大靈活性。但與此同時,在運行CNN時,CPU效率非常低,能耗也很高。
GPU通過并行計算核心以較高功率運行CNN。GPU在圖像處理方面比CPU專業,而且還擁有較高的靈活性。然而,GPU能耗大,因此在邊緣設備上運行會存在很多問題。
可編程FPGA架構可以在現場重新配置,因此可以適應新的CNN架構。FPGA支持并行運行模式,因此能夠高效運行。然而,FGPA編程要求具備較高程度的硬件知識。
作為定制的集成電路,全套ASIC解決方案在效率方面明顯更勝一籌,因為它經過專門優化,能夠有效執行給定的CNN架構。但是,如果新的或變更后的CNN架構得不到支持,靈活性就是一個問題。
FPGA技術具有“高性能,靈活和節能”等優勢,因此在當前AI開發階段,最適合用來在邊緣設備上實現CNN加速器。
對于特殊的應用場合或CNN,通過新的配置文件更新即可在設備運行期間隨時對它進行修改這一特點,使其成為一種可以長期使用的解決方案,因此,它適合工業應用場合。使用FPGA技術的最大挑戰就是編程復雜,只能由專業人士完成。
開發策略
為了在“視覺邊緣設備”(即:IDS NXT相機)中運行神經網絡,我們決定在FPGA技術的基礎上開發CNN加速器。我們稱它為“深海核心”。但是為了以后盡可能簡單地使用FPGA,我們只開發一種通用架構,而不是為了不同的CNN類型開發幾種專門優化的配置。如果CNN由受支持的層組成,加速器能夠運行任何CNN網絡。然而,因為所有的常規層(卷積層、附加層、各種池化層或壓縮激勵層)已經得到支持,所以幾乎所有重要的層類型都能使用。這就完全解決了編程困難的問題,因為用戶不需要任何專業知識就能創建新的FPGA配置。通過對IDS NXT相機進行固件更新,深海核心不斷進化以支持CNN領域發生的新變化。
深海核心
通用CNN加速器如何運作?要運行一個受訓的神經網絡,哪些步驟是必要的?加速器只需要一種顯示構成CNN網絡各層的“二進制描述”。這也不需要編程就能實現。但是,經過Keras訓練的神經網絡處于一種加速器無法理解的特殊的“Keras高級語言”狀態。因此,必須將神經網絡轉換為類似“鏈表”的二進制格式。CNN網絡的每一層都變成節點端描述符,對各層進行精確地描述。最終結果是CNN(以二進制表示)的完整串聯列表。整個轉換過程由工具自動化完成。不需要任何專業知識。生成的二進制文件會進入相機的內存并由深海核心進行處理。CNN網絡現在就可以在IDS NXT相機上運行。
運行的靈活性
將CNN表示作為鏈表在加速器靈活性方面具有明顯的優勢。它可以實現在動態網絡之間隨時無縫切換,而且還沒有延遲。相機的工作內存可以加載數個以“鏈表”形式存在的不同神經網絡。選擇要運行的CNN之前,深海加速器必須指向其中一個表的起始位置。唯一要做的是更改其中一個表內存的“指針值”。FPGA寄存器的這種簡單寫入操作隨時都可以快速進行。
以下示例解釋了快速切換CNN網絡的重要性。比如您的一條產品線同時運行兩種類型的產品。而您想要檢查產品質量。首先確認產品位置,然后在已確認的產品類別基礎上,根據產品特定的缺陷對質量進行分類。
要解決該任務,可以通過對各個產品組的所有潛在失敗案例進行預訓練,從而訓練龐大的CNN網絡來找到對象并同時對它們分類。這個方法成本高昂,還會增加網絡規模并且可能導致運行緩慢,但是確實可行。它的難點在于如何達到足夠的精確度。憑借隨時可以改變主用CNN網絡這一特性,您可以將不同目標的本地化和分類區分開,結果是單個CNN更容易訓練。要識別對象,您只需區分兩個分類并提供它們的位置。對于產品相關的屬性和缺陷分類,需額外訓練兩個網絡。根據本地化的產品,相機應用程序會自動決定要激活哪個分類網絡,以確定相應的產品質量。通過這種方法,邊緣設備處理的任務變得相對簡單,參數也很少。結果就是,單個網絡規模大幅縮小,需要區分的功能也減少很多,導致效率提升,能耗減少,非常適合在邊緣設備上執行。
性能強,效率高
IDS NXT推理相機中基于FPGA的CNN加速器通過帶64位計算核心的Xilinx Zynq Ultrascale SoC來運行。很多知名圖像分類網絡(例如MobileNet、SqueezeNet或EfficientNet)可以達到每秒67幀的幀率。對于邊緣計算而言,有些網絡架構(Inception 或ResNet)被認為過于復雜,但是也能達到每秒20幀,已經能夠滿足很多應用程序的需要。FPGA能夠進一步開發深海加速器的性能。固件更新對所有現場的相機都有利。
然而,對于邊緣計算來說,更為重要的是能效。它表示每使用一瓦電,系統每秒可以處理的圖像數量。因此能效對于比較不同邊緣解決方案而言是一個很好的指標。以下圖表比較了不同的CNN加速器。
實現FPGA的深海核心,配備Jetson TX 2A的GPU 解決方案,配備最新Intel Core-i7 CPU的傳統CPU解決方案,Raspberry Pi嵌入式CPU解決方案以及以Intel Movidius AI芯片為代表的ASIC解決方案。
一體化推理相機解決方案
為了使基于FPGA的CNN加速器更易于使用,虹科提供了完整的推理相機解決方案,讓每個人都可以輕松使用這種技術。無需任何在深度學習,圖像處理或相機/FPGA編程方面的任何專業知識,用戶即可訓練和運行神經網絡,并且可以立即啟用基于AI的圖像處理。簡單上手的工具降低了入門門檻,讓用戶在幾分鐘內就可以創建推理任務并立即在相機上運行。整個概念不僅涉及智能相機平臺虹科 NXT(配備以FPGA技術為基礎的CNN加速器“深海核心”),還包括易用的神經網絡訓練軟件。所有組件均由虹科合作伙伴IDS直接開發,可實現完美協作。這不僅簡化了工作流程,還提高了整個系統的效率。
可持續的邊緣智能
本文列舉的所有神經網絡加速方案都有各自的優點和缺點。如果終端用戶必須處理必要的組件以便將AI用于機器視覺任務,則傾向于他們使用完全集成的AI加速器,例如Intel Movidius。即用型芯片解決方案效率高,能夠實現只有大批量采購才能獲得的單價,并且由于存在大量的功能文檔記錄,因此可以快速、相對輕松地集成到系統中。但是,有一個問題。AI環境如今發展勢頭強勁,日新月異,而即用型芯片解決方案開發周期過長。為了開發在今天能夠普遍使用并且高度靈活的“邊緣智能”,系統組件必須滿足其他要求。FPGA集靈活性、性能、能效和可持續性于一身。畢竟,衡量工業產品的一個最重要的標準就是“工業適用性”,而確保“工業適用性”的因素包括長期可用性和簡單以及長期的可維護性。如今,易用的虹科NXT推理相機平臺與FPGA CNN加速器相結合,提供了一種可持續的邊緣智能端到端解決方案,使終端用戶無需擔心單個組件和AI更新。
責任編輯:lq6
-
嵌入式
+關注
關注
5150文章
19659瀏覽量
317401 -
AI
+關注
關注
88文章
35098瀏覽量
279539
原文標題:虹科智能感知 | 未來AI的推理加速器
文章出處:【微信號:Hongketeam,微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
RK3576 vs RK3588:為何越來越多的開發者轉向RK3576?
飛凌嵌入式2025嵌入式及邊緣AI技術論壇圓滿結束

飛凌嵌入式「2025嵌入式及邊緣AI技術論壇」議程公布

嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-初識設備樹之設備樹組成和結構
飛凌嵌入式ElfBoard ELF 1板卡-初識設備樹之設備樹組成和結構
嵌入式超火的方向有哪些?
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+ Hypervisor應用場景調研
為什么越來越多的視頻監控AI分析做到了攝像頭上?

評論