深度學(xué)習(xí)算法的FPGA硬件加速研究與實(shí)現(xiàn)
發(fā)布時(shí)間:2020-07-23 14:05
【摘要】:近年來(lái),人工智能在理論和應(yīng)用上都取得了巨大成功,深度學(xué)習(xí)作為人工智能最重要的研究方向,可以解決更加抽象復(fù)雜的問(wèn)題。然而,由于問(wèn)題變得更加抽象和復(fù)雜,深度學(xué)習(xí)網(wǎng)絡(luò)的規(guī)模也在逐漸增加,模型的學(xué)習(xí)時(shí)間也隨之劇增。所以對(duì)深度學(xué)習(xí)算法加速技術(shù)的研究成為大勢(shì)所趨。相比于中央處理器(Central Processing Unit,CPU)、圖形處理器(Graphics Processing Unit,GPU)和專(zhuān)用集成電路(Application Specific Integrated Circuit,ASIC),現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,FPGA)在深度學(xué)習(xí)算法加速上具有高速度、低功耗、穩(wěn)定而又延遲極低、適用于流式的計(jì)算密集型任務(wù)和通信密集型任務(wù)、靈活而開(kāi)發(fā)周期短、成本低、便于攜帶等優(yōu)勢(shì)。目前,對(duì)深度學(xué)習(xí)算法的FPGA實(shí)現(xiàn)的具體架構(gòu)的研究并不多,對(duì)訓(xùn)練過(guò)程的FPGA加速設(shè)計(jì)研究也較少。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)算法是最常見(jiàn)最重要的深度學(xué)習(xí)算法之一,它在語(yǔ)音和圖像識(shí)別等常見(jiàn)應(yīng)用中取得了突破性成就,因此本文主要基于CNN,從算法基本原理,優(yōu)化模型并仿真建模,通用硬件架構(gòu)設(shè)計(jì)和FPGA實(shí)現(xiàn)四個(gè)方面對(duì)深度學(xué)習(xí)算法的FPGA加速進(jìn)行研究與實(shí)現(xiàn)。首先,本文介紹了深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)算法和CNN算法等深度學(xué)習(xí)理論。并對(duì)模型基本參數(shù)的優(yōu)化選擇和正則化、棄權(quán)技術(shù)等其他優(yōu)化方法進(jìn)行了研究,提出了一個(gè)具體的Lenet CNN模型,該模型在小規(guī)模的簡(jiǎn)化模型前提下,擁有良好的性能,準(zhǔn)確率可達(dá)96.64%。然后,本文研究了CNN前向預(yù)測(cè)過(guò)程及后向訓(xùn)練過(guò)程的通用硬件架構(gòu),提出了基于移位寄存器的串矩轉(zhuǎn)換結(jié)構(gòu)和基于脈動(dòng)陣列(Systolic Array,SA)的卷積層和池化層的主要運(yùn)算單元的硬件架構(gòu)。該架構(gòu)具有模塊化和可擴(kuò)展性,可搭建任意規(guī)模的CNN模型,并且提高了頻率和計(jì)算吞吐量,減小了I/O帶寬需求。同時(shí)綜合考慮計(jì)算時(shí)間及資源消耗后,提出了分段擬合逼近的Softmax層硬件設(shè)計(jì)框架。最后,基于硬件實(shí)現(xiàn)架構(gòu),分別對(duì)Lenet CNN的預(yù)測(cè)和訓(xùn)練過(guò)程進(jìn)行FPGA實(shí)現(xiàn)和系統(tǒng)性能分析驗(yàn)證。首先對(duì)預(yù)測(cè)和訓(xùn)練過(guò)程進(jìn)行Matlab定點(diǎn)仿真驗(yàn)證,然后搭建系統(tǒng)模塊,并在Modelsim中進(jìn)行功能仿真驗(yàn)證,隨后分別在XC7K325T-2FFG900和XC7VX690T-2FFG1157上進(jìn)行FPGA實(shí)現(xiàn)。最后分析對(duì)比了FPGA實(shí)現(xiàn)系統(tǒng)與CPU和GPU等在速度和功耗上的性能,在速度上FPGA比CPU有了3倍左右的提高,在功率上CPU和GPU是FPGA的100倍以上。
【學(xué)位授予單位】:電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2019
【分類(lèi)號(hào)】:TP18;TN791
【圖文】:
圖 5-6 CONV_PE 模塊的仿真結(jié)果圖由圖下方可以看出,該模塊的輸入 din 為 28×28=784 個(gè)連續(xù)的圖像特征數(shù)據(jù),輸入 din_w 為與 din 輸入對(duì)齊的權(quán)值數(shù)據(jù),輸出由 24 個(gè)連續(xù)的有效數(shù)據(jù)段構(gòu)成,每段有效數(shù)據(jù)包含 24 個(gè)有效數(shù)據(jù),因此輸出為輸出為 24×24 的有效數(shù)據(jù)。每段有效數(shù)據(jù)之間間隔 4 個(gè) clk,該間隔為卷積核大小減一。圖上方為圖下方圈住部分放大圖,可以看到與圖 5-7 給出的 Matlab 定點(diǎn)仿真部分參數(shù)圖中所得到的數(shù)據(jù)一致,經(jīng)驗(yàn)證 Modelsim 仿真結(jié)果與 Matlab 定點(diǎn)仿真的結(jié)果完全一致,說(shuō)明該模塊功能正確。
出 了 Lenet 卷 積 神 經(jīng) 網(wǎng) 絡(luò) 中 池化 層 MAXPOOLING1 的 其 中POOLING_PE 模塊的仿真結(jié)果。圖 5-8 MAXPOOLING_PE 模塊的仿真結(jié)果圖圖下方可以看出,該模塊的輸入為 24×24=567 個(gè)間斷有效的數(shù)據(jù),了 fifo,使其變?yōu)榱诉B續(xù)的 12×12=144 個(gè)有效數(shù)據(jù)。圖上方為圖下大圖,可以看到與圖 5-9 給出的 Matlab 定點(diǎn)仿真部分參數(shù)圖中所得,經(jīng)驗(yàn)證 Modelsim 仿真結(jié)果與 Matlab 定點(diǎn)仿真的結(jié)果完全一致,說(shuō)正確。
圖 5-13 KC705 開(kāi)發(fā)板 5-14 為 Xilinx 官方給出的 XC7K325T 的資源情況,用 XC7K325T 來(lái)網(wǎng)絡(luò),其價(jià)格便宜,有足夠的邏輯資源以及 BRAM 且外掛 DDR3 Gen3 和 10 Gigabit Ethernet 等主流標(biāo)準(zhǔn),但需要注意的是它只有 且規(guī)格為 25×18,一定程度上限制了網(wǎng)絡(luò)模型的大小。總言之,這款性?xún)r(jià)比非常之高,是深度學(xué)習(xí)硬件實(shí)現(xiàn)的理想選擇。
本文編號(hào):2767422
【學(xué)位授予單位】:電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2019
【分類(lèi)號(hào)】:TP18;TN791
【圖文】:
圖 5-6 CONV_PE 模塊的仿真結(jié)果圖由圖下方可以看出,該模塊的輸入 din 為 28×28=784 個(gè)連續(xù)的圖像特征數(shù)據(jù),輸入 din_w 為與 din 輸入對(duì)齊的權(quán)值數(shù)據(jù),輸出由 24 個(gè)連續(xù)的有效數(shù)據(jù)段構(gòu)成,每段有效數(shù)據(jù)包含 24 個(gè)有效數(shù)據(jù),因此輸出為輸出為 24×24 的有效數(shù)據(jù)。每段有效數(shù)據(jù)之間間隔 4 個(gè) clk,該間隔為卷積核大小減一。圖上方為圖下方圈住部分放大圖,可以看到與圖 5-7 給出的 Matlab 定點(diǎn)仿真部分參數(shù)圖中所得到的數(shù)據(jù)一致,經(jīng)驗(yàn)證 Modelsim 仿真結(jié)果與 Matlab 定點(diǎn)仿真的結(jié)果完全一致,說(shuō)明該模塊功能正確。
出 了 Lenet 卷 積 神 經(jīng) 網(wǎng) 絡(luò) 中 池化 層 MAXPOOLING1 的 其 中POOLING_PE 模塊的仿真結(jié)果。圖 5-8 MAXPOOLING_PE 模塊的仿真結(jié)果圖圖下方可以看出,該模塊的輸入為 24×24=567 個(gè)間斷有效的數(shù)據(jù),了 fifo,使其變?yōu)榱诉B續(xù)的 12×12=144 個(gè)有效數(shù)據(jù)。圖上方為圖下大圖,可以看到與圖 5-9 給出的 Matlab 定點(diǎn)仿真部分參數(shù)圖中所得,經(jīng)驗(yàn)證 Modelsim 仿真結(jié)果與 Matlab 定點(diǎn)仿真的結(jié)果完全一致,說(shuō)正確。
圖 5-13 KC705 開(kāi)發(fā)板 5-14 為 Xilinx 官方給出的 XC7K325T 的資源情況,用 XC7K325T 來(lái)網(wǎng)絡(luò),其價(jià)格便宜,有足夠的邏輯資源以及 BRAM 且外掛 DDR3 Gen3 和 10 Gigabit Ethernet 等主流標(biāo)準(zhǔn),但需要注意的是它只有 且規(guī)格為 25×18,一定程度上限制了網(wǎng)絡(luò)模型的大小。總言之,這款性?xún)r(jià)比非常之高,是深度學(xué)習(xí)硬件實(shí)現(xiàn)的理想選擇。
【參考文獻(xiàn)】
相關(guān)期刊論文 前3條
1 尹寶才;王文通;王立春;;深度學(xué)習(xí)研究綜述[J];北京工業(yè)大學(xué)學(xué)報(bào);2015年01期
2 余凱;賈磊;陳雨強(qiáng);徐偉;;深度學(xué)習(xí)的昨天、今天和明天[J];計(jì)算機(jī)研究與發(fā)展;2013年09期
3 孫志軍;薛磊;許陽(yáng)明;王正;;深度學(xué)習(xí)研究綜述[J];計(jì)算機(jī)應(yīng)用研究;2012年08期
相關(guān)碩士學(xué)位論文 前1條
1 余奇;基于FPGA的深度學(xué)習(xí)加速器設(shè)計(jì)與實(shí)現(xiàn)[D];中國(guó)科學(xué)技術(shù)大學(xué);2016年
本文編號(hào):2767422
本文鏈接:http://sikaile.net/kejilunwen/dianzigongchenglunwen/2767422.html
最近更新
教材專(zhuān)著