999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于3D憶阻器陣列的神經網絡內存計算架構

2019-06-26 10:04:54毛海宇舒繼武
計算機研究與發展 2019年6期
關鍵詞:資源功能

毛海宇 舒繼武

(清華大學計算機科學與技術系 北京 100084)

近年來,基于憶阻器的神經網絡內存計算加速器倍受學術研究者和工業界的關注[1-4].研究表明,數據在CPU和片外存儲之間的傳輸消耗的能量比一個浮點運算所消耗的能量高2個數量級[5].基于憶阻器的內存加速器將計算與存儲緊密結合,從而省去傳統的馮·諾依曼體系結構的中心處理器和內存之間的數據傳輸,進而提升整體系統的性能并節省大部分的系統能耗[6].此類加速器通過在憶阻器陣列外部加入一些功能單元,使憶阻器陣列能在幾乎一個讀操作的延遲內完成一次向量乘矩陣操作(matrix-vector-multiplication, MVM)[7],它是神經網絡計算中的主要操作.

雖然基于憶阻器的神經網絡內存計算加速器有著很高的性能和很低的能耗,但是當它用于神經網絡訓練任務時,憶阻器陣列的外圍電路利用率很低.這是因為:1)當執行前向傳播時,用于反向傳播的憶阻器陣列的外圍功能單元都處于空閑狀態; 2)當訓練的批大小(batch_size)較小時,無論是在前向還是反向的傳播過程中,都有一些憶阻器陣列的外圍功能單元處于空閑狀態.不僅如此,憶阻器陣列的外圍功能單元還占據了極大的面積.例如一個8-bit ADC(模擬轉數字的原件)的面積就是一個128×128的憶阻器陣列的面積的48倍[2].由于目前的基于憶阻器的神經網絡內存計算加速器的外圍電路存在上述2個問題,使得整個芯片的面積大且利用率低.

因此,本文針對上述問題提出了一種基于3D憶阻器陣列的神經網絡內存計算架構:基于功能單元池的憶阻器立方體(function-pool based memristor cube, FMC)通過提供一個功能單元池給多個堆疊在其上的憶阻器陣列共享,而不是為每一個憶阻器陣列配備所有的功能單元電路,從而達到減小芯片面積并提高功能單元利用率的目的.這種通過3D堆疊的方式進行功能單元共享的結構不僅減小了所有功能單元的占用面積,還極大地縮短了互聯線,使得整體的互聯面積減小.與此同時,由于互聯線路的縮短,FMC還減少了數據的傳輸,從而使得整體加速器結構的性能提高且能耗降低.

為了更好地利用FMC,本文用軟硬件協同設計的方式,進一步提出了基于FMC的計算數據排布策略——功能單元池感知的數據排布(function-pool aware data mapping, FDM).FDM通過配合FMC工作,使得數據移動更少,功能單元的利用率更高,進而提高整體架構的性能.

實驗結果表明:在單個訓練任務的情況下,我們提出的FMC能使功能單元的利用率提升43.33倍,在多個任務的情況下能提升高達58.51倍.同時,和有相同數目的Compute Array及Storage Array的2D-PIM比較,FMC所占空間僅為2D-PIM的42.89%.而且,FMC相比于2D-PIM有1.5倍的性能提升,且有1.7倍的能耗節約.

本文的主要貢獻有3個方面:

1) 分析并發現基于憶阻器的神經網絡內存計算加速器的外圍電路存在占用面積大且在神經網絡的訓練過程中外圍電路存在利用率極低的問題.

2) 提出了一種基于3D憶阻器陣列的神經網絡內存計算架構,通過將憶阻器陣列3D堆疊在根據系統結構配置設計的功能單元池上來共享外圍功能電路資源,從而達到減小芯片面積的占用、提高資源利用率的目的.

3) 提出了一種基于3D憶阻器陣列的計算數據排布策略,通過設計基于3D憶阻器陣列的硬件架構的數據排布策略來更好地利用此架構,使得數據移動盡可能少且資源利用率盡可能高.

