IEEE TPDS'22:基于ReRAM的數模混合異構卷積神經網絡訓練加速器——內存計算系統系列成果之十一
卷積神經網絡(CNN)訓練過程可以分為前向和后向兩個階段,CNN訓練在后向傳播階段通常需要高精度的計算,但當前廣泛使用的基于模擬計算的存內處理(PIM)加速器由于精度受限難以滿足要求。論文提出了基于ReRAM的異構加速器ReHy,結合數字計算和模擬計算模塊來加速CNN訓練的不同階段:在前向階段利用基于模擬計算的存內處理模塊(APIM)實現高性能,在后向階段利用基于數字計算的存內處理(DPIM)保證高精度。我們在DPIM中設計了浮點加法和乘法運算邏輯來實現32位的高精度矩陣乘法運算,保證了后向階段的計算準確率。在計算過程中,對DPIM陣列中處理單元的刷新和重用,使資源利用率提高了54%。同時,我們還提出一個性能模型,用于評估在CNN訓練的后向階段執行高精度矩陣乘法時從DPIM獲得的收益,從而使得ReHy可根據數據并行度卸載由 DPIM 加速的矩陣乘法。基于七個典型的CNN模型進行實驗評估,ReHy實現了與全精度計算平臺(CPU/GPU)相似的準確率和收斂速度,但與CPU/GPU和FloatPIM相比,ReHy可以將CNN訓練速度提高48.8倍和2.4倍,并將能耗降低35.1倍和2.33倍。
該成果“ReHy: A ReRAM-based Digital/Analog Hybrid PIM Architecture for Accelerating CNN Training”發表在CCF A類期刊IEEE Transactions on Parallel and Distributed Systems(IEEE TPDS)2022上。IEEE TPDS主要關注并行分布計算算法、并行分布計算應用、并行分布計算結構和并行分布計算軟件等領域最新的研究進展和技術,該期刊的影響因子為3.757。

摘要
存內處理 (PIM) 已成為一種用于加速卷積神經網絡 (CNN) 應用的高性能和高能效計算范式。電阻隨機存取存儲器 (ReRAM) 已廣泛用于PIM架構,因為它具有極高的效率,可通過模擬計算以陣列級并行度加速矩陣向量乘法。然而,由于CNN訓練通常需要在后向傳播(BP)階段進行高精度計算,模擬PIM加速器的有限精度阻礙了它們在CNN訓練中的應用。為此,我們提出了ReHy,一種數模混合的PIM加速器以支持 ReRAM 陣列中的CNN訓練。ReHy由模擬PIM (APIM)和數字PIM (DPIM)模塊組成。ReHy使用APIM加速前向傳播 (FP) 階段以獲得高性能,并使用DPIM處理BP階段以獲得高精度。我們利用ReRAM的布爾邏輯運算能力來設計DPIM架構,設計浮點加法和乘法運算邏輯以支持ReRAM 陣列中的高精度矩陣乘法。我們的設計能夠在DPIM中以很高的精度處理單精度(32 位)或雙精度浮點數。此外,我們還設計了一種ReRAM重用機制,從而將資源利用率提高54%,而性能開銷可以忽略不計。我們提出了一個性能模型來估計在CNN訓練的BP階段執行高精度矩陣乘法時從DPIM獲得的收益,從而可以根據數據并行度把矩陣乘法卸載到DPIM加速模塊執行。
背景與動機

圖1 神經網絡訓練過程
CNN訓練經常使用隨機梯度下降 (SGD) 算法來確定權重參數。訓練過程可以分為兩個階段:FP和BP階段,如圖1所示。在FP階段,對訓練數據進行批量分類和檢測,以檢查神經網絡的質量。在FP計算過程中,對上一層的結果進行加權計算,并對結果應用一個激活函數,例如ReLU。在BP階段,反向計算輸出激活誤差和權重梯度。訓練過程評估CNN輸出層的損失函數,然后計算前一層的權重梯度,期間需要不斷更新網絡的權重以減少CNN輸出的誤差。

圖2 APIM中的陣列結構
ReRAM是一種典型的非易失性存儲器,已被廣泛用于設計模擬PIM (APIM) 加速器。數據以電阻狀態保存在ReRAM陣列中。如圖2(a)所示,流出位線(BL)的總電流(I)是流過陣列中連接到位線的所有 ReRAM 單元的電流總和。每個子電流代表電壓和電導的乘積,那么總電流I可以表示為兩個向量(V1,V2)和(G1,G2)的點積。如圖2(b)所示,ReRAM可以有效地在模擬域中執行矩陣向量乘法(MVM)。權重矩陣首先映射到ReRAM陣列,權重的值對應于ReRAM單元的電導。在MVM計算過程中,輸入向量作為電壓施加到字線上,部分和的結果在位線中生成。然后,每個位線中的部分和結果通過ADC轉換為數字值,并由移位器和加法器 (S&A) 生成最終結果。APIM加速器可以提供高性能和高能效,但由于計算精度有限,它們不能保證CNN訓練的收斂性。因此,梯度計算只能由高精度計算設備執行,例如CPU和GPGPU。在“GPU+APIM”架構中,雖然可以利用APIM來加速FP階段,但BP階段處理的數據仍然需要在不同的迭代中從APIM傳輸到GPU,導致極高的通信成本,這阻礙了APIM加速器在CNN訓練中的應用。

