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

面向分布式卷積神經(jīng)訓練網(wǎng)絡(luò)的FPGA加速器設(shè)計

2023-12-11 10:02:18張小軍王俊英王曉靜王正榮張德學
實驗室研究與探索 2023年9期

張小軍, 王俊英, 王曉靜, 韓 欽, 王正榮, 張德學

(1.山東科技大學電子信息工程學院,山東青島 266590;2.高效能服務(wù)器和存儲技術(shù)國家重點實驗室,濟南 250101)

0 引 言

近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)已成功應(yīng)用于目標檢測、圖像識別和自然語言處理等人工智能領(lǐng)域[1-2]。在神經(jīng)網(wǎng)絡(luò)開發(fā)的硬件平臺中,F(xiàn)PGA相對于GPU和CPU具有更高的能效,與ASIC 相比可擴展性更好、開發(fā)周期更短[3]。故基于FPGA的加速平臺成為一種極具潛力的計算方案[4]。盡管得益于近年集成電路工藝特征尺寸的減小,F(xiàn)PGA單片資源數(shù)增加明顯,但仍舊難以滿足搭建大規(guī)模CNN的需求。因此,采用多個FPGA可提高大規(guī)模神經(jīng)網(wǎng)絡(luò)模型的訓練效率[5]。

與單FPGA 的硬件加速系統(tǒng)只考慮算法映射相比,多FPGA 的CNN 硬件加速由于包含算法拆分、算法映射與多FPGA 通信等機制,其實現(xiàn)復(fù)雜性大幅提高[6-7]。分布式加速分為數(shù)據(jù)并行和模型并行。其中數(shù)據(jù)并行在不同CNN 層中應(yīng)用的配置不同,F(xiàn)PGA 需要在層間重新配置,以實現(xiàn)每一層的優(yōu)化設(shè)計。為降低多FPGA加速器的實現(xiàn)復(fù)雜度,提高CNN的執(zhí)行效率,眾多國內(nèi)外學者對其展開了研究。Zhang 等[8]提出一種深度流水線多FPGA設(shè)計,使總吞吐量最大化。Sharma等[9]基于Caffe 框架中的CNN規(guī)范,提出一種為多FPGA平臺生成可合成加速器的技術(shù)。為減少片外訪問,Alwani 等[10]改變計算模式,為計算多個卷積層提供了更好的緩存空間。Lian 等[11]利用軟件控制執(zhí)行并將計算密集型操作加載到硬件加速器,提出一種基于多FPGA數(shù)據(jù)并行方案,批量處理數(shù)據(jù)集,實現(xiàn)了深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)推理加速。以上工作主要探索了CNN 在多FPGA 平臺上的推理加速,在多FPGA的存儲和計算方面進行了研究。但基于多FPGA 的訓練網(wǎng)絡(luò)的相關(guān)工作較少。基于FPGA采用反向傳播(Back Propagation,BP)算法訓練CNN的過程中存在計算強度不平衡,導(dǎo)致整體性能降低。肖望勇[12]提出一種軟件訓練、硬件加速方案,通過改進手寫數(shù)字識別架構(gòu)算法,采用Python 訓練CNN參數(shù)并通過高層綜合語言設(shè)計基于FPGA的手寫數(shù)字識別系統(tǒng)。Geng 等[13]優(yōu)化可擴展框架,有效將CNN訓練邏輯映射到多個FPGA。Jiang 等[14]提出一種新硬件和軟件協(xié)同探索框架,用于高效神經(jīng)架構(gòu)搜索,縮短訓練時間。神經(jīng)網(wǎng)絡(luò)的訓練過程主要通過誤差BP算法完成,反向訓練運算處理單元與前向重合度較高,數(shù)據(jù)間存在高度的依賴性,針對CNN 架構(gòu),優(yōu)化整體架構(gòu),調(diào)整計算時序,實現(xiàn)多FPGA分布式神經(jīng)網(wǎng)絡(luò)訓練加速實驗。主要工作如下:

(1)根據(jù)BP算法,完成CNN 訓練。采用數(shù)據(jù)并行分布式模型,拆分圖片訓練集,進行并行訓練,實現(xiàn)多FPGA分布式CNN的訓練加速。

(2)根據(jù)各層數(shù)據(jù)的依賴性,改變矩陣內(nèi)部卷積順序,實現(xiàn)層內(nèi)和層間的細粒度流水線設(shè)計,降低計算延遲。

