In-memory computing(以下簡稱IMC)是一種古老而有爭議的組織計算機硬件的方式,以最大限度地減少能耗并提高性能,但除了在一些非常特定的應用中,它從未真正進入主流。但邊緣計算AI的需求可能為這種架構理念提供了機會。
IMC將計算元素放在內存中而不是中央處理器中的概念在計算機科學的邊緣有很長的歷史。IMC是那些總是建立在合理推理基礎上的想法之一,而且非常有意義,甚至影響了計算機架構的重大進步,但卻沒有以其純粹的形式突破主流。但現在,一種古老的錄音技術、邊緣計算的限制和深度學習網絡的內部結構的奇妙結合,可能會把IMC重新拉回聚光燈下。
一個古老的觀點
IMC的概念可以追溯到計算機的早期。計算機工程師們很快意識到,雖然馮諾依曼架構(中央處理器從主存儲單元讀取指令和數據)非常靈活并被普遍采用,但它的效率往往很低。重復地從內存中獲取少量數據,做一些簡單的計算,然后把結果放回內存的算法,一遍又一遍地,花費大量的時間和精力獲取指令和移動數據,但在實際計算上花費的時間和精力卻被壓縮了。由于從內存中獲取一個單詞的時間和能量幾乎總是比CPU中的算術或邏輯成本大,這種低效很要命,特別是在像邊緣計算這樣的功耗受限的環境中。
一些架構師采取了顯而易見的行動,為什么把它們全部集中在CPU中,而不直接將簡單的計算元素構建到內存單元中呢?理論上,這將大大減少所有讀寫操作的時間延遲和功耗,并且可以繞過CPU不斷獲取和解碼指令的需要。
現實的阻礙
事實證明,不這么做有一些非常好的實際理由。賦予內存計算元素什么樣的能力是至關重要的。將這些功能放在哪里,以及如何將它們連接到內存陣列中也是如此。雖然通常有可能設計一個IMC架構,在一組很窄的算法上工作得很好,但你越試圖使架構通用,你放棄的效率就越多。如果你只是在CPU上做了一些聰明的事,那么很快就會得到一個效率較低的架構。
CPU架構師很聰明。他們用另一種方法來解決所有這些讀寫的低效問題:緩存。然后是更多緩存,更多的緩存層。通過嘗試讓大多數讀寫操作發生在緩存而不是主內存中,可以消除一些低效的問題(取決于緩存和相關算法)。
與此同時,主存儲正從一種高度專業化的手工制造產品變成一種商品。用戶越來越不愿意做任何迫使他們購買專用存儲芯片的事了。因此,IMC成了一種很難銷售的產品。但這并沒有阻止該領域的研究。今年的ISSCC會議有許多關于這個主題的論文,原因我們稍后將會看到。
IMC的機遇
有一種非常狹窄的算法可以從IMC中獲得巨大的收益,這是個巨大的商業領域:3D圖形渲染。著色(在3D模型的2D渲染中為像素添加色彩和亮度的過程)對3D模型中的每個點進行一些簡單的操作,反復進行。雖然著色算法有很多變體,但它們都非常相似,一個設計良好的架構可以覆蓋很多變體,這是一個成功的IMC應用的處方。
我們知道這種思維的結果就是GPU。雖然通常不這樣描述,但GPU實際上是一個巨大的內存芯片,它有專門的處理器(著色引擎)明智地分散在內存塊中。這種架構不僅主導了3D圖形渲染,而且通用GPU和CUDA等并行編程語言的出現也顯示了這種架構對更廣泛的并行化問題的適應性。
進入AI
其中一類可并行化的問題是AI的一個分支:深度學習網絡。當你訓練或使用深度學習網絡時,里面發生的只是我們一直在討論的那種大規模、有序的簡單計算陣列。在訓練過程中,你將輸入和正確的答案輸入到模型中,并進行大量的簡單計算,將答案通過網絡的各層向輸入傳播,同時細化稱為激活權重的巨大參數表。一旦訓練好網絡,你就把輸入信息應用到模型中,做一系列矩陣乘法(同樣是簡單操作的有序集合,在網絡的末端彈出一個答案,一個推理)。
通過對內存非常仔細的安排和精心編程,這個過程對GPU來說是小菜一碟。因此,GPU在深度學習中無處不在。但是GPU雖然對優秀的軟件非常有效,但在推理計算方面卻沒有理想的效率。這一事實導致了大量的研究論文和初創公司設計更適合深度學習加速,特別是為推理加速設計的加速器芯片。這種架構有很多,但大多數都有一個共同的想法:使用大量的小型計算元素來并行處理深度學習的大量計算負載,并將這些元素放置在非常靠近或位于內存中的位置。
Syntiant和Untether等初創公司也屬于非常接近的一類。這類公司似乎更喜歡“at-memory computing(以下簡稱為AMC)”這個短語,而不是更傳統的術語,可能是因為他們沒有把計算元素放在內存陣列中,而是放在芯片的旁邊。但還有另外一類。
模擬域
這就是那個奇怪結合的地方(一個模擬推理加速器),我們分三步討論。首先,深度學習網絡有一個奇怪的特性:大多數網絡在內部計算中幾乎不受微小誤差的影響。在幾乎所有的有序算術中,無論你用32位、8位,甚至有時是4位來表示數字,對所產生的推理的準確性都沒有什么區別。在這些計算中,傳統GPU中的大部分內存和數據路徑位都被浪費了。
其次,工程師們很久以前就發現,閃存單元不僅可以存儲數字位,還可以存儲模擬數據:例如,足以產生可接受的語音記錄。這一發現為多級閃存的工作奠定了基礎。因此,在原則上,模擬閃存可以存儲深度學習網絡的低精度激活權重,而不放棄推理的準確性。
第三,由于閃存陣列的組織方式,你可以讓閃存陣列在一個周期內計算乘積的模擬和乘積,這是矩陣算術和推理計算的基本操作,只需要很少的能量。這對于將激活權重(只在訓練期間改變)作為模擬值存儲在閃存單元中,然后一次性讀出整個輸入乘以權重并相加的集合來說,是非常好的。整個過程功耗非常小。
把這三個部分放在一起,你就有了一個非常快、非常高效的模擬推理加速器背后的想法。這種設計消除了數字設計的大部分內存和大多數處理元素,而是在閃存陣列中進行模擬乘積。Axelera、Mythic和TetraMem等初創公司正在使用這種方法開發芯片或IP,并瞄準了對功耗要求嚴苛的邊緣計算領域。
但是在模擬電路中存在著固有的挑戰,以至于許多年來大多數模擬電路設計已經被數字方法所取代。模擬信號會被噪聲破壞。模擬內存會隨著時間的推移而損耗。模擬電路往往是專用的,而且很難從一種工藝擴展到下一種。這些問題會再次導致模擬應用被其數字競爭對手超越嗎?
這一次可能會有所不同。在邊緣計算中,以極低的功耗進行大規模、快速推理的能力是非常大的優勢。隨著芯片從14nm擴展到10nm、5nm及以上,不斷上升的成本、巨大的設計挑戰和日益增長的供應鏈擔憂,使得僅僅遵循摩爾定律的數字工藝讓模擬方法被淘汰的說法沒那么肯定了。
ARM和IBM的研究人員最近聯合發表的一篇論文表明,一些非常重要的玩家正在認真對待這項技術的長期發展。該論文介紹了一種14nm模擬IMC芯片,該芯片直接解決了該技術的噪聲和內存漂移問題。
似乎可以肯定的是,更多的IMC和AMC的例子將出現在邊緣計算應用中,無論具體的實現是模擬還是數字。除了在這些環境中GPU已經霸占的領域之外,這種方法是否會過渡到云數據中心或超級計算機,仍然是一個開放和非常有趣的問題。
審核編輯 :李倩
-
cpu
+關注
關注
68文章
11279瀏覽量
225019 -
中央處理器
+關注
關注
1文章
126瀏覽量
17100 -
IMC
+關注
關注
1文章
34瀏覽量
5148
原文標題:IMC為什么會回歸?
文章出處:【微信號:Astroys,微信公眾號:Astroys】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
3大核心優勢:imc防側滾系統,讓列車行駛更穩更安全!
Skoda賽車測試顯身手:imc 測量方案如何征服極端測試環境?
SensorMicro芯火微電子iMC微型紅外模組:開啟消費級紅外熱像新體驗
從-40°C至125°C,最高可達2萬rpm:imc領航電機轉子溫度測試
GRAS imc eVTOL集成測試與測量解決方案
小模組,大期待!SensorMicro芯火微電子iMC系列微型紅外模組正式發布
毫米級輪軌力測量方案:imc應變片傳感器遙測技術
降本增效兼顧:imc ARGUS最新推出4款數采測量模塊
升級旋轉遙測極端環境測試穩定性—imc發布新型電源模塊
滿足電動車嚴苛測試需要:新一代 imc WFT車輪六分力傳感器
為什么焊點 IMC 層厚度必須鎖定 3-5μm?
什么是IMC(金屬間化合物)
英飛凌IMC302A與IPM模塊:小型化1.4KW壓縮機電機解決方案的創新選擇
IMC為什么會回歸?
評論