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