(3)根據(jù)各層卷積核特點,提出一種數(shù)據(jù)拼接方案,根據(jù)需求選擇不同的數(shù)據(jù)拼接方案,解決卷積運算造成的存儲資源消耗過大。根據(jù)不同層數(shù)據(jù)分布特征,各層之間選用不同定點量化方案,進一步降低存儲資源消耗。

(4)搭建多FPGA測試平臺,采用QSFP光纖接口進行通信,優(yōu)化Ring-Allreduce 數(shù)據(jù)傳輸方案,測試表明,多FPGA測試可得到近似線性加速比。

1 卷積神經(jīng)網(wǎng)絡(luò)算法

1.1 前向傳播算法

為提取圖片特征,卷積層中卷積核與輸入矩陣做卷積運算,提取數(shù)據(jù)特征值。輸入特征和權(quán)重經(jīng)卷積得到輸出特征。設(shè)卷積層輸入尺寸為M×M,卷積核的尺寸為N×N,卷積步長為S,填充為P,可得多通道輸出二維矩陣

池化層用于減少圖片中特征數(shù)量,降低計算量,主要分為最大池化和平均池化,平均池化由于減少估計值方差,增大誤差,更大限度地保留了圖像的背景信息。平均池化后的圖像信息。

式中:datai為池化層的輸入矩陣元素;l×l為池化層的窗口元素尺寸。

全連接層對數(shù)據(jù)特征進行拼接計算,分類輸出。輸入矩陣由三維轉(zhuǎn)化成二維矩陣,與多組單通道權(quán)重運算,得到多個神經(jīng)元輸出。CNN 中的激活函數(shù)改變架構(gòu)內(nèi)部線性運算特性,對輸出進行判斷,采用Sigmoid作為激活函數(shù)。

1.2 反向傳播(BP)算法

BP算法稱為誤差反向傳播,結(jié)合梯度下降完成對權(quán)重和偏置的更新,每層更新對應(yīng)參數(shù)并通過誤差損失函數(shù)傳遞到前層,達到訓練效果。BP算法的本質(zhì)為鏈式求導(dǎo)過程,前向推理運算完成后,進行BP 更新參數(shù)。CNN逐層傳遞,經(jīng)過鏈式求導(dǎo)

通過損失函數(shù)的傳遞更新參數(shù)。最終通過鏈式法則實現(xiàn)整個架構(gòu)反向流動。BP 由誤差傳遞以及參數(shù)更新兩部分組成。

2 硬件架構(gòu)設(shè)計

采用細粒度流水線提高訓練速度,實現(xiàn)高吞吐率。提出一種數(shù)據(jù)拼接讀寫方案減少存儲資源消耗,優(yōu)化激活函數(shù)及池化層硬件實現(xiàn)方案,減少計算資源的消耗,提高內(nèi)部運算效率。分布式CNN 訓練過程中多FPGA之間采用光模塊互聯(lián),減少板間通信延遲。

2.1 整體架構(gòu)

神經(jīng)網(wǎng)絡(luò)整體訓練架構(gòu)由片外存儲CNN數(shù)據(jù)集,F(xiàn)PGA內(nèi)部增加緩沖區(qū),解決讀取數(shù)據(jù)滯后,節(jié)省數(shù)據(jù)讀取時間。緩沖區(qū)預(yù)存并加載數(shù)據(jù)集,初始化參數(shù)存儲到內(nèi)部存儲器。如圖1 所示,F(xiàn)PGA 內(nèi)部CNN 架構(gòu)由卷積層、池化層和全連接層構(gòu)成,BP 更新權(quán)重和偏置,完成一輪訓練。權(quán)重和偏置更新后進行新一輪迭代。多FPGA之間通過光纖通信完成板間傳輸,實現(xiàn)數(shù)據(jù)同步。訓練完成后,輸入測試集測試訓練性能。

圖1 多FPGA分布式結(jié)構(gòu)

2.2 層內(nèi)加速

卷積運算通過RAM 存儲不同地址,實現(xiàn)矩陣像素位置的移動,經(jīng)過乘加模塊得到卷積結(jié)果。已知卷積核為N×N,輸入為M×M,步長為S,池化層的核為l×l,步長為t,得到輸出矩陣:

