受新冠肺炎疫情影響,全球數(shù)字化轉(zhuǎn)型進(jìn)程加快,存儲器半導(dǎo)體技術(shù)的演變模式也隨之發(fā)生改變。人工智能(AI,Artificial Intelligence)、物聯(lián)網(wǎng)(IoT,Internet of Things)和大數(shù)據(jù)等技術(shù)正迅速發(fā)展,并廣泛應(yīng)用于遠(yuǎn)程辦公、視頻會議和在線課堂中,導(dǎo)致待處理的數(shù)據(jù)量激增。有數(shù)據(jù)顯示,到2025年,全球數(shù)據(jù)量將達(dá)到163澤字節(jié)(zettabytes)1,其中有5.2澤字節(jié)(zettabytes)需進(jìn)行數(shù)據(jù)分析。
當(dāng)前的計算機(jī)系統(tǒng)采用馮·諾伊曼(Von Neumann)體系結(jié)構(gòu)2。根據(jù)圖1所示的內(nèi)存層次結(jié)構(gòu),當(dāng)中央處理器(CPU)處理來自片外主內(nèi)存(DRAM)的數(shù)據(jù)時,常用數(shù)據(jù)會被存儲在快速且高能效的緩存(L1、L2、L3)中,以提高性能和能效。但是,在處理大量數(shù)據(jù)的應(yīng)用中,大部分?jǐn)?shù)據(jù)需從主內(nèi)存中讀取,因為待處理的數(shù)據(jù)規(guī)模非常大,超出了緩存的存儲規(guī)模。
△ 圖1:內(nèi)存層次結(jié)構(gòu)
在這種情況下,CPU和主內(nèi)存之間的內(nèi)存通道帶寬成為性能瓶頸3,并且在CPU和主內(nèi)存之間傳輸數(shù)據(jù)需要消耗大量能量。要突破這一瓶頸,需要擴(kuò)展CPU和主內(nèi)存之間的通道帶寬,但是若當(dāng)前CPU的針腳數(shù)量已經(jīng)達(dá)到極限,帶寬的進(jìn)一步改進(jìn)便將面臨技術(shù)方面的難題。在數(shù)據(jù)存儲和數(shù)據(jù)計算分離的現(xiàn)代計算機(jī)結(jié)構(gòu)中,此類內(nèi)存墻問題的出現(xiàn)是不可避免的。
假設(shè)處理器進(jìn)行乘法運算的功耗約為1,將數(shù)據(jù)從DRAM提取到處理器所消耗的能量是實際運算所需能量的650倍,這表明最大限度地減少數(shù)據(jù)傳輸量對于性能和能效的改進(jìn)非常重要。(圖2)
深度神經(jīng)網(wǎng)絡(luò)(DNN,Deep Neural Network)4是機(jī)器學(xué)習(xí)(ML,Machine Learning)的一種,其中最具代表性的是應(yīng)用于計算機(jī)視覺(CV,Computer Vision)的卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Networks)和應(yīng)用于自然語言處理(NLP,Natural Language Processing)的遞歸神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Networks)。近來,推薦模型(RM,Recommendation Model)等新應(yīng)用也傾向于采取DNN技術(shù)。其中,遞歸神經(jīng)網(wǎng)絡(luò)主要用于進(jìn)行矩陣向量乘法運算。遞歸神經(jīng)網(wǎng)絡(luò)具有數(shù)據(jù)重用量低的特點,內(nèi)存讀取次數(shù)越多,通過內(nèi)存通道傳輸?shù)臄?shù)據(jù)就越多,這也成為提高性能的瓶頸。
為了突破性能瓶頸,業(yè)界正在重新審視應(yīng)用內(nèi)存中處理(PIM,Processing In Memory)5概念的DRAM。從定義可以看出,PIM技術(shù)指直接在內(nèi)存中處理數(shù)據(jù),而不是把數(shù)據(jù)從內(nèi)存讀取到CPU中再進(jìn)行處理。這樣可以最大限度地減少數(shù)據(jù)傳輸量,幫助克服上述瓶頸。從20世紀(jì)90年代末到21世紀(jì)初,學(xué)術(shù)界一直在積極研究這一概念,但由于DRAM工藝和邏輯工藝存在技術(shù)上的難點,且若以DRAM為載體在內(nèi)存中實現(xiàn)CPU的功能,成本會相應(yīng)增加,這導(dǎo)致PIM技術(shù)不具備競爭優(yōu)勢,因此遲遲未能進(jìn)入商業(yè)化階段。然而,PIM需求的日益增長以及工藝技術(shù)的進(jìn)步重新喚起了實施PIM的可能性。
要想理解PIM,必須先了解人工智能的需求。圖3給出了神經(jīng)網(wǎng)絡(luò)的全連接(FC,Fully Connected)層6示例。左圖中,輸出神經(jīng)元y1與輸入神經(jīng)元x1、x2、x3和x4相連,并且各個連接的突觸權(quán)重分別為w11、w12、w13和w14。在處理全連接層的過程中,人工智能運算單元將各個輸入神經(jīng)元的權(quán)重相乘,再將各項乘積相加,然后應(yīng)用如線性整流函數(shù)(ReLU,Rectified Linear Unit)等激活函數(shù)7。概括而言,如右圖所示,如果存在多個輸入神經(jīng)元(x1,x2,x3,x4)和輸出神經(jīng)元(y1,y2,y3),人工智能計算單元會將各個輸入神經(jīng)元的連接權(quán)重相乘,再將乘積相加。事實上,這些運算可以被視為矩陣的乘法和加法運算,因為輸入神經(jīng)元被等量使用。
如圖4所示,如果內(nèi)存中可以加入這些運算回路,則無需再將數(shù)據(jù)傳輸?shù)教幚砥髦刑幚恚恍鑼⒔Y(jié)果傳送到處理器即可。這樣可以顯著減少高能耗的數(shù)據(jù)傳輸操作,從而提高復(fù)雜運算的能源效率?;谶@樣的應(yīng)用理念,SK海力士正在開發(fā)PIM DRAM。對于遞歸神經(jīng)網(wǎng)絡(luò)等內(nèi)存受限型應(yīng)用,如果可以在DRAM中加入運算回路,則有望顯著提高性能和能效。鑒于需要處理的數(shù)據(jù)量將繼續(xù)大幅增加,PIM有望成為提高當(dāng)前計算機(jī)系統(tǒng)性能限度的有力選擇。
注釋:
11澤字節(jié)等于1021字節(jié)
2馮·諾伊曼體系結(jié)構(gòu)使用CPU和存儲裝置來驅(qū)動計算機(jī)。
3這一性能瓶頸也稱為馮·諾伊曼瓶頸,即,由于處理器在讀取內(nèi)存過程中處于空閑狀態(tài),計算機(jī)系統(tǒng)的吞吐量會受處理器的限制。
4深度神經(jīng)網(wǎng)絡(luò)(DNN, Deep Neural Network)是輸入層和輸出層之間的多層人工神經(jīng)網(wǎng)絡(luò)(ANN, Artificial Neural Network)。神經(jīng)網(wǎng)絡(luò)種類多樣,但均由相同的部分構(gòu)成:神經(jīng)元、突觸、權(quán)重、偏置和函數(shù)。
5內(nèi)存中處理(PIM,有時稱為存內(nèi)計算)指將處理器與RAM(隨機(jī)存取存儲器)集成在單個芯片上。集成后的芯片也被稱為PIM芯片。
6全連接層:每一層的任意一個神經(jīng)元均與其前一層的所有神經(jīng)元相連接。現(xiàn)行大多數(shù)機(jī)器學(xué)習(xí)模型中,最后幾層都是全連接層,全連接層會編譯前幾層提取的數(shù)據(jù)并進(jìn)行最終輸出。
7神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)用于定義如何將輸入神經(jīng)元的加權(quán)和映射到網(wǎng)絡(luò)某一層中一個或多個節(jié)點的輸出端。線性整流激活函數(shù)(ReLU, Rectified Linear Unit)是一個分段線性函數(shù),它把所有的負(fù)值都變?yōu)?,而正值不變。