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