根據(jù)式(4)可得卷積計算預(yù)估時鐘個數(shù)。后經(jīng)過激活函數(shù),寫入RAM數(shù)據(jù)存儲器。式(5)為卷積后的第1 個像素點所需clock個數(shù),第1 個像素點進行卷積運算所需clock數(shù)可用式(6)表示,式(7)為其余像素點所需clock 個數(shù),其余像素點進行卷積運算所需clock數(shù)可用式(8)表示。式(9)為池化之后第1 個像素點所需clock個數(shù),式(10)為其余像素點所需clock數(shù)量,所有像素點卷積與池化后所需clock 個數(shù)可用式(11)表示。O1和O2分別為卷積和池化后像素點的大小。若未采用流水線設(shè)計,O1和O2的大小為卷積和池化后本層輸出矩陣大小,細粒度流水線設(shè)計是從存儲器中提前讀取數(shù)據(jù),改變像素點計算順序,減小O1和O2,從而減小Xc。當O1和O2大小滿足下一層卷積核大小時,進行下一層運算。如圖2、3 所示,由后層卷積核大小決定L層卷積結(jié)果的運算順序,在L層卷積未完成的情況下,滿足L+1 層的像素點窗口條件后提前進行L+1 層運算。采用細粒度流水線方案,可縮短47.8%的運算時長。

圖2 流水線加速

圖3 卷積運算示意圖

當前數(shù)據(jù)寫入RAM,狀態(tài)機判斷讀寫地址關(guān)系,發(fā)送讀使能信號,無須滿足全部數(shù)據(jù)存入后的延時,即可進行下一步計算。根據(jù)以上2 種方式做細粒度流水完成各層運算。在保證頻率相對較高的基礎(chǔ)上,縮短了圖片訓練時長。

2.3 資源優(yōu)化

存儲器主要存儲權(quán)重、偏置和每層輸出數(shù)據(jù)做前向傳播運算以及BP運算。設(shè)卷積核為N×N,卷積層硬件實現(xiàn)是將輸入的數(shù)據(jù)和權(quán)重同時存儲到N個RAM存儲器,從N個RAM 中同時讀取不同地址的N個數(shù)據(jù)進行卷積運算,分批次處理部分數(shù)據(jù)的乘加,經(jīng)過N個時鐘運算,得到輸出矩陣的一個元素。通過設(shè)置存儲基地址偏移量,實現(xiàn)卷積核在輸入矩陣中的小窗口移位卷積計算,地址橫向移動,依次處理每個卷積核運算。在數(shù)據(jù)讀取過程中,滿足不同地址數(shù)據(jù)的同時讀寫,并行輸出N個數(shù)據(jù)做乘加運算,這種方案存儲資源消耗過大,增加了(N-1)倍的片內(nèi)資源。提出一種既節(jié)省存儲資源又可在消耗較少的時鐘下完成對整個矩陣的卷積計算方法。圖4 是數(shù)據(jù)進行卷積的硬件結(jié)構(gòu)。假設(shè)N=5,將5 個數(shù)據(jù)進行并行拼接且存儲到RAM的一個地址中,此時RAM內(nèi)部存儲位寬是原來的5 倍,深度變成原來的1/5。RAM 采用雙端口設(shè)計,根據(jù)卷積計算特點進行數(shù)據(jù)選擇,每個時鐘可以讀出兩組由5 個輸入數(shù)據(jù)并行拼接的數(shù)據(jù)。令步長為1,可組合成(N+1)個數(shù)據(jù)卷積運算,每個clock 完成(N+1)個像素點的1/N部分計算,N個時鐘就可完成(N+1)個像素點計算。以本文反向卷積運算、核為24 ×24 為例,輸入矩陣尺寸為28 ×28,內(nèi)部元素采用24 個數(shù)值拼接,存儲到1 個地址中,RAM 采用雙口讀寫,解決每個clock同時讀取24 個數(shù)據(jù)以及所需卷積元素跨2 個地址卷積運算。

圖4 卷積硬件結(jié)構(gòu)

為節(jié)省硬件內(nèi)部計算資源,平均池化采用移位運算實現(xiàn)。激活函數(shù)采用分段非線性擬合法[15]實現(xiàn),增加移位運算以減少乘法器數(shù)量,降低由乘法運算帶來的資源消耗。

2.4 Ring-Allreduce傳輸模式

基于多FPGA分布式CNN數(shù)據(jù)傳輸方案:

