模擬內存計算如何解決邊緣AI推理的功耗挑戰

2020-11-23 東方財富網

機器學習和深度學習已經成為我們生活中不可或缺的一部分。通過自然語言處理(NLP)、圖像分類和對象檢測的人工智慧(AI)應用已經深入到我們許多設備中。大多數人工智慧應用程式都是通過基於雲的引擎提供服務,這些引擎可以很好地為它們的用途提供基礎支持,比如在Gmail中輸入電子郵件回復時獲得單詞預測。

儘管我們很享受這些人工智慧應用所帶來的好處,但這種方法也帶來了隱私、功耗、延遲和成本方面的挑戰。如果在數據起源處有一個本地處理引擎能夠執行部分或全部計算(推理),則可以解決這些挑戰。這在傳統的數字神經網絡實現中是很難做到的,在這種情況下,內存成為了耗電的瓶頸。這個問題可以通過多層內存和使用模擬內存計算方法來解決,這些計算方法可讓處理引擎能夠滿足在網絡邊緣執行人工智慧推斷所需的更低的毫瓦到微瓦的功率要求。

雲計算的挑戰

當人工智慧應用程式通過基於雲的引擎提供服務時,用戶必須上傳一些數據到雲中,由計算引擎處理數據,提供預測,並將預測發送到下遊,供用戶使用。

在這一進程中也有一些困難:

1。隱私和安全問題:對於始終在線的、感知的設備,人們擔心個人數據在上傳期間或在數據中心的存儲期間被濫用。

2。不必要的功耗:如果每個數據位都被雲計算佔用,那麼它就會消耗來自硬體、無線電、傳輸和雲計算的能量。

3。小批量推理的延遲:如果數據來自邊緣,則從基於雲的系統獲得響應可能需要一秒或更長的時間。對於人類的感官來說,任何超過100毫秒的延遲都是顯而易見的。

4。數據經濟:傳感器無處不在,而且它們非常便宜;然而,他們產生了大量的數據。將所有數據上傳到雲端並進行處理似乎毫無經濟可言。

通過使用本地處理引擎來解決這些挑戰,執行推理操作的神經網絡模型,首先要針對所需用例使用給定的數據集進行培訓。通常,這需要高計算資源和浮點算術運算。因此,機器學習解決方案的訓練部分仍然需要在公共或私有雲(或本地GPU、CPU、FPGA場)上使用數據集完成,以生成最優的神經網絡模型。一旦神經網絡模型準備就緒,神經網絡模型就不需要反向傳播進行推理操作,因此該模型可以進一步針對具有小型計算引擎的本地硬體進行優化。一個推理引擎通常需要大量的多重累加(MAC)單元,然後是一個激活層,如整流線性單元(ReLU)、sigmoid或tanh,這取決於神經網絡模型的複雜性和層之間的池化層。

大多數神經網絡模型需要大量的MAC操作。例如,即使一個相對較小的「1.0 MobileNet-224」模型也有420萬個參數(權重),需要5.69億個MAC操作來執行推斷。由於大多數模型由MAC操作主導,這裡的重點將放在機器學習計算的這一部分,並探索創建更好的解決方案的機會。圖2顯示了簡單的、完全連通的兩層網絡。

輸入神經元(數據)使用第一層權值進行處理。第一層的輸出神經元然後與第二層的權重進行處理,並提供預測(比如,該模型是否能夠在給定的圖像中找到一張貓臉)。這些神經網絡模型使用「點積」來計算每一層的每一個神經元,如下式所示(為了簡化,在方程中省略「偏差」項):

數字計算的內存瓶頸

在數字神經網絡實現中,權值和輸入的數據存儲在DRAM/SRAM中。權重和輸入數據需要移動到MAC引擎進行推理。如下圖所示,這種方法在獲取模型參數和將數據輸入到實際MAC操作發生的算術邏輯單元(ALU)時消耗了大部分能量。

從能量的角度來看——一個典型的MAC操作使用數字邏輯門消耗大約250飛託焦耳(fJ,或10 - 15焦耳)的能量,但在數據傳輸過程中消耗的能量比計算本身要多兩個數量級,大概在50皮焦耳(pJ,或10 - 12焦耳)到100pJ之間。

公平地說,有許多設計技術從內存到ALU的數據傳輸可以最小化;然而,整個數字方案仍然受到馮·諾依曼架構的限制——因此這為減少能源浪費提供了巨大的機會。如果執行MAC操作的能量可以從~100pJ降低到pJ的一個分數會是什麼結果?

使用內存中的模擬計算消除內存瓶頸

