在計(jì)算中使用某種形式的存儲(chǔ)器以實(shí)現(xiàn)“存內(nèi)計(jì)算(In-Memory Computing)”的做法,最近成為了人們熱議的焦點(diǎn)。由于能夠突破馮·諾依曼(von Neumann)架構(gòu)中令人生厭的“存儲(chǔ)墻”和“功耗墻”,這些新的架構(gòu)被視作未來30年內(nèi),推動(dòng)“數(shù)據(jù)計(jì)算的文藝復(fù)興”時(shí)代到來的關(guān)鍵力量。
計(jì)算,最好在內(nèi)存中完成
當(dāng)今社會(huì)處于一個(gè)信息爆炸的大數(shù)據(jù)時(shí)代,對(duì)超高速、高帶寬、大容量、高密度、低功耗和低成本的超高性能計(jì)算需求呈爆發(fā)式增長(zhǎng),而人工智能的出現(xiàn)更加速了這種趨勢(shì),因?yàn)樗枰罅康臄?shù)據(jù)進(jìn)行訓(xùn)練。
以智能攝像頭為例,隨著攝像頭的分辨率從1080P轉(zhuǎn)向4K,其一天所采集到的數(shù)據(jù)量將達(dá)到200GB。面臨同樣問題的還包括智能醫(yī)院、自動(dòng)駕駛和智能工廠,它們一天所產(chǎn)生的數(shù)據(jù)將分別超過3TB、4TB和1PB。2020年,一位普通的互聯(lián)網(wǎng)用戶平均每天產(chǎn)生的數(shù)據(jù)量大概是1.5GB,這樣的數(shù)據(jù)產(chǎn)生速度遠(yuǎn)遠(yuǎn)超出了我們的想象。
美光科技(Micron)首席執(zhí)行官Sanjay Mehrotra曾指出,人工智能服務(wù)器所需的固態(tài)存儲(chǔ)器和DRAM的數(shù)量是標(biāo)準(zhǔn)服務(wù)器的兩倍。由于我們?nèi)蕴幱贏I發(fā)展的早期階段,還面臨著眾多挑戰(zhàn),但從長(zhǎng)遠(yuǎn)來看,AI對(duì)NAND和DRAM的需求應(yīng)該會(huì)急速飆升。
面對(duì)滾滾而來的數(shù)據(jù)洪流,要使通過AIoT設(shè)備傳輸?shù)拇罅繑?shù)據(jù)變得有用,無論是采用本地處理、實(shí)時(shí)處理還是云端處理,高效靈活的計(jì)算平臺(tái)、高性能存儲(chǔ)和復(fù)雜但易于使用的機(jī)器學(xué)習(xí)堆棧,都是大數(shù)據(jù)/人工智能取得突破性成果的關(guān)鍵,三個(gè)元素缺一不可。正如Sanjay Mehrotra所說,“昨天的計(jì)算體系結(jié)構(gòu)不適用于明天。從長(zhǎng)遠(yuǎn)來看,我們認(rèn)為計(jì)算最好在內(nèi)存中完成。”
圖1:計(jì)算最好在內(nèi)存中完成
討厭的“存儲(chǔ)墻”
但在傳統(tǒng)計(jì)算設(shè)備廣泛采用的馮·諾依曼架構(gòu)中,計(jì)算和存儲(chǔ)功能不但是分離的,而且更側(cè)重于計(jì)算。數(shù)據(jù)在處理器和存儲(chǔ)器之間不停的來回傳輸,消耗了約80%的時(shí)間和功耗。學(xué)術(shù)界為此想出了很多方法試圖改變這種狀況,例如通過光互連、2.5D/3D堆疊實(shí)現(xiàn)高帶寬數(shù)據(jù)通信,或者通過增加緩存級(jí)數(shù)、高密度片上存儲(chǔ)這樣的近數(shù)據(jù)存儲(chǔ),來緩解訪存延遲和高功耗。但試想一下,人類大腦有計(jì)算和存儲(chǔ)的區(qū)別嗎?我們是用左半球來計(jì)算,右半球做存儲(chǔ)的嗎?顯然不是,人腦本身的計(jì)算和存儲(chǔ)都發(fā)生在同一個(gè)地方,不需要數(shù)據(jù)遷移。
圖2:傳統(tǒng)的馮·諾依曼計(jì)算架構(gòu)
除了體系架構(gòu)自身的限制外,處理器和存儲(chǔ)器二者之間長(zhǎng)期以來所采用的不同工藝路線,也是造成計(jì)算和存儲(chǔ)分離,繼而產(chǎn)生“存儲(chǔ)墻”和“功耗墻”問題的重要原因之一。用戶對(duì)處理器的高性能需求是無止境的,這使得半導(dǎo)體廠商不斷通過提高晶體管內(nèi)部的開關(guān)速度、使用更多的金屬布線層和先進(jìn)封裝技術(shù)等手段來提升性能;但對(duì)于存儲(chǔ)器來說,消費(fèi)者和廠商更在意的是如何在更小的存儲(chǔ)單元面積上獲得更多的晶體管數(shù)量,用以增加存儲(chǔ)密度,擴(kuò)大存儲(chǔ)容量。從圖3可以看出,1980-2000年,處理器和存儲(chǔ)器兩者的速度失配以每年50%的速率在增加。
圖3:1980-2000年,處理器和存儲(chǔ)器兩者的速度失配以每年50%的速率增加
與此同時(shí),數(shù)據(jù)遷移需要的功耗在整個(gè)計(jì)算中的占比也在“水漲船高”。有研究顯示,7nm工藝時(shí)代,訪存功耗達(dá)到25pJ/bit(45.5%),通信功耗達(dá)到10pJ/bit(18.2%),數(shù)據(jù)傳輸和訪問功耗占比達(dá)到了63.7%。
因此,學(xué)術(shù)界和產(chǎn)業(yè)界都希望盡快找到一種與人腦結(jié)構(gòu)類似的創(chuàng)新架構(gòu)的想法就不足為奇了,比如通過對(duì)DRAM的邏輯層和存儲(chǔ)層進(jìn)行堆疊,實(shí)現(xiàn)近數(shù)據(jù)存儲(chǔ)計(jì)算(Near Memory Compute),或者是最好能夠?qū)⒋鎯?chǔ)和計(jì)算有機(jī)地結(jié)合在一起(存儲(chǔ)器顆粒本身的算法嵌入),直接利用存儲(chǔ)單元進(jìn)行計(jì)算,最大程度的消除數(shù)據(jù)遷移所帶來的功耗開銷。
人工智能,“存內(nèi)計(jì)算”的助推劑
在這一背景下,更聚焦存儲(chǔ)的新型“存內(nèi)計(jì)算”架構(gòu)誕生了。從目前趨勢(shì)來看,真正對(duì)“存內(nèi)計(jì)算”架構(gòu)起到?jīng)Q定性推動(dòng)作用的,將是人工智能/物聯(lián)網(wǎng)相關(guān)應(yīng)用的加速落地。
之所以做出這樣的判斷,原因有二。其一,物聯(lián)網(wǎng)中包含大量智能終端,其計(jì)算過程往往涉及淺層人工智能算法數(shù)據(jù)的預(yù)處理。存內(nèi)計(jì)算由于硬件復(fù)用問題,在深層算法的加速方面應(yīng)該不占優(yōu)勢(shì),但在淺層算法的實(shí)現(xiàn)過程中,簡(jiǎn)化的存算結(jié)構(gòu)更易于硬件實(shí)現(xiàn)。其二,存內(nèi)計(jì)算方案由于無需頻繁搬用數(shù)據(jù),能耗將顯著降低,更符合物聯(lián)網(wǎng)對(duì)硬件低功耗的要求。
眾所周知,算法(Algorithm)、數(shù)據(jù)(Big data)和計(jì)算能力(Computing)并稱為新AI時(shí)代三大驅(qū)動(dòng)力,如何在追求更好性能的同時(shí)實(shí)現(xiàn)低功耗、低延遲和低成本,逐漸成為擺在所有AI從業(yè)者面前的艱巨挑戰(zhàn)之一。
在實(shí)際應(yīng)用中,我們發(fā)現(xiàn)盡管很多AI硬件平臺(tái)都展示了自身所具備的強(qiáng)大算力,然而當(dāng)用戶在真正運(yùn)行一個(gè)應(yīng)用時(shí),卻常常發(fā)現(xiàn)由于存儲(chǔ)帶寬和存儲(chǔ)架構(gòu)的限制,很難將所有的AI運(yùn)算單元填滿,從而導(dǎo)致硬件的計(jì)算效率低下。以谷歌第一代TPU為例,其平均硬件乘法陣列使用率只有28%,這意味著72%的硬件在大部分時(shí)間內(nèi)是沒有任何事情可做的。
而在設(shè)計(jì)AI平臺(tái)的時(shí)候,大量運(yùn)算引擎所帶來的能量消耗也是不可忽視的。圖4表明,如果將完成16位整數(shù)加法能量消耗定義為1,那么將32比特的數(shù)據(jù)從DDR內(nèi)存?zhèn)鬏數(shù)叫酒?,就將花費(fèi)1萬倍的能量消耗。因此,過大的訪問帶寬將會(huì)直接導(dǎo)致AI芯片功耗高居不下。
圖4:AI硬件的計(jì)算效率與功耗由訪存帶寬所主導(dǎo)(圖片來源:深鑒科技)
另一方面,5G、物聯(lián)網(wǎng)與工業(yè)4.0的發(fā)展讓信息量呈現(xiàn)爆炸式增長(zhǎng),但把所有數(shù)據(jù)都放到云端去進(jìn)行處理和傳輸、存儲(chǔ)和分析是不適合的。比如在工業(yè)自動(dòng)化領(lǐng)域,數(shù)據(jù)存儲(chǔ)距離一定要近才有效率;5G移動(dòng)設(shè)備制造商如果不強(qiáng)化終端側(cè)人工智能并進(jìn)行計(jì)算-存儲(chǔ)架構(gòu)更改,將會(huì)遭遇嚴(yán)重的電池壽命問題。
摩爾定律目前面臨的挑戰(zhàn)是擴(kuò)張速度的急速放緩,無法再提供功率、性能和面積成本(PPAC)的同步提升。因此,相關(guān)測(cè)算表明,如果能夠在內(nèi)存中實(shí)現(xiàn)存內(nèi)計(jì)算,終端設(shè)備的功耗將可以降低約20倍,速度提高約50倍,從而大幅提高計(jì)算的功耗和性能,特別適用于智能語音識(shí)別、降噪、聲紋、人臉、手勢(shì)、文字識(shí)別等應(yīng)用。
“萬丈高樓平地起”
這是一句中國(guó)的老話。意思是再激動(dòng)人心的遠(yuǎn)方,也要依賴于堅(jiān)實(shí)的基礎(chǔ)和天才的創(chuàng)新。對(duì)于存內(nèi)計(jì)算來說,拋開基礎(chǔ)存儲(chǔ)器件去談無異于“紙上談兵”,對(duì)于這一點(diǎn),存儲(chǔ)巨頭們有著清醒的認(rèn)識(shí)。
根據(jù)存儲(chǔ)器件的存儲(chǔ)易失性分類,當(dāng)前存內(nèi)計(jì)算的實(shí)現(xiàn)主要聚焦在兩類存儲(chǔ)器上:1.基于易失性的SRAM或DRAM構(gòu)建;2.基于非易失性的相變存儲(chǔ)器PCRAM、阻變存儲(chǔ)器/憶阻器ReRAM、磁性隨機(jī)存取存儲(chǔ)器MRAM和浮柵器件/Flash構(gòu)建。
圖5:各類不同存儲(chǔ)器件的性能對(duì)比(圖片來源:美光科技)
基于易失性存儲(chǔ)器
基于SRAM的存內(nèi)計(jì)算芯片目前可支持無進(jìn)位乘法運(yùn)算的計(jì)算型cache,相關(guān)廠商在2018年還發(fā)布了面向深度學(xué)習(xí)算法的神經(jīng)Cache,并在邏輯操作基礎(chǔ)上實(shí)現(xiàn)了加法、乘法和減法操作;2017年,業(yè)界基于成熟DRAM存儲(chǔ)器件實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算功能,實(shí)驗(yàn)數(shù)據(jù)表明,針對(duì)整數(shù)運(yùn)算,與GPU相比,新架構(gòu)可以獲得7.7倍的性能提升和15倍的能效提升。
基于非易失性存儲(chǔ)器
非易失性存儲(chǔ)器在最近十幾年得到了飛速的發(fā)展,以美光為例,其代表性產(chǎn)品包括在2010年發(fā)布的45nm 1Gb PCM、2015年推出的27nm 16Gb conductive bridge(CBRAM,一種特殊的ReRAM)和128Gb 3D XPoint技術(shù)。基于該技術(shù)的最新產(chǎn)品則是美光推出的首款面向數(shù)據(jù)中心的存儲(chǔ)和內(nèi)存密集型應(yīng)用的解決方案X100 SSD,它實(shí)現(xiàn)了每秒讀寫操作次數(shù)(IOP)250萬次,在讀、寫和讀寫混合模式下帶寬超過9GB/s的性能。
根據(jù)Objective Analysis和Coughlin Associates發(fā)表的最新年度報(bào)告《Emerging Memories Ramp Up》顯示,預(yù)計(jì)到2029年,新興內(nèi)存市場(chǎng)可望創(chuàng)造200億美元的合并收入。其中,PCRAM由于價(jià)格低于DRAM,可望在2029年前成長(zhǎng)至160億美元的市場(chǎng)規(guī)模。同時(shí),獨(dú)立型MRAM和STT-MRAM(自旋矩磁存儲(chǔ)器)的收入將接近40億美元,或超過2018年MRAM收入的170倍。
基于浮柵器件/Flash
基于NOR Flash構(gòu)建存內(nèi)計(jì)算芯片也是當(dāng)前比較主流的做法之一。通過把乘數(shù)直接存入存儲(chǔ)單元內(nèi),再把數(shù)值輸入到閃存陣列之中,并對(duì)每個(gè)單元都進(jìn)行乘法,最后通過一條路徑求和,就可以達(dá)到存內(nèi)計(jì)算的效果。從相關(guān)廠商公布的數(shù)據(jù)來看,基于NOR Flash構(gòu)建的存內(nèi)計(jì)算芯片最高峰值運(yùn)算效率能夠達(dá)到40TOPS/W,平均值為10TOPS/W。
總體來說,基于SRAM架構(gòu)是能夠?qū)崿F(xiàn)存內(nèi)計(jì)算設(shè)計(jì)的,但其模擬特性、集成能力可能不太符合物聯(lián)網(wǎng)終端的需求趨勢(shì)。而非易失性存儲(chǔ)器件,如NOR Flash、ReRAM、PCRAM等既能夠提供更多工具來增強(qiáng)近存儲(chǔ)器計(jì)算,也是被存儲(chǔ)業(yè)界普遍看好的下一階段存內(nèi)計(jì)算的建構(gòu)模組,具有較強(qiáng)商業(yè)化潛力,是存內(nèi)計(jì)算方案核心競(jìng)爭(zhēng)力的體現(xiàn)。
從“新型介質(zhì)”到“神經(jīng)形態(tài)計(jì)算”
然而比起新型存儲(chǔ)介質(zhì)對(duì)存內(nèi)計(jì)算未來的影響,存儲(chǔ)本身與計(jì)算之間的融合,是更值得關(guān)注的趨勢(shì)。
美光新興存儲(chǔ)副總裁Bob Brennan針對(duì)內(nèi)存與計(jì)算架構(gòu)的發(fā)展,曾提出過“三個(gè)階段”的看法:第一個(gè)階段是讓內(nèi)存非常靠近邏輯計(jì)算,用大量的高帶寬數(shù)據(jù)總線把內(nèi)存和計(jì)算處理器更緊密連在一起;第二個(gè)階段是在內(nèi)存中進(jìn)行計(jì)算處理。這個(gè)概念始于1994年,盡管實(shí)現(xiàn)量產(chǎn)在技術(shù)上存在不小的難度,軟件和邏輯也是分開的兩部分,但這樣沒有傳輸、延遲等問題,并且大幅提升效能;第三個(gè)階段則是神經(jīng)形態(tài)(neuromorphic)計(jì)算,使用內(nèi)存架構(gòu)本身做計(jì)算。
Brennan的發(fā)言引發(fā)了行業(yè)的共鳴和廣泛的討論。畢竟作為全球主流的三家DRAM提供商之一,美光在2019財(cái)年交付了600萬片晶圓(包括DRAM/3D XPoint/NAND/NOR),提供了30億個(gè)解決方案,涵蓋了從芯片(Silicon)到解決方案(Solution),再到“系統(tǒng)與軟件(Systems & Software)”的完整體系,一言一行都備受關(guān)注。
但坦率的說,無論基于哪種存儲(chǔ)技術(shù),在面對(duì)存內(nèi)計(jì)算時(shí),其實(shí)都存在一定的挑戰(zhàn)。如果基于易失性存儲(chǔ),由于目前處理器與存儲(chǔ)器的制造工藝不同,若要在處理器上實(shí)現(xiàn)存儲(chǔ)器的功能,可能會(huì)降低存儲(chǔ)器的存儲(chǔ)密度。反之,要在存儲(chǔ)器上實(shí)現(xiàn)處理器的功能,可能會(huì)影響處理器的運(yùn)行速度,很難在性能和容量上實(shí)現(xiàn)平衡。如果基于非易失性存儲(chǔ),由于目前廠商和工藝均未成熟,客觀上除了需要追加更多投資之外,現(xiàn)有的DRAM或Flash工藝也很難平移到新技術(shù)上。
不過,在存儲(chǔ)器件中進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練和終端推理,也就是Brennan提出的“神經(jīng)形態(tài)計(jì)算”,逐漸成為近年來人們最感興趣的應(yīng)用。圖6是IBM蘇黎世研究中心科學(xué)家在2018年基于相變存儲(chǔ)器進(jìn)行存內(nèi)計(jì)算的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法(上),以及訓(xùn)練多層感知機(jī)識(shí)別手寫數(shù)字的仿真結(jié)果(下)。由于存內(nèi)計(jì)算可以通過消除在內(nèi)存和處理器之間來回移動(dòng)權(quán)重?cái)?shù)據(jù)的需要,大大加速了訓(xùn)練速度,而且得到的精度比用傳統(tǒng)計(jì)算機(jī)得到的精度只低了不到百分之一。最重要的是,由于相變存儲(chǔ)器件的非易失性,訓(xùn)練后的權(quán)值可以在計(jì)算存儲(chǔ)器中保留數(shù)月甚至數(shù)年而不需要任何電源。以這種方式訓(xùn)練的芯片可以用于傳感器設(shè)備內(nèi)的推理任務(wù),其功率不到傳統(tǒng)計(jì)算機(jī)的1%。
圖6:在存內(nèi)計(jì)算中進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練
存內(nèi)計(jì)算對(duì)加速終端推理也大有裨益。如前文所述,終端推理過程計(jì)算復(fù)雜度低,涉及的任務(wù)較為固定,對(duì)硬件加速功能的通用性要求不高,無需頻繁變動(dòng)架構(gòu),更適合存內(nèi)計(jì)算的實(shí)現(xiàn)。2017年之前,人工智能無論是訓(xùn)練還是推理基本都在云端完成,但到了2023年,在邊緣側(cè)設(shè)備/芯片上進(jìn)行AI推理將占據(jù)該市場(chǎng)一半以上的份額,總額高達(dá)200-300億美元,這對(duì)IC廠商來說是一個(gè)非常龐大的市場(chǎng)。
美光在該領(lǐng)域一個(gè)很大的進(jìn)展是2019年對(duì)初創(chuàng)公司FWDNXT的收購,一舉將計(jì)算、內(nèi)存、工具和軟件集成到了AI綜合性開發(fā)平臺(tái)中。在FWDNXT人工智能推理引擎的支持下,美光深度學(xué)習(xí)加速器(DLA)技術(shù)具備面向矩陣向量乘法的大量乘法/累加單元,并且具有執(zhí)行某些關(guān)鍵非線性傳遞函數(shù)的能力。易于使用的編程軟件平臺(tái)和接口,支持廣泛的機(jī)器學(xué)習(xí)框架和神經(jīng)網(wǎng)絡(luò),能夠使內(nèi)存和計(jì)算能夠更緊密地融合,有助于實(shí)現(xiàn)更高的性能和更低的功耗。
反過來,F(xiàn)WDNXT的第五代機(jī)器學(xué)習(xí)推理引擎和神經(jīng)網(wǎng)絡(luò)算法,通過與美光專業(yè)的內(nèi)存知識(shí)相結(jié)合,將使美光能夠具備探索數(shù)據(jù)分析所需的深度學(xué)習(xí)AI解決方案的能力,并借此制造出基于AI的存儲(chǔ)芯片,或者包括AI的存儲(chǔ)芯片,尤其是在物聯(lián)網(wǎng)和邊緣計(jì)算領(lǐng)域。
如果我們還能想到美光在2015年收購了FPGA初創(chuàng)公司Pico Computing,并一直在努力尋找可重編程設(shè)備合適的應(yīng)用,以及將哪些數(shù)據(jù)放到內(nèi)存中能夠獲得更高的性能的話,那么,很明顯,美光正在學(xué)習(xí)在內(nèi)存和存儲(chǔ)中需要做些什么,以使其適合未來的神經(jīng)網(wǎng)絡(luò)中的各種難題,尤其是在邊緣側(cè),而不是僅僅制造一堆芯片并希望它們起作用。