式(12)為板間數(shù)據(jù)傳輸所消耗的時間,由數(shù)據(jù)計算時間Tt1和數(shù)據(jù)輸出串、并轉(zhuǎn)換時間Tsp以及板間傳輸時間Ttran組成。式(13)~(15)為數(shù)據(jù)經(jīng)過FPGA傳輸?shù)臄?shù)據(jù)累加。數(shù)據(jù)傳輸方式如圖5(a)所示,經(jīng)過完整的3 輪循環(huán)數(shù)據(jù)傳輸,根據(jù)式(13)~(15),數(shù)據(jù)從3 個FPGA內(nèi)部傳輸,完成3 組數(shù)據(jù)累加,耗時6Ttran后,將一組數(shù)據(jù)傳輸?shù)矫總€FPGA 內(nèi)部,這種數(shù)據(jù)傳輸方式重復(fù)性高,耗時長。因此采用圖5(b)方案傳輸數(shù)據(jù)。在FPGA3接收來自FPGA1和FPGA2的數(shù)據(jù)之后,結(jié)合FPGA3內(nèi)部數(shù)據(jù)完成計算,分別傳輸?shù)紽PGA1和FPGA2,耗時3Ttran,循環(huán)一周完成數(shù)據(jù)累加,減少數(shù)據(jù)傳輸時間T,也減少了數(shù)據(jù)的傳輸量。

圖5 Ring-Allreduce數(shù)據(jù)傳輸

3 性能測試

3.1 量化分析

為節(jié)省硬件資源消耗,減少邏輯運算,選用定點量化進行神經(jīng)網(wǎng)絡(luò)訓練。量化方案

式中:QS為符號位;QI為整數(shù)位;QF為小數(shù)位。

在不同量化方案,對Mnist數(shù)據(jù)集訓練性能統(tǒng)計,見表1。當選用QS為1、QI為1、QF為6,即Q(1,1,6)方案時,錯誤率高達91.08%。選用Q(1,5,10)方案,錯誤率為12.97%,與Q(1,10,21)方案2.75%的錯誤率相比仍差距過大,因此針對各梯度數(shù)據(jù)分布統(tǒng)計,設(shè)計一種位寬可變精度方案。統(tǒng)計表明,卷積層輸出數(shù)據(jù)在0.1 ~1 之間,池化層數(shù)據(jù)分布主要集中在0.01 ~1 之間,卷積層4 的梯度數(shù)據(jù)分布主要集中在10-1~10-4之間,卷積層2 的梯度數(shù)據(jù)分布主要集中在10-2~10-5之間。預(yù)留乘加運算溢出位寬,量化方案為BP全連接層選用Q(1,5,10),卷積層分別選用Q(1,2,13)和Q(1,0,15)的數(shù)據(jù)精度,得到錯誤率為4.93%,與32 位寬相比,僅相差2%,因此選用16 位可變精度量化方案進行圖片訓練。

表1 訓練識別效果

3.2 Ring-Allreduce數(shù)據(jù)傳輸

如圖6 所示,分布式CNN 數(shù)據(jù)傳輸由3 個FPGA互聯(lián),并行訓練多張圖片。FPGA 之間依次傳輸每一層更新后的參數(shù),根據(jù)圖5(b)中的Ring-Allreduce 傳輸模式進行板間傳輸。采用QSFP 光纖接口傳輸數(shù)據(jù),以減小數(shù)據(jù)傳輸延遲對訓練速度的影響,板間添加異步FIFO解決數(shù)據(jù)不同步問題,最終實現(xiàn)板間高速通信。采用數(shù)據(jù)并行分布式訓練,完成圖片的訓練,工作頻率為154.54 MHz。由于多FPGA之間存在數(shù)據(jù)傳輸耗時,相較于單FPGA,2FPGA 和3FPGA 的加速比為1.99 和2.98。則:

圖6 多FPGA互聯(lián)實驗裝置

式(17)為某一層乘法器的個數(shù),式(18)為某一層加法器的個數(shù),其中:O為對應(yīng)層輸出大小;Cin為輸入通道;Cout為輸出通道。計算整體架構(gòu)包括BP 中的乘法器和加法器的總和近似得到整個訓練架構(gòu)的計算性能,并根據(jù)時鐘頻率得到整體性能。根據(jù)表2 的性能比對,單FPGA 選用16 位定點訓練得到的吞吐量是CPU的4.3 倍,是在Altera Stratix V 平臺下選用4 位定點數(shù)的3.25 倍,比在Xilinx KCU1500 平臺下,借助自適應(yīng)精度隨機梯度下降(Stochastic Gradient Descent,SGD),采用軟、硬件結(jié)合選用8 位定點位寬訓練性能低,其影響因素包括除采用性能較好的開發(fā)平臺外,選用了比16 位少一倍的位寬,但8 位定點位寬的吞吐量比3FPGA分布式并行訓練選用16 位定點位寬得到的吞吐量低,整體性能也相對較好,且16 位定點位寬訓練得到的正確率也會相對較高。