1 相關工作

由于神經網絡的計算(推理和訓練)受限于傳統的馮·諾依曼體系結構中片上處理器到片外的存儲之間有限的帶寬,研究者們提出了內存計算,即將計算單元和存儲單元相結合,從而避免兩者間大量的數據傳輸.現在的內存計算可分為兩大類:基于憶阻器的內存計算(processing in memory, PIM)[1-4,8-10]和基于DRAM的內存計算——近數據計算(near data computing, NDC)[11-16].PIM通過直接利用憶阻器的特性,將存儲資源直接用于做計算,取得計算存儲相融合的效果.而NDC則是通過將計算資源靠近存儲單元擺放,并通過一些高帶寬的連接使得計算資源能快速地訪問存儲資源,例如混合記憶立方體(hybrid memory cube, HMC).

圖1描述了基于憶阻器的PIM的基本電路結構和計算原理[2].如圖1(a)所示,每個憶阻器單元的阻值代表一個數值,每個電壓代表一個輸入值,根據Kirchoff定律,通過模擬電路域的電流加,能得到一個代表輸出的電流值,如圖1(a)中公式所示.因此,在憶阻器陣列外圍加上一些功能單元,如圖1(b)所示,一個4×4的憶阻器陣列能夠用來存儲一個4×4的矩陣,然后加上代表4個1×4的向量的輸入電壓,就能在幾乎一個讀延遲內完成一次向量乘矩陣的運算.而向量乘矩陣的運算是神經網絡計算中的主要運算,因此,基于憶阻器的PIM加速器能極大地提升神經網絡計算的性能.

NDC最常用的硬件結構就是HMC.HMC通過在邏輯晶粒(計算單元)上堆疊一些DRAM晶粒(存儲單元),然后用一些垂直貫穿DRAM的穿過硅片通道(through silicon vias, TSV)使它們相連,從而使得計算單元到存儲單元擁有很高的訪存帶寬.但是其本質上還是計算和存儲相分離的,不同于基于憶阻器的PIM,NDC中用于存儲的DRAM晶粒并不能直接用來做計算.因此,PIM的性能通常優于NDC.

目前對于PIM的研究更多地針對推理,因為推理的計算以及數據流要比訓練簡單得多,但是它們所用到的硬件功能單元基本一樣.文獻[1]提出了用具有高存儲密度、低讀寫延遲、相比于其余NVM有較長壽命的ReRAM[17-20]來作為PIM的基礎硬件單元,并設計ReRAM陣列可被配置為3種模式:計算、存儲和緩存,再通過加上支持其余神經網絡計算的硬件單元來做神經網絡的推理計算.文獻[2]通過使用ReRAM陣列做向量乘矩陣的計算單元,并利用eDRAM作為其存儲單元,再通過設計推理的流水線計算,從而提高用PIM來做神經網絡推理的效率.文獻[3]通過復制多份計算單元,減少當PIM用來做神經網絡訓練時流水線計算中的空閑,從而提升PIM用來做神經網絡訓練任務的效率.文獻[4]使用比ReRAM有更接近于線性電阻值更新的PCM[21-23]加上CMOS作為PIM的基礎硬件單元[24],在同一個陣列中完成神經網絡訓練時的前向傳播和反向傳播操作.但是文獻[4]只能支持僅有全連接層的神經網絡的訓練,不能夠支持卷積神經網絡的訓練,而文獻[3]可以支持.文獻[7]提出了一種用來支持生成對抗網絡的基于ReRAM的PIM,它通過軟硬件結合的設計,省去生成對抗網絡中的冗余計算和存儲,并通過運行時可重配的互聯提升PIM支持復雜訓練數據流時的性能.

