
萊迪思半導(dǎo)體白皮書
2019年1月
人工智能(AI)如今無處不在。這項(xiàng)革命性科技正逐漸滲透到更多領(lǐng)域,影響范圍之廣將遠(yuǎn)超出你的想象。不管從事什么業(yè)務(wù),每家公司似乎都或多或少與AI產(chǎn)生聯(lián)系。尤其是如今人們想方設(shè)法將AI運(yùn)用到自動(dòng)駕駛汽車、物聯(lián)網(wǎng)(IoT)、網(wǎng)絡(luò)安全、醫(yī)療等諸多領(lǐng)域。企業(yè)領(lǐng)導(dǎo)者應(yīng)當(dāng)深刻了解如何將AI運(yùn)用 到他們的產(chǎn)品之中,如果率先采用AI獲得成功,遲遲未行動(dòng)的后來者將會(huì)陷入困境。
然而AI應(yīng)用種類各異,各有千秋。不同的應(yīng)用領(lǐng)域要求的AI技術(shù)也不盡相同。目前最受關(guān)注的應(yīng)用類別當(dāng)屬嵌入式視覺。這一領(lǐng)域的AI使用所謂的卷積神經(jīng)網(wǎng)絡(luò)(CNN),試圖模擬人眼的運(yùn)作方式。在這 篇AI白皮書中,我們主要關(guān)注視覺應(yīng)用,當(dāng)然其中許多概念也適用于其他應(yīng)用。
目錄
第一節(jié) | 網(wǎng)絡(luò)邊緣AI的要求 3
第二節(jié) | 推理引擎的選擇 5
第三節(jié) | 在萊迪思FPGA中構(gòu)建推理引擎 7
第四節(jié) | 在萊迪思FPGA上構(gòu)建推理模型 8
第五節(jié) | 兩個(gè)檢測實(shí)例 10
第六節(jié) | 小 結(jié) 13
網(wǎng)絡(luò)邊緣AI的要求
AI涉及創(chuàng)造一個(gè)工作流程的訓(xùn)練模型。然后該模型在某個(gè)應(yīng)用中對(duì)現(xiàn)實(shí)世界的情況進(jìn)行推理。因此,AI應(yīng)用有兩個(gè)主要的生命階段:訓(xùn)練和推理。
訓(xùn)練是在開發(fā)過程中完成的,通常在云端進(jìn)行。推理作為一項(xiàng)持續(xù)進(jìn)行的活動(dòng),則是通過部署的設(shè)備完 成。因?yàn)橥评砩婕暗挠?jì)算問題會(huì)非常復(fù)雜,目前大部分都是在云端進(jìn)行。但是做決策的時(shí)間通常都十分有限。向云端傳輸數(shù)據(jù)然后等待云端做出決策非常耗時(shí)。等到做出決策,可能為時(shí)已晚。而在本地做決策則能節(jié)省那寶貴的幾秒鐘時(shí)間。
這種實(shí)時(shí)控制的需求適用于需要快速做出決策的諸多領(lǐng)域。例如人員偵測:
其他實(shí)時(shí)在線的應(yīng)用包括:
在快速?zèng)Q策這種需求的推動(dòng)下,目前將推理過程從云端轉(zhuǎn)移到“網(wǎng)絡(luò)邊緣”的訴求異常強(qiáng)烈——即在設(shè)備上收集數(shù)據(jù)然后根據(jù)AI決策采取行動(dòng)。這將解決云端不可避免的延遲問題。
本地推理還有兩個(gè)好處。第一個(gè)就是隱私安全。數(shù)據(jù)從云端來回傳輸,以及儲(chǔ)存在云端,容易被入侵和盜取。但如果數(shù)據(jù)從未到達(dá)設(shè)備以外的地方,出現(xiàn)問題的幾率就小得多。
另一個(gè)好處與網(wǎng)絡(luò)帶寬有關(guān)。將視頻傳送到云端進(jìn)行實(shí)時(shí)處理會(huì)占用大量的帶寬。而在本地做決策則能省下這部分帶寬用于其他要求較高的任務(wù)。
此外:
o 這類設(shè)備通常都是使用電池供電——或者,如果是電源直接供電,兩者都有散熱限制,從而給設(shè)備的持續(xù)使用造成限制。而與云端通信的設(shè)備需要管理自身的功耗的散熱問題。
o AI模型演化速度極快。在訓(xùn)練始末,模型的大小會(huì)有極大差異,并且在進(jìn)入開發(fā)階段以前,可能無法很好地估算所需計(jì)算平臺(tái)的大小。此外,訓(xùn)練過程發(fā)生的細(xì)微改變就會(huì)對(duì)整個(gè)模型造成重大影響,增加了變數(shù)。所有這些使得網(wǎng)絡(luò)邊緣設(shè)備硬件大小的估計(jì)變得尤為困難。
o 在為特定設(shè)備優(yōu)化模型的過程中,始終伴隨著權(quán)衡。 這意味著模型在不同的設(shè)備中可能以不同的方式運(yùn)行。
o 最后,網(wǎng)絡(luò)邊緣中的設(shè)備通常非常小。這就限制了所有AI推理設(shè)備的大小。
由此我們總結(jié)出以下關(guān)于網(wǎng)絡(luò)邊緣推理的幾點(diǎn)重要要求:
用于網(wǎng)絡(luò)邊緣AI推理的引擎必須:
? 功耗低
? 非常靈活
? 拓展性強(qiáng)
? 尺寸小
萊迪思的sensAI能讓你開發(fā)出完全具備以上四個(gè)特征的推理引擎。它包含了硬件平臺(tái)、軟IP、神經(jīng)網(wǎng)絡(luò)編譯器、開發(fā)模塊和開發(fā)資源,能夠助您迅速開發(fā)理想中的設(shè)計(jì)。
推理引擎的選擇
將推理引擎構(gòu)建到網(wǎng)絡(luò)邊緣設(shè)備中涉及兩個(gè)方面:開發(fā)承載模型運(yùn)行的硬件平臺(tái)以及開發(fā)模型本身。
理論上來說,模型可以在許多不同的架構(gòu)上運(yùn)行。但若要在網(wǎng)絡(luò)邊緣,尤其是在實(shí)時(shí)在線的應(yīng)用中運(yùn)行模型,選擇就變少了,因?yàn)橐紤]到之前提到的功耗、靈活性和擴(kuò)展性等要求。
? MCU - 設(shè)計(jì)AI模型的最常見做法就是使用處理器,可能是GPU或者DSP,也有可能是微控制器。但是網(wǎng)絡(luò)邊緣設(shè)備上的處理器可能就連實(shí)現(xiàn)簡單的模型也無法處理。這樣的設(shè)備可能只有低端的微控制器
(MCU)。而使用較大的處理器可能會(huì)違反設(shè)備的功耗和成本要求,因此對(duì)于此類設(shè)備而言,AI似乎難以實(shí)現(xiàn)。
這正是低功耗FPGA發(fā)揮作用的地方。與增強(qiáng)處理器來處理算法的方式不同,萊迪思的ECP5或UltraPlus FPGA可以作為MCU的協(xié)處理器,處理MCU無法解決的復(fù)雜任務(wù)之余,將功耗保持在要求范圍內(nèi)。由于這些萊迪思FPGA能夠?qū)崿F(xiàn)DSP,它們可以提供低端MCU不具備的計(jì)算能力。
圖1:FPGA作為MCU的協(xié)處理器
? ASICS和ASSP - 對(duì)于更為成熟、大批量銷售的AI模型而言,采用ASIC或特定應(yīng)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)或許是可行之道。但是由于工作負(fù)載較大,它們在實(shí)時(shí)在線的應(yīng)用中的功耗太大。
在此情況下,Lattice FPGA可以充當(dāng)協(xié)處理器,處理包括喚醒關(guān)鍵字的喚醒活動(dòng)或粗略識(shí)別某些視頻圖像(如識(shí)別與人形相似的物體) ,然后才喚醒ASIC或ASSP,識(shí)別更多語音或者確定視頻中的目標(biāo)確實(shí)是一個(gè)人(或甚至可以識(shí)別特定的人)。
FPGA處理實(shí)時(shí)在線的部分,這部分的功耗至關(guān)重要。然而并非所有的FPGA都能勝任這一角色,因?yàn)榻^大多數(shù)FPGA功耗仍然太高,而萊迪思ECP5和UltraPlus FPGA則擁有必要的低功耗特性。
圖2 FPGA作為ASIC/ASSP的協(xié)處理器
? 單獨(dú)運(yùn)行的FPGA AI引擎 - 最后,低功耗FPGA可以作為單獨(dú)運(yùn)行的、完整的AI引擎。FPGA中的DSP在這里起了關(guān)鍵作用。即便網(wǎng)絡(luò)邊緣設(shè)備沒有其他的計(jì)算資源,也可以在不超出功耗、成本或電路板尺寸預(yù)算的情況下添加AI功能。此外它們還擁有支持快速演進(jìn)算法所需的靈活性和可擴(kuò)展性。
圖3 單獨(dú)使用FPGA的整合解決方案
在萊迪思FPGA中構(gòu)建推理引擎
設(shè)計(jì)AI推理模型的硬件需要不斷平衡所需資源數(shù)量與性能和功率要求。萊迪思的ECP5和UltraPlus產(chǎn)品系列能輕松實(shí)現(xiàn)這種平衡。
ECP5系列擁有三種不同規(guī)格的器件,能夠運(yùn)行一到八個(gè)推理引擎。它們集成的本地存儲(chǔ)器從1 Mb到3.7 Mb不等。功耗最高僅為1 W,尺寸也只有100 mm2。
相比之下,UltraPlus系列的功耗水平低至ECP5系列的千分之一,僅為1 mW。占用的電路板面積僅為5.5
mm2,包括了最多8個(gè)乘法器和最多1 Mb的本地存儲(chǔ)器。
萊迪思還提供可在這些器件上高效運(yùn)行的CNN IP以及可用于ECP5系列的CNN加速器。
圖4 適用于ECP5系列的CNN加速器
萊迪思還提供可用于UltraPlus系列的輕量化CNN加速器。
圖5 適用于UltraPlus系列的輕量化CNN加速器
這里暫且不談細(xì)節(jié);重點(diǎn)在于您無須從頭開始設(shè)計(jì)自己的AI引擎。您可以聯(lián)系萊迪思獲取關(guān)于這些IP的更多信息。
最后,您還可以在開發(fā)模塊上運(yùn)行并測試這些演示,兩個(gè)模塊分別對(duì)應(yīng)這兩種產(chǎn)品系列。Himax HM01B0 UPduino Shield采用了一片UltraPlus FPGA, 尺寸為22x50 mm2。嵌入式視覺開發(fā)套件采用了一片ECP5 FPGA,尺寸為80x80 mm2。
圖6 評(píng)估AI應(yīng)用的開發(fā)模塊
有了FPGA、軟IP和其他處理數(shù)據(jù)所需的硬件部分,就可以使用Lattice Diamond設(shè)計(jì)工具進(jìn)行編譯,從而生成位流,在每次上電后對(duì)目標(biāo)設(shè)備中的FPGA進(jìn)行配置。
在萊迪思FPGA上構(gòu)建推理模型
創(chuàng)建推理模型與創(chuàng)建底層運(yùn)行平臺(tái)大不相同。它更抽象,涉及更多運(yùn)算,且不涉及RTL設(shè)計(jì)。 這一過程主要有兩個(gè)步驟:創(chuàng)建抽象模型,然后根據(jù)所選平臺(tái)優(yōu)化模型的實(shí)現(xiàn)。
模型訓(xùn)練在專門為此過程設(shè)計(jì)的框架中進(jìn)行。最流行的兩個(gè)框架是Caffe和TensorFlow,但不限于此。
CNN由很多層構(gòu)成——卷積層,可能還會(huì)有池化層和全連接層——每一層都有由前一層的結(jié)果饋送的節(jié)點(diǎn)。每個(gè)結(jié)果都在每個(gè)節(jié)點(diǎn)處加權(quán)重,權(quán)重多少則由訓(xùn)練過程決定。
訓(xùn)練框架輸出的權(quán)重通常是浮點(diǎn)數(shù)。這是權(quán)重最為精確的體現(xiàn),然而大多數(shù)網(wǎng)絡(luò)邊緣設(shè)備不具備浮點(diǎn)運(yùn)算功能。這時(shí)我們需要針對(duì)特定平臺(tái)對(duì)這個(gè)抽象模型進(jìn)行優(yōu)化,這項(xiàng)工作由萊迪思的神經(jīng)網(wǎng)絡(luò)編譯器負(fù)責(zé)。
編譯器可以實(shí)現(xiàn)加載和查看從某個(gè)CNN框架下載的原始模型。您可以運(yùn)行性能分析,這對(duì)模型優(yōu)化最關(guān)鍵的方面——量化至關(guān)重要。
由于無法處理浮點(diǎn)數(shù),因此需要將它們轉(zhuǎn)換為整數(shù)。對(duì)浮點(diǎn)數(shù)四舍五入也就意味著精度會(huì)降低。問題是, 什么樣的整數(shù)精度才能滿足您想要的精度?通常使用的最高精度為16位,但是權(quán)重和輸入可以表示為較小的整數(shù)。萊迪思目前支持16、8和1位的設(shè)計(jì)實(shí)現(xiàn)。
1位的設(shè)計(jì)實(shí)際是在一位整數(shù)域中進(jìn)行訓(xùn)練以保持精度。顯然,更小的數(shù)據(jù)單元意味著性能更高、硬件尺寸更小以及功耗更低。但是,精度太低就無法準(zhǔn)確地推斷視野中的物體。
圖7 可以對(duì)單個(gè)模型進(jìn)行優(yōu)化以適用于不同的設(shè)備
神經(jīng)網(wǎng)絡(luò)編譯器能讓您創(chuàng)建代表模型的指令流,然后可以模擬或直接測試這些指令,從而判斷在性能、功耗和精度之間是否達(dá)到了適度的平衡。測試的標(biāo)準(zhǔn)通常是看一組測試圖像(與訓(xùn)練圖像不同)中正確處理的圖像的百分比。
通??梢酝ㄟ^優(yōu)化模型來優(yōu)化運(yùn)行,包括去掉一些節(jié)點(diǎn)以減少資源消耗,然后重新訓(xùn)練模型。這一設(shè)計(jì)環(huán)節(jié)可以微調(diào)精度,同時(shí)保證能在有限的資源下順利運(yùn)行。
兩個(gè)檢測實(shí)例
在以下兩個(gè)不同的視覺案例中,我們將看到權(quán)衡是如何發(fā)揮作用的。第一個(gè)應(yīng)用是人臉檢測;第二個(gè)是人員偵測。我們將看到不同F(xiàn)PGA之間存在的資源差異如何影響到相對(duì)應(yīng)的應(yīng)用的性能和功耗。
兩個(gè)示例的輸入都源自同一個(gè)攝像頭,兩者都在相同的底層引擎架構(gòu)中運(yùn)行。在UltraPlus設(shè)計(jì)實(shí)例中,圖像的尺寸縮小后通過8個(gè)乘法器進(jìn)行處理,利用了內(nèi)部存儲(chǔ)器并使用了LED指示燈。
圖8 UltraPlus平臺(tái)用于人臉檢測和人員偵測應(yīng)用
ECP5系列資源更多,提供了一個(gè)計(jì)算能力更強(qiáng)的平臺(tái)。攝像頭捕捉的圖像在發(fā)送到CNN之前在圖像信號(hào)處理器(ISP)中進(jìn)行預(yù)處理。處理結(jié)果與原始圖像在標(biāo)記引擎上比對(duì),從而將文本或注釋覆蓋在原始圖像上。
圖9 ECP5平臺(tái)用于人臉檢測和人員偵測應(yīng)用
我們可以使用一系列圖表來衡量兩種應(yīng)用的性能、功耗和占用面積情況。對(duì)于每個(gè)應(yīng)用,我們做了兩組示例:一組輸入較少,一組輸入較多。
圖7表示了人臉檢測應(yīng)用的結(jié)果。兩組分別采用了32x32輸入和90x90輸入的情況。
圖10 在UltraPlus和ECP5 FPGA上實(shí)現(xiàn)簡單和復(fù)雜的人臉檢測應(yīng)用時(shí)的性能、功耗和占用面積
左側(cè)的軸代表處理一張圖片需要的周期數(shù)量以及這些周期的分配情況。右側(cè)的軸代表在各器件(綠線)上實(shí)現(xiàn)的每秒幀數(shù)(fps)。最后,每種情況下還標(biāo)注了功耗和占用面積。
左側(cè)的32x32輸入示例中,橙色部分代表卷積層上運(yùn)行的周期。在四個(gè)示例中,UltraPlus的乘法器數(shù)量最少;其他三片ECP5 FPGA的乘法器數(shù)量依次遞增。隨著乘法器數(shù)量的增加,卷積層所需的周期數(shù)減少。
90x90輸入的示例位于右側(cè),得到的結(jié)果完全不同。在每個(gè)柱形圖的底部有大面積的藍(lán)色區(qū)域。這是由于設(shè)計(jì)更為復(fù)雜,使用了除器件內(nèi)部存儲(chǔ)空間以外的更多存儲(chǔ)器。由于需要占用外部DRAM,性能就有所損失。需要注意的是,這種設(shè)計(jì)無法使用較小的UltraPlus器件。
人員偵測應(yīng)用的情況類似。兩組分別采用了64x64輸入和128x128輸入的情況。
圖11 在UltraPlus和ECP5 FPGA上實(shí)現(xiàn)簡單和復(fù)雜的人臉檢測應(yīng)用時(shí)的性能、功耗和占用面積
同樣,較多的乘法器會(huì)減少卷積層的負(fù)擔(dān),而依賴DRAM則會(huì)影響性能。
圖9總結(jié)了各類情形下的性能。它包括了對(duì)圖像中最小可識(shí)別對(duì)象或特征的度量,用視野范圍的百分比表示。在這里使用更多輸入能夠?yàn)檩^小的目標(biāo)提供更多分辨率。
圖12 兩個(gè)應(yīng)用示例在四片F(xiàn)PGA上的性能總結(jié)
小結(jié)
總之,使用萊迪思sensAI產(chǎn)品提供的資源,您就可以在萊迪思FPGA上輕松實(shí)現(xiàn)要求低功耗、具有靈活性和可擴(kuò)展性的網(wǎng)絡(luò)邊緣AI推理設(shè)計(jì)。它可以提供成功部署AI算法所需的關(guān)鍵要素:
? 神經(jīng)網(wǎng)絡(luò)編譯器
? 神經(jīng)引擎軟IP
? Diamond設(shè)計(jì)軟件
? 開發(fā)板
? 參考設(shè)計(jì)
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時(shí)和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。
微信關(guān)注 | ||
![]() |
技術(shù)專題 | 更多>> | |
![]() |
技術(shù)專題之EMC |
![]() |
技術(shù)專題之PCB |