當內存本身可以用來減少計算所需的功耗時,在邊緣執行推理操作就變得非常省電。使用內存中的計算方法可以將必須移動的數據量最小化。這反過來又消除了數據傳輸過程中所浪費的能量。採用超低有功功率耗散、待機狀態下幾乎無能量耗散的閃速電池,也會進一步降低了系統的能量耗散。

這種方法的一個案例是來自Microchip公司的Silicon Storage Technology (SST) ——memBrain?技術。基於SST的SuperFlash?內存技術,解決方案包括一個內存計算架構,可以在存儲推理模型的權重的地方進行計算。這消除了MAC計算中的內存瓶頸,因為權重沒有數據移動——只有輸入數據需要從輸入傳感器(如攝像頭或麥克風)移動到內存陣列。

這個內存的概念基於兩個因素:(a)模擬電流響應從一個電晶體是基於其閾值電壓(Vt)和輸入數據,和(b)基爾霍夫電流定律,即導體網絡中在一點相接的電流的代數和為零。

理解基本的非易失性內存(NVM)位元組(bitcell)同等很重要,它被用在這種多層內存架構中。下圖(圖4)是兩個ESF3(嵌入式SuperFlash第三代)位元的橫截面,它們具有共享擦除門(EG)和源線(SL)。每個位元有五個終端:控制門(CG)、工作線(WL)、擦除門(EG)、源線(SL)和位線(BL)。擦除操作是通過在EG上施加高壓來完成的。對WL、CG、BL、SL施加高/低電壓偏置信號進行編程操作,對WL、CG、BL、SL施加低電壓偏置信號進行讀操作。

使用這種內存架構,用戶可以通過細粒度的編程操作在不同的Vt級別上對內存位單元進行編程。該存儲技術利用一種智能算法來調整存儲單元的浮動門(FG) Vt,以實現輸入電壓的一定電流響應。根據最終應用的需要,我們可以在線性或閾下工作區域對單元進行編程。

下圖演示了在內存單元上存儲和讀取多個級別的功能。假設我們試圖在內存單元中存儲一個2位整數值。對於這個場景,我們需要用2位整數值(00、01、10、11)的四個可能值中的一個對內存數組中的每個單元進行編程。下面的四條曲線是四種可能狀態的IV曲線,電池的電流響應取決於施加在CG上的電壓。

使用內存計算的乘法累加操作

每個ESF3單元都可以建模為可變電導(gm)。電導的ESF3細胞取決於浮動柵Vt的編程細胞。將訓練模型的權值編程為記憶單元的浮動門Vt,因此,單元的gm表示訓練模型的權值。當輸入電壓(Vin)作用於ESF3電池時,輸出電流(Iout)由公式Iout = gm * Vin給出,它是輸入電壓與儲存在ESF3電池上的重量之間的乘法運算。

圖6演示了一個小數組配置(2×2數組)中的乘法累加概念,其中累加操作是通過添加連接到同一列(例如I1 = I11 + I21)的輸出電流來執行的。激活功能可以在ADC塊內執行,也可以在內存塊外的數字實現中執行,具體取決於應用程式。

我們在更高的層次上進一步闡明這一概念——來自訓練模型的單個權值被編程為內存單元的浮動門Vt,因此來自訓練模型的每一層(假設是一個全連接層)的所有權值都可以在一個物理上看起來像權值矩陣的內存陣列上編程。

對於推理操作,我們首先使用數模轉換器(DAC)將數字輸入(比如圖像像素)轉換為模擬信號,並應用於內存陣列。然後,該陣列對給定的輸入向量並行執行數千次MAC操作,並產生可進入相應神經元激活階段的輸出,然後使用模數轉換器(ADC)將其轉換回數位訊號。數位訊號在進入下一層之前被處理成池。

這種類型的內存架構非常模塊化和靈活。許多memBrain塊可以被拼接在一起,用混合權重矩陣和神經元構建各種大型模型,如下圖所示。在本例中,一個3×4的拼接配置是與各個拼接之間的模擬和數字結構縫合在一起的,數據可以通過共享總線從一個tile移動到另一個tile。

到目前為止,我們主要討論了該體系結構的矽實現過程。軟體開發工具包(SDK)的可用性(圖9)有助於解決方案的部署。除了矽之外,SDK還促進了推理引擎的部署。

SDK與培訓框架無關。用戶可以在任何可用的框架(如TensorFlow、PyTorch或其他框架)中使用浮點計算創建神經網絡模型。一旦創建,SDK幫助量化訓練過的神經網絡模型,並將其映射到內存數組中,在內存數組中,向量-矩陣乘法可以用來自傳感器或計算機的輸入向量進行。