然而目前針對PIM的研究都以提高PIM的計算效率為目的,并沒有關注PIM的芯片面積以及其中的資源利用率.本文考慮了PIM芯片中的功能單元的面積占用問題及其利用率問題.還需說明的是:本文提出的基于憶阻器的3D結構不同于HMC的結構,其存儲本身能夠用來做計算,且最下層的邏輯晶粒(本文中的資源池)不僅僅是計算資源,還有用來支撐憶阻器做計算的功能單元(例如圖1中的DAC和ADC).

下文首先介紹設計的FMC架構,然后介紹基于FMC的數據映射,再后給出FMC的功能單元資源利用率、空間占用情況和FMC+FDM的性能和能耗等實驗結果及相應的分析,最后給出本文總結.

2 FMC架構設計

在本節中,我們首先給出了FMC的架構概要圖,如圖2所示,然后我們分別介紹FMC的憶阻器陣列、互聯結構、共享資源池.

Fig. 2 Outline of the function-pool based memristor cube圖2 基于功能池的憶阻器立方體的概要圖

Fig. 3 Intra-connections of 2D memristors圖3 憶阻器陣列的平面互聯

2.1 FMC架構

FMC架構主要分成3個部分:憶阻器陣列、3D互聯結構和共享資源池(如圖2的中部所示).共享功能單元池放置于最下方,其上堆疊若干個憶阻器陣列晶粒層.每一層有若干個憶阻器陣列晶粒,一部分用來做普通的存儲(本文中稱為Storage Array),一部分既可以通過配置用來做存儲也可以設置其用來做計算(本文中稱為Compute Array).每一層均通過垂直的連接和共享資源層相連.其層數以及每層憶阻器陣列的數目受限于工藝大小以及資源池的資源多少.

2.2 FMC的憶阻器陣列

FMC使用cross-bar結構的ReRAM作為其基礎硬件單元,如圖2左部所示,保留了作為存儲器時的外圍電路單元,例如寫驅動(未在圖2中標出).每一個正方形表示一個ReRAM cell.當這個憶阻器陣列被配置成Compute Array時,每個ReRAM cell用來存儲一個神經網絡中權重的值或者存儲值的一部分(即用多個cell存儲一個值,每個cell存儲多個位);當這個憶阻器陣列被配置成Storage Array時,整個陣列就被當做普通存儲器使用,一個cell存儲一個位.

2.3 FMC的互聯結構

FMC中的每層憶阻器陣列Storage Array中的憶阻器陣列通過H-tree的方式進行連接,Compute Array中的憶阻器陣列通過基于H-tree的可重配的連接方式進行連接(與文獻[7]的平面連接方式相同).Storage Array和Compute Array之間通過一個高速的共享線路進行連接.

圖3給出了憶阻器陣列的平面互聯結構.左邊是Storage Array的互聯結構.和普通存儲一樣,Storage Array用H-tree的連接方式:灰色圓圈代表merging node,連接的父節點的線路寬是連接子節點線路寬的2倍;灰色方塊代表multiplexing node,連接的父節點的線路寬和連接子節點線路寬一樣.右邊是Compute Array的連接方式:我們保留原來的H-tree的連接方式(圖3中灰色線條),并在同一層連接節點中不共父節點的節點(如圖3中黃色節點所示)之間加上一條電路線(如圖3中綠色線條所示).新加的這條電路線的寬度與其連接其父節點的線路寬度相同.由于接口有限,圖3中每個黃色節點被增加了一個轉換接口,使得它們能選擇連到它們的父節點或者相鄰節點.這種能夠在網絡訓練時的動態配置的連接方式不僅能夠支持快速的Compute Array之間的數據傳輸(開關撥到橫向連接線上,跨過H-tree結構進行通信),還能支持快速的權重更新,即Compute Array的讀寫(開關配置成H-tree的連接方式).圖3中間藍色部分表示的是Compute Array和Storage Array之間的共享高速連接,這部分并不是將它們直接相連,而是經由共享資源池將它們相連(如圖2中藍色部分所示).

