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