結論

這種具有內存計算能力的多級內存方法的優點:

1。超低功耗:該技術專為低功耗應用而設計。

第一級的功耗優勢來自於內存計算,因此在計算期間不會在數據和從SRAM/DRAM傳輸的權值中浪費能量。

第二個能量優勢來自於快閃記憶體單元在亞閾值模式下運行,電流值非常低,所以有源功耗非常低。

第三個優點,由於非易失性存儲單元不需要任何能量來保存數據,所以在待機模式下幾乎沒有能量消耗。該方法也非常適合於利用權值和輸入數據的稀疏性。如果輸入數據或權值為零,則不會激活內存位單元。

2。更低的封裝引腳

該技術使用分裂門(1.5T)單元架構,而數字實現中的SRAM單元基於6T架構。此外,與6T SRAM單元相比,該單元要小得多。另外,一個電池可以存儲4位整數值,而SRAM電池需要4*6 = 24個電晶體才能存儲整數值。這提供了更小的晶片佔用空間。

3。更低的開發成本

由於內存性能瓶頸和馮諾依曼架構的限制,許多專用設備(如Nvidia的Jetsen或谷歌的TPU)傾向於使用更小的幾何圖形來獲得每瓦的性能,這是解決邊緣AI計算挑戰的一種昂貴方式。隨著多級存儲器方法使用模擬存儲器上的計算方法,計算在快閃記憶體晶片上完成,因此可以使用更大的幾何圖形,並減少掩模成本和前置時間。

由此可看,邊緣計算應用程式顯示了巨大的潛力。然而,在邊緣計算能夠騰飛之前,還有一些功率和成本方面的挑戰需要解決。通過使用在快閃記憶體單元中執行晶片上計算的內存方法,可以消除其中的主要障礙。這種方法利用了經過生產驗證的、事實上標準類型的多級內存技術解決方案,該解決方案針對機器學習應用程式進行了優化。

Vipin Tiwari

延伸閱讀——Microchip-SST神經形態存儲解決方案memBrain

Microchip公司通過其矽存儲技術(SST)子公司,通過其模擬存儲器技術memBrain神經形態存儲器解決方案降低功耗,從而應對這一挑戰。

該公司的模擬快閃記憶體解決方案基於其Superflash技術並針對神經網絡進行了優化以執行矢量矩陣乘法(VMM),通過模擬內存計算方法改善了VMM的系統架構實現,增強了邊緣的AI推理。

由於當前的神經網絡模型可能需要50M或更多的突觸(權重)進行處理,因此為片外DRAM提供足夠的帶寬變得具有挑戰性,從而造成神經網絡計算的瓶頸和整體計算能力的提高。相比之下,memBrain解決方案將突觸權重存儲在片上浮動門中,從而顯著改善系統延遲。與傳統的基於數字DSP和SRAM / DRAM的方法相比,它可以降低10到20倍的功耗並降低整體BOM。

「 隨著汽車,工業和消費者市場的技術提供商繼續為神經網絡實施VMM,我們的架構可幫助這些前向解決方案實現功耗,成本和延遲優勢, 」SST許可部門副總裁Mark Reiten表示。「 Microchip將繼續為AI應用提供高度可靠和多功能的Superflash內存解決方案。」

今天的公司正在採用memBrain解決方案來提高邊緣設備的ML容量。由於具有降低功耗的能力,這種模擬內存計算解決方案非常適合任何AI應用。

「 Microchip的memBrain解決方案為我們即將推出的模擬神經網絡處理器提供超低功耗的內存計算, 」 Syntiant公司執行長Kurt Busch 說道。 「 我們與Microchip的合作繼續為Syntiant提供許多關鍵優勢,因為我們支持普遍的ML邊緣設備中語音,圖像和其他傳感器模式的永遠在線應用。」

SST展示了這種模擬存儲器解決方案,並在FMS上展示了Microchip的基於memBrain產品區塊陣列的架構。

池化層理解

池化層夾在連續的卷積層中間, 用於壓縮數據和參數的量,減小過擬合。簡而言之,如果輸入是圖像的話,那麼池化層的最主要作用就是壓縮圖像。

池化層的作用:

1。 invariance(不變性),這種不變性包括translation(平移),rotation(旋轉),scale(尺度)

2。 保留主要的特徵同時減少參數(降維,效果類似PCA)和計算量,防止過擬合,提高模型泛化能力

(文章來源:OFweek)