Compute Array中每一個憶阻器陣列(橘黃色方塊)都配備有一個轉換接口,能控制每個憶阻器陣列是垂直連接(連向共享資源池或者不同平面的憶阻器陣列)還是平面連接(連向同平面的憶阻器陣列).如果一個憶阻器陣列連接到下一個憶阻器陣列,那么我們稱這2個憶阻器陣列是在同一個模擬電路域的,反之則不是.我們把一個模擬域內的所有連向共享資源池的陣列連接叫做這個模擬域的出入口,入口連接共享資源池的DAC分池,出口連接S+H池.

當有多個FMC時,各個FMC之間通過C-mesh的連接方式進行互聯,每個FMC的共享資源層能夠訪問其他FMC的Storage Array,但是不能使用其他FMC的Compute Array,即FMC之間只在數字域進行通信而不用模擬信號通信,這樣確保了模擬信號的穩定性和計算的準確性.

2.4 FMC的共享資源池

共享資源池由六大部分組成(如圖2右部所示):DAC池、S+H池、ADC池、S+A池、MP(Max Pool)池和激活函數單元池.每個分池由若干個功能單元組成.表1給出了這些功能單元的名稱及其對應的釋義.

圖4給出了各個分池之間的互聯結構.DAC池連接模擬電路域的入口,S+H池連接其出口.S+H池和ADC池相連接,ADC池可選擇連接S+A池、MP池、激活函數單元池和Storage Array部分.S+A池可選擇連接MP池、激活函數單元池、DAC池和Storage Array部分.激活函數單元池可選擇連接MP池、DAC池和Storage Array部分.MP池可選擇連接DAC池和Storage Array部分.每個分池內的計算資源通過C-mesh進行連接,分池之間通過高速共享線路進行連接.

Table 1 Notations of Function Units表1 功能單元的參數表示

Fig. 4 Intra-connection of sub-pools in function unit pool圖4 共享資源池各個分池之間的互聯結構

表2提供了共享資源池中功能單元的各個配置參數表示,我們將使用這些配置參數來介紹共享資源池的具體設計方法.

Table 2 Configurations of Function Units表2 功能單元的配置參數

表2是各個單元的相關配置參數表示,FMC的功能單元池的面積AFUP可表示為

AFUP=ADACNDAC+AADCNADC+ASHNSH+

ASANSA+AMPNMP+ASNS,

即功能單元池的總面積等于各個功能分池的面積和,各個分池的面積又取決于單個功能單元的面積以及其個數.為了節省FMC總體占用空間,其功能單元池的面積AFUP需滿足:

其中,0≤θ≤0.1.即功能單元池的面積既不能小于其上堆疊的ReRAM陣列的面積,否則無法充分利用功能單元池的空間;也不能過分大于ReRAM陣列的面積,否則會導致3D堆疊時的連接線路過長,不高效.同時,為了使得模擬電路域到數字電路域的順暢轉換,ADC和DAC單元的參數需滿足:

x×NDAC=n×m

(1)

(2)

其中,latencyPIM是每個憶阻器陣列一次模擬域向量乘矩陣運算的延遲,單位是ns;NSubCom是在一個共享線路上的所有用于計算工作的憶阻器陣列的數目.式(1)主要使得DAC轉換的位數和一個陣列中一行的位數相等,避免計算延遲.式(2)主要使得ADC轉換的位數不能小于計算速度,防止計算出來的數據阻塞在ADC之前;且ADC轉換速率不能大于傳輸速度,否則算出的數據會被阻塞在ADC之后.

Fig. 6 An example of FDM圖6 FDM策略的一個示例

有了這些公式的限制,我們就能根據實際系統情況的限制以及任務的需求,很好地制定出我們所需的功能單元池中每個功能單元的數目,從而設計高效的功能單元池.

3 FDM策略設計

