一文帶你快速了解:什么是存算一體?
它與近存計算、存內計算等概念有何不同?
為何存算一體架構是實現數字經濟時代的先進生產力?
為什么我們需要存算一體?
在傳統的馮·諾依曼架構中,處理與存儲單元是分離的。由于存算分離,AI計算的數據搬運量非常大,會導致功耗大大增加,也就是存儲墻。
此外,不管是傳輸還是計算工藝本身的限制,能效比已經接近極限。無論是20W, 75W, 150W的模組還是PCIe板卡,目前能支持的最高算力已經達到了天花板。以75W為例,不管是7nm工藝或將來會有的更高工藝,150TOPS到200TOPS已經基本封頂,這是存儲墻帶來的能耗墻導致的。
存儲墻還導致了另一個問題——編譯墻(生態墻),也可以說是可編程性。由于存算分離,數據搬運容易發生擁塞,尤其是在動態環境下,對數據進行調度和管理其實非常復雜,所以編譯器無法在靜態可預測的情況下對算子、函數、程序或者網絡做整體的優化,只能手動、一個個或者一層層對程序進行優化,包括層與層之間的適配等,耗費了大量時間。
隨著人工智能相關的高度數據中心化應用迎來爆發性增長,由傳統的馮·諾依曼架構帶來的這“三堵墻”弊端愈發凸顯。這就要求人們尋找非馮·諾依曼的計算方法,于是就提出了存算一體架構。
存算一體賦能AI加速效率的理論基礎
硬件加速性能是由Amdahl Law(阿姆達爾定律)確定,如同力學中的牛頓三定律:Speedup (F, α)=1/(F+((1-F))/α)。F ~訪存/(訪存+計算操作),α ~加速比取決于工作頻率和并行計算核數量等裸性能。
阿姆達爾定律取決于兩個因子:F和α。一個是裸算力,取決于先進工藝和計算單元核;一個是數據搬運效率或占用整體計算過程的時間和資源百分比,該因子決定了硬件性能提升的天花板。比如F=0.5,數據搬運占用了50%時間和資源,性能提升的天花板是2倍,高等級工藝無濟于事,只能改進架構降低F因子。比如數據搬運不占用任何時間和資源或忽略不計,或F接近于0,硬件性能的提升和裸算力是線性關系。
阿姆達爾定律揭示了摩爾定律的誤導,大算力芯片的真實性能不完全取決于先進工藝,尤其是需要大量數據搬運的AI芯片或類似芯片。這也是馮?諾依曼存算分離的瓶頸,也是存算一體的核心優勢。
什么是存算一體?
存算一體目前在學術界和產業界有不少相似的概念,例如Computing-in-Memory, In-Memory-Computing, Logic-in-Memory等,不同研究領域的稱呼不統一,相應的中文翻譯也不盡相同,如:內存處理(In-Memory-Processing)、存內處理(Processing-in-Memory)、存內計算(Computing-in-Memory)、存算一體(In-Memory-Computing)等。
為清晰區分多種存算一體技術,可按照計算單元與存儲單元在系統中的距離來進行分類。如圖所示,越往金字塔頂端,計算與存儲距離越近。同時,這一距離也改變了軟硬件抽象分層。金字塔左側的計算源語(源語:在百度詞條中定義為具有原子操作性的若干指令組成的程序片段),指的是卸載到硬件單元進行原子操作的粒度,硬件通過在該粒度的高并發操作來獲得性能提升。金字塔右側代表存儲與計算在哪個設計抽象層次進行融合。
存算一體分類
最底層為存算分離的馮·諾依曼架構。
往上一層,計算由位于存儲芯片內部的計算單元完成。計算單元與存儲單元在系統層集成,但兩者依然相互獨立操作。計算與存儲的數據交換發生在存儲系統內部,不會經過系統總線,因此帶來帶寬上極大提升。這一層的存算一體架構往往被稱為Process-in-Memory,或Near Memory Computing。存儲單元往往以大容量的DRAM為主,計算單元可以是處理器(如RISC-V),可編程加速器或硬加速器等。計算源語往往是一些較為復雜的運算,如(張量/向量/標量)乘法/除法,匹配查找等。硬件的峰值性能由計算單元數量,計算與存儲的片內傳輸帶寬決定。
再往上一層,計算單元與存儲陣列(如SRAM陣列,ReRAM陣列)在邏輯層集成,融為一體,共同完成一個完整的計算源語的操作。并發執行的計算源語為更細的邏輯算數運算(如與非,加法等),數據并行的潛能進一步提升。存儲陣列的字線與位線直接與存儲陣列周邊電路中的邏輯運算單元直連,存儲與計算之間的數據傳輸距離進一步縮短。根據不同的存儲Macro架構設計,計算的并發度也會不同。如常見的比特順序流(bit-serial)模式,比特并行方式(bit-parallel)等。
最頂層是計算與存儲完全的融合。部分計算發生在存儲陣列的字線、位線甚至存儲器件的I/O上。以數字計算方式實現時,存儲陣列內的計算源語通常為Bit位邏輯運算(如抑或、與操作等),需要配合周邊電路上的其他邏輯操作才能組成更為復雜的運算。以模擬計算實現時,存儲陣列可以基于電阻定律在每個存儲單元內實現乘法操作,然后基于電流定律實現位線上的加法操作。模擬計算具有極大的性能和能效優勢,缺點是需要ADC等功耗較大的模數轉換器,計算精度還可能受到一些器件工藝偏差等影響。
總之,計算與存儲距離越近,數據移動代價(延遲,帶寬)呈數量級下降,因此,計算源語的并發執行/并行計算的潛力越大;但計算與存儲融合的越緊密,可編程性越差,越需要軟件提供大并行度,大顆粒的并發算子才能發揮存算一體的優勢。這也是當前主要將存算一體芯片用于加速深度學習的張量運算的主要原因。
根據存儲器介質的不同,目前存算一體芯片的主流研發集中在傳統易失性存儲器,如SRAM, DRAM, 以及新型非易失性存儲器,如RRAM(ReRAM), PCM, MRAM與閃存等。
實現存算一體的存儲介質有哪些?
應用于存算一體,對于不同應用場景,Flash, SRAM和以ReRAM為代表的新型存儲介質各有特長。
Flash是最早被采用的介質,技術和工藝等各方面最成熟,比較適合中小算力存算一體設計。但相比其它介質,性能有數量級的差距,而且工藝上難以突破40nm,用于大算力芯片會面臨許多挑戰。
SRAM的性能優異,而且容易實現DIY自主設計,常被學者采用。但密度較低、功耗較高,特別是工程實現難,尤其可靠性存在挑戰,較適合中小算力存算一體芯片設計。
ReRAM新型存儲介質在密度、性能、功耗和工程實現等方面,綜合來說比較平衡,沒有短板,比較適合大、中、小各類存算一體芯片,尤其是大算力芯片。
相比MRAM和PCRAM等其它新型存儲介質,ReRAM在密度和可靠性等方面更有優勢。比如密度高到一定程度之后,MRAM和PCRAM都會存在相鄰單元被“磁”或“熱”干擾的微縮性天花板問題。ReRAM不存在這類問題,可以完全兼容先進CMOS工藝。
為什么ReRAM是最適合實現
存算一體AI大算力的存儲介質?
從非易失性、存儲密度、讀寫次數、讀寫速度、讀寫功耗、未來發展潛力以及工藝成熟度等角度綜合來看,ReRAM是業內普遍認為最適合做存算一體大算力的存儲介質,它在算力潛能、算力精度和算力效率等主要指標上都擁有數量級的優勢。
審核編輯:湯梓紅
評論
查看更多