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