在本節我們介紹FDM策略,配合FMC的硬件結構,使得存儲與計算資源分配合理、數據傳輸盡可能少、共享資源池的資源利用率盡可能高.由于FMC中有多層PIM陣列層,每層只有有限個PIM陣列,所以在神經網絡的訓練過程中可能需要多個PIM層的多個陣列.每一層中PIM陣列的數據傳輸要比每層間的數據傳輸延遲小,并且神經網絡的每個層之內、每個層之間已經訓練的不同階段都會有數據依賴.因此FDM的核心思想是將有數據依賴的數據塊盡量存在一個PIM陣列層上,將沒有數據依賴的計算塊放置于不同PIM層以方便它們共享資源池中的資源.圖5給出了在PIM中訓練一個神經網絡的數據存儲和數據流圖.正方形表示數據存儲在Compute Array中,直接用來做計算;圓角矩形表示數據存儲在Storage Array中,用來暫存數據供給Compute Array做計算.圖5中的W表示Weight,E表示Error,O表示Output.訓練時的前向傳播和反向傳播是串行的,而反向傳播包含2部分:誤差傳播和權值計算,二者是并行的.因此,當只有一個訓練任務時(訓練一個網絡),我們盡量把串行的部分切割排布到同一個FMC中,使得它們能夠時分復用共享資源池;把并行的部分排布到不同的FMC中,避免它們對資源池的訪問造成沖突.

Fig. 5 Data graph of training a neural network圖5 訓練一個神經網絡的數據圖

如果一層的權值需要多個憶阻器陣列進行存儲,那么我們把它們均勻地分布到一個FMC中的所有憶阻器陣列層上(圖6中從第1層到第n層進行循環分配,直到分配結束),因為它們之間不需要進行通信,所以不必在同一個平面層中,其余各層按照這個方式進行分配.這樣做還為了使得所有神經網絡層能有幾乎一樣的計算效率,能夠有幾乎相等的訪問共享資源池的延遲(避免如將第1層神經網絡權值分配到FMC的第1層憶阻器陣列、最后一層神經網絡分配到FMC的最后一層憶阻器陣列,從而導致因最后一層訪問共享資源池的延遲大而造成性能差的問題).當有多個訓練任務時,我們將多個訓練任務均勻分配到所有的FMC中.

FDM的整體流程如圖7所示.首先將多個網絡分配到多個FMC中,每個網絡可能在一個或多個FMC里;然后將每個網絡的不同層部分分配到FMC中;最后把網絡每個層的各個部分分配到FMC的各個PIM陣列層中.

Fig. 7 Flow chart of FMC圖7 FMC的流程總體流程

4 實驗與分析

本節首先介紹實驗環境、參數配置以及實驗方法,并簡要介紹所用的對比實驗的結構和參數配置;接著給出實驗結果和相應的分析,包括FMC的功能單元資源利用率、空間占用情況和FMC+FDM在訓練各個神經網絡時的性能和能耗比較.

4.1 實驗方法

表3給出了實驗環境和具體的基于ReRAM的主存參數配置.整個系統將CPU作為中心任務處理器,統計好訓練任務的數量以及每個任務所占空間大小后,按照FMD的策略將訓練任務發布到整個PIM中.發布完任務后CPU不再參與整個訓練工作,所有的訓練工作包括計算和數據存取都在基于ReRAM的主存中進行.本系統不考慮DRAM和ReRAM的混合主存,所有用來支持訓練的數據都存放在基于ReRAM的主存中.

Table 3 Hardware Configurations表3 硬件配置

我們使用CACTI 6.5[25]對所有FMC中的連接進行建模;使用CACTI-IO[26]來對FMC之間的連接進行建模.關于ReRAM的參數配置,我們使用DESTINY[27]進行模擬獲取.需要說明的是,我們的模擬系統中使用的基于憶阻器的主存包含2個chip;每個chip包含16個tile,通過H-tree方式連接;每個tile包含16個FMC.