圖3 DPIM中的陣列結構
DPIM不同于依賴于數模和模數轉換的APIM的計算范式。它可以原位直接執行 “或非”運算,無需任何讀出放大器。圖3(a)顯示了并行電路在DPIM中的映射。憶阻器低阻態和高阻態分別對應1和0值。首先,輸出憶阻器應初始化為低阻態(1)。根據基爾霍夫定律,在并聯電路中,所有輸入憶阻器的總電阻變得低于每個憶阻器的電阻。因此,如果一個輸入憶阻器處于低阻狀態(1),則通過輸出憶阻器的電流增加,使得輸出憶阻器的狀態從1變為0,可以利用這一物理特性來實現NOR操作。NOR可以在DPIM陣列內并行執行,如圖3(b)所示。行中的輸出憶阻器應初始化為1,對代表不同操作數的憶阻器施加固定電壓VG,既不是輸入操作數也不是輸出結果的單元需要通過電壓VISO進行隔離。執行NOR運算的多個操作數應與輸出單元放在同一列(或同一行),以便在ReRAM陣列中實現列(或行)并行處理。
設計與實現
我們利用APIM加速FP階段,并使用DPIM處理BP階段,以保證高精度的同時實現高效率。我們提供了一個基于數據并行度的性能模型,以衡量將矩陣乘法操作卸載到DPIM的收益。為了支持DPIM中的更多操作,我們設計了基于NOR的一位減法運算符來支持具有不同符號位的浮點加法。為了獲得更高的行移位并行度,我們設置了移位索引,并行處理具有相同索引的行。由于定點乘法的結果只保留最低有效N位,因此不適用于十進制乘法。因此,我們重新設計了基于NOR運算的定點乘法運算,結果保留了最高有效N位。我們還建議在DPIM陣列中進行多次刷新操作,以減少處理單元的面積。

圖4 DPIM中的矩陣乘法映射
DPIM中矩陣乘法映射策略:在DPIM中,我們將需要參與運算的操作數放在同一行實現行并行。圖4舉例說明了兩個2×2矩陣的乘法。Matrix-1的行和 Matrix-2的列映射在同一行中,以并行執行點積。處理單元(PU)首先執行向量的點積,然后將中間結果存儲在IMn中。最后,我們累加中間結果,并將最終結果存儲在列Rn中。假設兩個矩陣的大小分別為M×K和K×N,則DPIM數組中映射了M×N行,即并行度為M×N。因此,總共需要執行K次乘法和K-1次加法。在上面的例子中,兩個2×2矩陣的乘法只需要依次執行2次乘法和1次加法。

圖5 浮點數運算符設計
浮點加法設計:浮點加法可以分為三個主要步驟:(i)對齊指數位,(ii)根據符號位進行尾數加減法,(iii)結果標準化。我們詳細介紹了不同符號位的浮點加法的設計。兩個不同符號的浮點數之間的加法運算本質上是減法運算。為了支持這樣的運算,我們設計了基于NOR的一位減法運算,它需要13次NOR運算。圖5(b)舉例說明了浮點加法的過程。假設Ne代表指數位,Nm代表尾數位。首先,兩個操作數的指數位相減。使用Ne+1位將差值存儲在exp'區域,額外的1位用于存儲差值符號。我們在對齊指數后對兩個尾數進行減法運算,然后對差值進行歸一化。為了使歸一化階段的移位操作并行化,我們創建了一個移位索引來記錄每一行的差值,將具有相同移位索引的行在一次復制操作中一起移位。需要注意的是,完成一個N位的復制操作需要2N次NOR操作。為了對齊指數位,exp'提供移位索引,并通過搜索操作實現并行移位。例如,在圖5(b)中,兩個指數位之間的差為10-01=01。因此,在指數位對齊過程中,該行的移位索引為1。
浮點乘法設計:浮點乘法分為四個步驟:(i)符號位異或,(ii)指數位相加,(iii)尾數進行定點乘法,(iv)結果標準化。圖5(a)舉例說明了浮點乘法的運算過程。現有的有限精度乘法機制不適用于尾數的定點乘法,因為它們在最終結果中保留最低N個有效位。因此,我們設計了一個有限精度的定點乘法,它保留了最高N個有效位,如圖6(c)所示。與圖6(b)所示的方法相比,我們設計的定點乘法的結果更接近于圖6(a)所示的實際值。

圖6 DPIM中定點乘法設計
由于ReRAM陣列大小是有限的,在設計浮點乘法運算符時,我們提出ReRAM重用機制,多次刷新并重用用于計算1位加法的12個單元,僅以8.3%的性能開銷將資源利用率提高了54%。資源的重用及利用率的提高使DPIM中進行更高精度的計算成為可能。
我們使用7個典型的CNN模型評估ReHy的性能,并將ReHy與CPU/GPU架構(基線)和最先進的基于ReRAM的加速器FloatPIM進行比較。實驗結果表明,ReHy達到了與CPU/GPU架構相似的精度和收斂速度。此外,與基線和 FloatPIM相比,ReHy可以將CNN訓練速度分別提高48.8倍和2.4倍,能耗降低35.1倍和2.33倍。這表明ReHy以數字計算和模擬計算混合的計算形式同時實現了CNN訓練的高精度和高效率。
參考文獻:
Hai Jin, Cong Liu, Haikun Liu, Ruikun Luo, Jiahong Xu, Fubing Mao, and Xiaofei Liao "ReHy: A ReRAM-Based Digital/Analog Hybrid PIM Architecture for Accelerating CNN Training," in IEEE Transactions on Parallel and Distributed Systems, vol. 33, no. 11, pp. 2872-2884, 1 Nov. 2022.
往期 · 回顧









