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