如2.4節所述,FMC的資源池里各個資源的數目在不同的系統限制下會有不同的取值;同時,在同一個系統配置下,FMC的資源池的配置也可能會有多種可能.該實驗部分測試了在表3的系統配置情況下的所有配置可能,并選取了FMC的資源池的資源利用率最高的一種配置來做性能和能耗的相關實驗.

表4給出了FMC的單元配置參數,其中憶阻器陣列給出的參數是一層的配置,每個FMC有4層憶阻器陣列(考慮到傳輸線路長度和共享資源池的資源利用率).共享資源池中每個單元的占用面積直接使用ISAAC中的配置[2];每個單元的數目根據2.4節中的限制條件給出.

Table 4 Parameters of Units in FMC表4 FMC單元的實驗配置參數

我們將配備如表4所示的FMC結構和2D的PIM進行實驗比較,用PipeLayer[3]的結構.即一個PIM由多個PIM陣列組成,它們之間采用H-tree的連接方式進行連接,并且每個PIM陣列周圍都配備有表4中的功能單元,這些功能單元之間互相不能共享,屬于每個陣列私有.我們使用LeNet[28],ConvNet[29]和Caffe Model Zoo[30]中的6個流行的網絡來作為實驗的測試網絡,包含: AlexNet,NiN,GoogLeNet,VGG_M,VGG_S和VGG_19.它們中既有大網絡也有小網絡,既有全連接層也有卷積層,數據集也涵蓋了用來做圖像分類的黑白MNIST手寫數字集[31]和著名的用來做圖像分類、目標定位和檢測、場景分類的彩色圖片集ImageNet[32].我們使用1,8,16,32,64和128六種batch_size來訓練測試網絡集,每個單獨的網絡分別執行1 000次訓練迭代(用來測試單個任務時的架構性能),并將所有網絡同時執行1 000次訓練迭代(用來測試多個任務時的架構性能).

4.2 FMC的功能單元資源利用率

我們首先將2D的PIM的外圍電路資源利用率和FMC的共享資源池中的功能單元利用率在訓練單個神經網絡的情況下進行比較,結果如圖8所示.我們將訓練8個測試網絡時2D-PIM的外圍電路資源利用率歸一化成1,給出在每個測試網絡下FMC的資源利用率與2D-PIM的倍數比較.圖8中FMC-x的x表示訓練時所用的batch_size,所有網絡測試結果呈現按照名稱首字母降序排序.

Fig. 8 Utilization of function units in FMC compared with 2D-PIM when training a single network圖8 單個網絡訓練時FMC中功能單元的資源利用率和2D-PIM的比較

我們可以從圖8中看到,FMC的資源利用率要比2D-PIM的高(所有的資源利用率的提升均在1倍以上),且在batch_size=1時有非常顯著的利用率提升(如圖8中FMC-1的柱形所示),最高能達到43.33倍(訓練GoogLeNet時).另外FMC的資源利用率隨batch_size增大而減小.這是因為當batch_size增大時,2D-PIM中整個傳播過程可以很好地利用管道并行(pipeline)起來,從而提高功能單元的資源利用率.因此FMC在batch_size較大時,資源利用率的提升相比于2D-PIM不是很明顯,但仍然有一定提升.例如用batch_size=128來訓練GoogLeNet時,資源利用率有1.33倍的提升.這樣的提升來源于pipeline時候的氣泡部分以及前向傳播和反向傳播的中斷部分.圖8還顯示出訓練不同深度的網絡時FMC資源利用率提升的差別:當訓練深度大的網絡(GoogLeNet,VGG_19)時,FMC的資源率提升相對大;當訓練深度小的網絡(LeNet,ConvNet)時,FMC的資源利用率提升較小.這是因為網絡的深度越大,處理后面的網絡層需要等待的時間就越長,進而導致處理后面網絡層的2D-PIM的功能單元空閑時間過長,最終使得2D-PIM的資源利用率低,而FMC通過使前后層共享功能單元的方式提高了資源利用率,因此FMC的資源利用率相比較于2D-PIM的提升會隨著網絡層數的增大而更高,反之亦然.

