[發(fā)明專利]一種基于OPU的CNN加速方法及系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201910192502.1 | 申請(qǐng)日: | 2019-03-14 |
| 公開(公告)號(hào): | CN110058883B | 公開(公告)日: | 2023-06-16 |
| 發(fā)明(設(shè)計(jì))人: | 喻韻璇;王銘宇 | 申請(qǐng)(專利權(quán))人: | 梁磊 |
| 主分類號(hào): | G06F9/30 | 分類號(hào): | G06F9/30;G06F8/41;G06N3/0464 |
| 代理公司: | 成都正煜知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 51312 | 代理人: | 李龍 |
| 地址: | 225000 江蘇省揚(yáng)州市維*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 opu cnn 加速 方法 系統(tǒng) | ||
本發(fā)明公開了一種基于OPU的CNN加速方法及系統(tǒng),涉及基于FPGA的CNN加速方法領(lǐng)域;方法包括定義OPU指令集;編譯器將不同目標(biāo)網(wǎng)絡(luò)的CNN定義文件進(jìn)行轉(zhuǎn)換,并根據(jù)定義的OPU指令集選擇最優(yōu)加速器配置映射,生成不同目標(biāo)網(wǎng)絡(luò)的指令完成映射;OPU讀取上述編譯后的指令,按照OPU指令集定義的并行計(jì)算模式運(yùn)行指令,完成不同目標(biāo)網(wǎng)絡(luò)的加速;本發(fā)明通過定義指令類型和設(shè)置指令顆粒度、進(jìn)行網(wǎng)絡(luò)重組優(yōu)化、搜索解空間獲得保證最大吞吐量的映射方式、硬件采取并行計(jì)算模式,解決現(xiàn)有的FPGA加速工作旨在為不同的CNN生成特定的單獨(dú)加速器的問題,達(dá)到了不重構(gòu)FPGA加速器,通過指令快速實(shí)現(xiàn)不同網(wǎng)絡(luò)配置的加速的效果。
技術(shù)領(lǐng)域
本發(fā)明涉及基于FPGA的CNN加速方法領(lǐng)域,尤其是一種基于OPU的CNN加速方法及系統(tǒng)。
背景技術(shù)
深度卷積神經(jīng)網(wǎng)絡(luò)(CNNs)在各種應(yīng)用中表現(xiàn)出很高的準(zhǔn)確性,如視覺對(duì)象識(shí)別,語(yǔ)音識(shí)別和物體檢測(cè)等。然而,它在準(zhǔn)確性上的突破在于高計(jì)算成本的代價(jià),需要通過計(jì)算集群,GPU和FPGA來推動(dòng)加速。其中,F(xiàn)PGA加速器具有能量效率高,靈活性好,計(jì)算能力強(qiáng)等優(yōu)點(diǎn),特別是在智能手機(jī)上的語(yǔ)音識(shí)別和視覺對(duì)象識(shí)別等邊緣設(shè)備上的CNN深度應(yīng)用中脫穎而出;其通常涉及架構(gòu)探索和優(yōu)化,RTL編程,硬件實(shí)現(xiàn)和軟件-硬件接口開發(fā),隨著發(fā)展人們對(duì)FPGA?CNN(卷積神經(jīng)網(wǎng)絡(luò))加速的自動(dòng)編譯器進(jìn)行了深入的研究,其可配置平臺(tái)提供豐富的并行計(jì)算資源和高能效,使其成為邊緣計(jì)算和數(shù)據(jù)中心CNN加速的理想選擇。但隨著DNN(深度神經(jīng)網(wǎng)絡(luò))算法在各種更復(fù)雜的計(jì)算機(jī)視覺任務(wù)中的發(fā)展,如人臉識(shí)別,車牌識(shí)別,姿態(tài)識(shí)別等,多種DNN的級(jí)聯(lián)結(jié)構(gòu)被廣泛應(yīng)用以獲得更好的性能,這些新的應(yīng)用場(chǎng)景要求不同網(wǎng)絡(luò)的順序執(zhí)行,因此需要不斷重新配置FPGA器件,帶來耗時(shí)長(zhǎng)的問題;另一方面,客戶網(wǎng)絡(luò)架構(gòu)中的每次新的更新都可以導(dǎo)致RTL代碼的再生和整個(gè)實(shí)現(xiàn)過程,耗時(shí)更長(zhǎng)。
近年來,能夠快速將CNN部署到FPGA的自動(dòng)加速器發(fā)生器成為另一個(gè)焦點(diǎn),現(xiàn)有技術(shù)中有研究者開發(fā)了Deep?weaver,它根據(jù)設(shè)計(jì)規(guī)劃者提供的資源分配和硬件組織將CNN算法映射到手工優(yōu)化設(shè)計(jì)模板;還有人提出了一個(gè)基于RTL模塊庫(kù)的編譯器,它由多個(gè)優(yōu)化的手工編碼Verilog模板組成,描述了不同類型層的計(jì)算和數(shù)據(jù)流;與定制設(shè)計(jì)的加速器相比,這兩項(xiàng)工作都獲得了可比的性能;還有研究者提供了一個(gè)基于HLS的編譯器,主要關(guān)注通過內(nèi)存訪問重組進(jìn)行的帶寬優(yōu)化;還有研究者提出了一種收縮陣列架構(gòu),以實(shí)現(xiàn)更高的FPGA運(yùn)行頻率。但是現(xiàn)有的FPGA加速工作旨在為不同的CNN生成特定的單獨(dú)加速器,這保證了基于RTL或基于HLS-RTL的模板的合理高性能,但在調(diào)整目標(biāo)網(wǎng)絡(luò)的情況下硬件升級(jí)復(fù)雜度高。因此,需要一種CNN部署到FPGA的通用方法,實(shí)現(xiàn)不需要對(duì)單獨(dú)網(wǎng)絡(luò)產(chǎn)生特定硬件描述代碼,不涉及對(duì)FPGA進(jìn)行重新燒錄,全部部署流程依靠指令配置完成。
發(fā)明內(nèi)容
本發(fā)明的目的在于:本發(fā)明提供了一種基于OPU的CNN加速方法及系統(tǒng),解決現(xiàn)有的FPGA加速工作旨在為不同的CNN生成特定的單獨(dú)加速器,目標(biāo)網(wǎng)絡(luò)改變時(shí)硬件升級(jí)復(fù)雜度高、通用性差的問題。
本發(fā)明采用的技術(shù)方案如下:
一種基于OPU的CNN加速方法,包括如下步驟:
定義OPU指令集;
編譯器將不同目標(biāo)網(wǎng)絡(luò)的CNN定義文件進(jìn)行轉(zhuǎn)換,并根據(jù)定義的OPU指令集選擇最優(yōu)加速器配置映射,生成不同目標(biāo)網(wǎng)絡(luò)的指令完成映射;
OPU根據(jù)讀取上述編譯后的指令,按照OPU指令集定義的并行計(jì)算模式運(yùn)行指令,完成不同目標(biāo)網(wǎng)絡(luò)的加速;
其中,所述OPU指令集包括直接執(zhí)行并為有條件指令提供配置參數(shù)的無條件指令和滿足觸發(fā)條件后執(zhí)行的有條件指令,定義的OPU指令集根據(jù)CNN網(wǎng)絡(luò)調(diào)研結(jié)果和加速需求對(duì)指令顆粒度進(jìn)行優(yōu)化設(shè)置;
所述轉(zhuǎn)換包括文件轉(zhuǎn)換、網(wǎng)絡(luò)的圖層重組和生成統(tǒng)一中間表示IR;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于梁磊,未經(jīng)梁磊許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910192502.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 圖像語(yǔ)義標(biāo)注的設(shè)備和方法及其模型的生成方法和系統(tǒng)
- 使用卷積神經(jīng)網(wǎng)絡(luò)的數(shù)字圖像處理
- 為數(shù)據(jù)庫(kù)確定卷積神經(jīng)網(wǎng)絡(luò)CNN模型的裝置和方法
- 確定卷積神經(jīng)網(wǎng)絡(luò)CNN模型的裝置和方法
- 采用嵌入式系統(tǒng)中的小規(guī)模卷積神經(jīng)網(wǎng)絡(luò)模塊的人臉檢測(cè)
- 針對(duì)深度通道和卷積神經(jīng)網(wǎng)絡(luò)圖像和格式使用相機(jī)設(shè)備的方法和系統(tǒng)
- 處理卷積神經(jīng)網(wǎng)絡(luò)的方法
- CNN加速器和電子設(shè)備
- 一種基于混合神經(jīng)網(wǎng)絡(luò)的腦電時(shí)空特征學(xué)習(xí)與情感分類方法
- 一種基于FPGA的深度學(xué)習(xí)加速方法





