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