圖9展示了多個神經網絡同時訓練時在FMC中的資源利用率和在2D-PIM中的資源利用率的比較結果.其中,L代表LeNet,C代表ConvNet,G代表GoogLeNet,V19代表VGG_19,ALL代表所有8個測試網絡的組合.

Fig. 9 Utilization of function units in FMC compared with 2D-PIM when training multiple networks圖9 多個網絡訓練時FMC中功能單元的資源利用率和2D-PIM的比較

從圖9中我們可以看出,當同時訓練的網絡越多且網絡深度越大時,FMC相比較于2D-PIM的資源利用率提升更大.這是因為,當同時訓練多個網絡時,2D-PIM的資源利用率取決于最小網絡訓練時的資源利用率,而FMC因為能夠使得多個網絡共享功能單元,從而在訓練網絡任務多時,由于各個網絡之間不存在依賴關系可以并行,因此它們可以通過pipeline的方式共享功能單元,從而提升FMC的資源利用率,進而使得FMC相比較于2D-PIM的資源利用率的提升更為明顯.但是這樣的提升速率并不會隨著網絡大小和網絡深度的增長速率而增長,這是因為,當網絡的大小和數目大到一定程度時,共享資源池的資源利用率趨近于100%(不能到達100%,因為訓練起步時會有一定的氣泡).

4.3 FMC空間占用

圖10給出了FMC中的各個功能單元和一層憶阻器的面積占用的比較.其中,一層憶阻器的面積占用為總共面積占用的49.97%,也就意味著一層憶阻器的面積稍稍小于功能單元池的面積.在功能單元池中,DAC和ADC是占主要面積的分單元池,分別為21.24%和18.74%.

Fig. 10 Area breakdown of FMC(one layer of memristor) 圖10 FMC中各個單元的空間占用比率(包含一層憶阻器陣列)

FMC中新加的開關和連接線占總空間的6.79%,而一個FMC所占空間僅是具有同等數目的Compute Array及Storage Array的2D-PIM所占空間的42.89%.

4.4 FMC+FDM性能和能耗

由于batch_size對FMC的性能和能耗與2D-PIM的比較幾乎沒有影響,因此我們選取batch_size=64(常用的batch_size)作為FMC的性能和能耗測試結果呈現,具體如圖11和圖12所示.

Fig. 11 Performance of FMC compared with 2D-PIM圖11 FMC與2D-PIM的性能比較

Fig. 12 Energy consumption of FMC compared with 2D-PIM圖12 FMC與2D-PIM的能耗比較

從圖11中我們可以看出,相比于2D-PIM,使用FMC訓練越大的神經網絡取得的性能加速要大.這是因為FMC各層憶阻器陣列之間是3D堆疊的,并通過3D堆疊的方式共享資源池.這使得憶阻器陣列之間的連接充分縮短,而網絡越大需要的憶阻器陣列就越多,因此FMC相比于2D-PIM的優勢就更為明顯.而用FMC訓練LeNet時幾乎沒有性能上的提升,這是因為LeNet很小,從而使得FMC的3D堆疊的連接方式相比較于2D-PIM的優勢小,且數據傳輸的延遲被計算的延遲隱藏.總體來看,FMC相比于2D-PIM有1.5倍的性能提升.

圖12展示了用FMC和2D-PIM訓練單個神經網絡時能耗比較.FMC在訓練神經網絡時能比2D-PIM有明顯的能耗節省,也是因為FMC的3D堆疊的結構比2D-PIM的平面結構大大減少數據傳輸的線路長度.因此,所訓練的神經網絡越大,FMC相比于2D-PIM的能耗節省就更加明顯.當訓練GoogLeNet時,能耗節省能達到2.47倍.而當訓練LeNet時,FMC也比2D-PIM有1.2倍的能耗節省.總的來看,FMC平均比2D-PIM節省1.7倍的能耗.

5 總 結