相關焦點

  • 新興存儲技術怎樣應對邊緣AI的挑戰,何時迎來春天?
    yOyEETC-電子工程專輯GPU加速對高端邊緣數據中心和邊緣伺服器應用來說,GPU之類的AI計算加速器越來越受到青睞。除了DRAM,其內存選擇還有GDDR和HBM。GDDR是一種專門用於高帶寬GPU的DDR SDRAM,而HBM採用了相對較新的晶片堆疊技術,可以將多個存儲裸片與GPU本身放在同一封裝中。
  • 如何應對邊緣計算的四大挑戰
    ● 隨著處理和存儲置於傳統信息安全可見性和控制之外,邊緣計算帶來了需要深入解決的新的安全挑戰。● 邊緣計算在需要管理、集成和處理的分布式體系結構中創建了一個龐大的數據足跡。分 析追求邊緣計算解決方案的企業遇到了需要克服的四個獨特的挑戰(參見圖1)。這四個挑戰可以用來衡量邊緣計算解決方案的效率。圖1.
  • FPGA適合AI邊緣計算嗎?
    不過FPGA要在邊緣AI計算中應用,高成本和開發難度大是兩個問題。對此,陳英仁表示,很多客戶都用我們的FPGA進行量產,所以我們的FPGA價格非常友好。並且過去四年,萊迪思出貨的FPGA數量在10億片的量級,這也證明我們的產品非常可靠。
  • 比特大陸發力邊緣計算,詳解終端AI晶片BM1880
    然而,雲端計算並不是時時處處都「奏效」的,雲端處理延時大、依賴於網絡通暢度的好壞,因此對於實時性要求高、數據隱私性高的應用,將數據傳至雲端進行處理就十分的不合適。邊緣計算的概念就因運而生,邊緣計算又可稱之「前端計算」。對於實時性要求高、數據保密性強、網絡資源不充足等情況下,邊緣計算可以近水樓臺先得月,及時的將數據處理完畢,只將必要的信息傳遞給雲端即可。
  • 一文了解邊緣計算和邊緣AI
    相比第二代晶片,「旭日3」的AI性能上得到很大提升,只需在2.5W的功耗下,能夠達到等效5TOPS的標準算力。尤其是對應高端市場的旭日3M,有更強大的編解碼能力,強大的ISP效果令其極具競爭力。也就是說,章魚的八條腿可以思考並解決問題。雲計算就好比章魚的大腦,邊緣計算就類似於八爪魚的那些小爪子,一個爪子就是一個小型的機房,靠近具體的實物。邊緣計算更靠近設備端,更靠近用戶。
  • 一文看全:全球99家AI晶片公司全景圖,中國正在崛起
    Xilinx提供了「從邊緣到雲的機器學習推理解決方案」,並且聲稱他們的FPGA最適合INT8。雖然FPGAs的每瓦性能令人印象深刻,但在價格和性能之間找到平衡是FPGAs的主要挑戰。
  • 號稱捨棄馮諾依曼架構,突破內存牆瓶頸的AI晶片,面世了
    越來越多的AI晶片的IP提供方和AI晶片的設計公司都意識到,AI晶片的本質不是要解決計算問題,而是要解決數據問題。與數據和存儲相關的帶寬瓶頸、功耗瓶頸問題,被稱為存儲牆問題。深度學習算法的「三高」特點內存牆問題的4種常見解決方法上面提到的晶片都基於傳統馮·諾伊曼體系結構,這個體系結構是數據從處理單元外的存儲器提取,處理完之後在寫回存儲器。
  • 超低功耗 Lattice SensAI 引領網絡邊緣人工智慧設備邁向大眾市場
    Lattice sensAI提供經優化的解決方案,具有超低功耗(低於1mW-1W)、封裝尺寸小(5.5-100 mm²)、接口靈活(MIPI® CSI-2、LVDS、GigE等)和批量價格低(約1-10美元)等優勢,可加速實現更接近數據源的網絡邊緣計算。
  • 如何利用稀疏性提高AI推理速度?
    多年來,研究人員們一直在研究如何通過稀疏性加速AI,其過程就像是在玩兒數字版的「疊疊樂」。他們嘗試著儘可能多地從神經網絡中抽出多餘參數,同時又不破壞AI的超高精度。這樣做是為了減少深度學習所需的矩陣乘法堆,從而縮短取得準確結果的時間。但到目前為止,還沒有出現「大贏家」。過去,研究人員嘗試了多種技術,抽出部分的權重甚至達到了神經網絡的95%。
  • 如何利用稀疏性提高AI推理速度
    多年來,研究人員們一直在研究如何通過稀疏性加速AI,其過程就像是在玩兒數字版的「疊疊樂」。他們嘗試著儘可能多地從神經網絡中抽出多餘參數,同時又不破壞AI的超高精度。這樣做是為了減少深度學習所需的矩陣乘法堆,從而縮短取得準確結果的時間。但到目前為止,還沒有出現「大贏家」。過去,研究人員嘗試了多種技術,抽出部分的權重甚至達到了神經網絡的95%。
  • 回顧:神經擬態計算需求下的6種新內存技術
    【IT168 技術】對神經擬態計算的興趣促使人們去研究一種新的內存設備,以複製/實現生物神經元和突觸的特性功能。近日有一篇論文(https://onlinelibrary.wiley.com/doi/10.1002/admt.201800589)回顧了該領域的現狀,並討論了6種在這一領域最有前途的技術。
  • 邊緣上的AI:「協作機器人」如何快速處理傳感器數據
    本文探討了當今機器人、自動化和把AI及AI所需數據緊緊連結在一起從而實現智能的最重要技術的某些關鍵發展趨勢,還討論了如何在AI系統中使用以及融匯不同的傳感器。  推動機器人的AI處理技術至邊緣計算  ML包括兩個主要部分:培訓和推理,可以在完全相異的處理平臺上執行它們。
  • Synaptics和Eta聯合推出邊緣生物識別低功耗平臺
    Synaptics公司(中譯名:新突思電子科技,納斯達克代碼:SYNA)宣布其最新的電池供電邊緣計算平臺Katana邊緣智能與Eta合作,實現設備上的人臉生物識別
  • 為增強AI晶片實力,英特爾又收購了一個7個人的初創公司Vertex.ai
    通過這筆交易,英特爾獲得了一支經驗豐富的團隊和智慧財產權,以進一步實現邊緣計算的靈活深度學習。更多細節和條款將不會被披露。」據雷鋒網了解,Vertex.ai由Jeremy Bruestle以及Choong Ng在2015年創辦的,公司的使命是創造出一種框架來縮小硬體與人工智慧軟體之間的差距。
  • 邊緣計算和邊緣AI是什麼?兩者有什麼區別?
    邊緣 AI 晶片組市場將超過雲AI晶片組市場。首席分析師Lian Jye Su 表示:隨著行業的發展,企業越來越多的需要解決有關數據隱私、電源效率、低延遲和強大的設備上計算性能等問題,邊緣AI將是解決方案。預期在未來五年,AI訓練與推論會在網關或是各種邊緣裝置進行,甚至往下到傳感器節點。那麼,邊緣AI到底是什麼,靠什麼能解決這些行業痛點呢?
  • Lattice:聚焦網絡邊緣計算的差異化市場
    從2006年開始,網絡邊緣的互連市場逐漸增長。而網絡邊緣計算是一個全新的市場需求,將成為今後增長的主要驅動力。」Glen Hawk指出,「在網絡邊緣的控制、互連、計算三個領域,Lattice都能提供完整而極具優勢的解決方案。」  據介紹,在控制方面,現在是Lattice實現穩定營收的堅實基礎,僅2016就有4000多家客戶。「產品生命周期長,供應鏈穩定是滿足更多客戶的特點需求的基礎。
  • 5G成為邊緣計算的較強推動力
    此前,邊緣計算的重點是連接在物聯網上的設備的技術,比如工業機器人。不過,隨著技術的不斷發展,大數據、IoT 和AI的組合帶來了無限潛力,對於邊緣計算的需求已經從解決由IoT生成的數據增長而導致的數據長距離傳輸的帶寬成本問題,進化至處理實時應用程式。在這類組合中,邊緣計算需要滿足低延遲、加速實時創建和支持應用。什麼是邊緣計算?
  • 邊緣計算時代FPGA擁有無窮的潛力
    Manoj Roge 講到:「邊緣計算目前及未來都將保持多年的活躍性並不斷發展。人們希望實現可以快速部署的、優良的解決方案。FPGA 支持硬體解決方案不必鎖定當前的最終實現手段。在 5 到 7 年內,當 ASIC 變得更高效時,我們可能會看到二者的融合。在此期間,在 ASIC 解決方案不可行的地方,FPGA 提供了快速的產品上市和可用性。」
  • 重新定義低功耗、小尺寸FPGA
    萊迪思的研發團隊發明的可編程基體偏壓,能夠根據設計的功耗和散熱管理需要,讓器件以高性能模式或低功耗模式運行。只需通過軟體開關即可控制運行模式。開發人員通過對基體偏壓進行編程實現高性能或低功耗之間的切換,可以優化 FPGA 的功耗/性能,更好地滿足應用的功耗和散熱管理需求。這不僅有助於降低電池供電的網絡邊緣設備的功耗,還能降低工業和數據中心等應用的電力成本。