表2 性能對比

3.3 資源消耗

表3 為每個FPGA內(nèi)部整體未優(yōu)化和優(yōu)化過后的資源占用對比情況。優(yōu)化過后,以犧牲少量的ALM和DSP資源,減少了大量block memory存儲資源。

表3 資源消耗

4 結(jié) 語

本文設(shè)計了一種基于FPGA分布式神經(jīng)網(wǎng)絡(luò)訓練加速器,實現(xiàn)了基于多FPGA 訓練加速,完成資源優(yōu)化,提高整體性能。采用數(shù)據(jù)并行訓練,優(yōu)化實現(xiàn)多通道并行計算,內(nèi)部架構(gòu)采用層內(nèi)和層間細粒度流水線設(shè)計,縮短了訓練時長,提高了整體效率。反向訓練過程優(yōu)化量化位數(shù),在降低資源消耗的基礎(chǔ)上,提升整體訓練精度。優(yōu)化Ring-Allreduce數(shù)據(jù)傳輸方案,提高了數(shù)據(jù)傳輸速率,實現(xiàn)了2FPGA為1.99,3FPGA為2.98的加速比。

主站蜘蛛池模板: 亚洲福利片无码最新在线播放| 国产欧美日韩精品第二区| 男人天堂亚洲天堂| 国产原创自拍不卡第一页| 久热99这里只有精品视频6| 在线看片免费人成视久网下载 | AV无码一区二区三区四区| 2018日日摸夜夜添狠狠躁| 亚洲无线一二三四区男男| 中文字幕第4页| 久久久久久高潮白浆| 国产综合精品一区二区| 欧美三级不卡在线观看视频| 一级毛片免费的| 亚洲成人播放| 国产精品美女自慰喷水| 精品一区二区三区自慰喷水| 欧美a在线视频| 国产乱子伦精品视频| 国产视频大全| 91精品视频播放| 久久一本日韩精品中文字幕屁孩| 亚洲永久视频| 亚洲一区二区三区国产精品 | 国产午夜看片| 高清乱码精品福利在线视频| 亚洲福利一区二区三区| 国产在线观看人成激情视频| 视频国产精品丝袜第一页| 伊人国产无码高清视频| 91无码网站| 成人久久精品一区二区三区| 91久久大香线蕉| 欧美激情网址| 国产在线观看99| 欧美日韩一区二区三区四区在线观看 | 久久99热66这里只有精品一| 亚洲中文字幕97久久精品少妇| 中文字幕亚洲无线码一区女同| 思思热在线视频精品| 亚洲69视频| 精品综合久久久久久97| 69av在线| 日韩人妻无码制服丝袜视频| 国产人成乱码视频免费观看| 人妻中文久热无码丝袜| 国产麻豆福利av在线播放 | 国产xx在线观看| 2021亚洲精品不卡a| 日韩小视频在线观看| 国产精品尤物在线| 午夜限制老子影院888| 欧美在线精品一区二区三区| 免费日韩在线视频| 国产精品一区二区久久精品无码| 国产成人久视频免费| 四虎影视库国产精品一区| 欧美a级在线| 亚洲成在人线av品善网好看| 日本高清有码人妻| 国产精品片在线观看手机版| 少妇极品熟妇人妻专区视频| 中文国产成人精品久久| 亚洲国产第一区二区香蕉| 久青草国产高清在线视频| 久久综合九色综合97婷婷| 国产成人91精品| 国产女主播一区| 国产乱子伦一区二区=| 新SSS无码手机在线观看| 亚洲一区二区三区国产精华液| 国产91麻豆视频| 亚洲伊人久久精品影院| 成人精品区| 国产导航在线| 亚洲人成人无码www| 日韩欧美国产成人| 国产麻豆91网在线看| 青青极品在线| 亚洲成a人片在线观看88| 亚洲欧洲免费视频| 国产青青草视频|