現如今,基于憶阻器的內存計算(PIM)如火如荼,但是它存在著除憶阻器陣列之外的電路單元面積過大且利用率低的問題.本文提出了一種基于3D憶阻器陣列的神經網絡內存計算架構,將功能單元抽取出來形成一個資源池提供給憶阻器陣列共享,并通過3D堆疊的方式縮短各個憶阻器陣列的連接以及憶阻器陣列和功能單元池之間的連接.同時,我們還提出了一種基于3D憶阻器陣列的計算數據排布策略,配合上3D憶阻器陣列的結構,使得訓練神經網絡時的數據移動盡可能小.實驗結果顯示,我們提出的基于3D憶阻器陣列加共享資源池的架構能使功能單元的利用率在單個訓練任務的情況下提升43.33倍,在多個任務的情況下最高提升58.51倍.同時,我們提出3D架構所占空間是有相同數目的Compute Array及Storage Array的2D-PIM所占空間的42.89%.此外,我們提出3D架構相比于2D-PIM有平均1.5倍的性能提升,且有平均1.7倍的能耗節約.

猜你喜歡
資源功能
讓有限的“資源”更有效
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基礎教育資源展示
一樣的資源,不一樣的收獲
資源回收
關于非首都功能疏解的幾點思考
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 永久免费无码成人网站| 亚洲最猛黑人xxxx黑人猛交 | 亚洲欧美国产五月天综合| 国产综合色在线视频播放线视| 精品国产免费第一区二区三区日韩| 亚洲高清无在码在线无弹窗| 亚洲国产亚洲综合在线尤物| 婷婷六月激情综合一区| 国产乱人免费视频| 亚洲成a人片77777在线播放| 亚洲精品第一页不卡| 国产激情国语对白普通话| 欧美爱爱网| 午夜小视频在线| 国产亚洲精品自在久久不卡 | 91在线视频福利| 亚洲欧洲日韩国产综合在线二区| 伊人久久婷婷| 日本午夜在线视频| 亚洲综合狠狠| 中国精品久久| 伊人久久婷婷| 女同国产精品一区二区| 偷拍久久网| 超级碰免费视频91| 国产jizzjizz视频| 亚洲天堂久久新| 国产精品偷伦在线观看| 国产精品免费福利久久播放| 日韩亚洲高清一区二区| 亚洲男人在线天堂| 亚洲无限乱码一二三四区| 久综合日韩| 日本黄网在线观看| 久久久久久午夜精品| 国产成人AV男人的天堂| 婷婷久久综合九色综合88| 无码免费视频| 免费看的一级毛片| 99视频全部免费| 亚洲国产欧美目韩成人综合| 又猛又黄又爽无遮挡的视频网站| 免费无码一区二区| 激情无码字幕综合| 99久久性生片| a级毛片免费看| 精品久久高清| 欧美精品啪啪| 99国产在线视频| 免费一看一级毛片| 久久公开视频| WWW丫丫国产成人精品| 97av视频在线观看| 国产97色在线| 亚洲最新在线| 华人在线亚洲欧美精品| 亚洲国产日韩在线观看| 国模在线视频一区二区三区| 欧美精品综合视频一区二区| 欧美怡红院视频一区二区三区| 久久精品亚洲专区| 97久久人人超碰国产精品| 国产精品女同一区三区五区| 欧美另类精品一区二区三区| 五月婷婷综合色| 免费一级无码在线网站| 亚洲日韩高清在线亚洲专区| 日本午夜精品一本在线观看| www精品久久| 国产亚洲欧美日韩在线一区二区三区| 综合色亚洲| 中文字幕乱码中文乱码51精品| 色网站在线视频| 四虎国产永久在线观看| 欧美不卡在线视频| 欧美日韩午夜| 久久人妻xunleige无码| 日本www色视频| 久久这里只有精品66| 亚洲欧美不卡视频| 国产精品无码制服丝袜| 婷婷六月天激情|