[發(fā)明專利]基于SIMD技術(shù)的卷積神經(jīng)網(wǎng)絡(luò)加速裝置及方法在審
| 申請(qǐng)?zhí)枺?/td> | 202011015325.9 | 申請(qǐng)日: | 2020-09-24 |
| 公開(kāi)(公告)號(hào): | CN112418417A | 公開(kāi)(公告)日: | 2021-02-26 |
| 發(fā)明(設(shè)計(jì))人: | 楊林;蔣文婷;王浩楓;劉洪宇;李易聰 | 申請(qǐng)(專利權(quán))人: | 北京計(jì)算機(jī)技術(shù)及應(yīng)用研究所 |
| 主分類號(hào): | G06N3/063 | 分類號(hào): | G06N3/063;G06N3/04;G06F9/38;G06F13/28 |
| 代理公司: | 中國(guó)兵器工業(yè)集團(tuán)公司專利中心 11011 | 代理人: | 王雪芬 |
| 地址: | 100854*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 simd 技術(shù) 卷積 神經(jīng)網(wǎng)絡(luò) 加速 裝置 方法 | ||
1.一種基于SIMD技術(shù)的卷積神經(jīng)網(wǎng)絡(luò)加速裝置及方法,其特征在于,包括卷積陣列、可編程向量處理單元、數(shù)據(jù)緩沖區(qū)、權(quán)重緩沖區(qū)、任務(wù)分發(fā)單元、卷積控制器以及外部存儲(chǔ)器;
其中,所述卷積陣列負(fù)責(zé)根據(jù)卷積控制器的硬件微操作指令,實(shí)現(xiàn)卷積運(yùn)算加速,同時(shí)兼顧批量規(guī)范化BN和ReLU激活功能;
可編程向量處理單元用于通過(guò)編程,處理當(dāng)前神經(jīng)網(wǎng)絡(luò)算法中的多種操作;
卷積控制器是所述卷積陣列的控制機(jī)構(gòu),負(fù)責(zé)將一個(gè)完整的圖像卷積運(yùn)算,自動(dòng)分解為硬件微操作指令,從而控制卷積陣列實(shí)現(xiàn)卷積運(yùn)算加速;
數(shù)據(jù)緩沖區(qū)用于存儲(chǔ)神經(jīng)網(wǎng)絡(luò)特征圖、卷積陣列的卷積結(jié)果和可編程向量處理單元的運(yùn)算結(jié)果參數(shù);
權(quán)重緩沖區(qū)用于存儲(chǔ)卷積權(quán)重和其他參數(shù);
任務(wù)分發(fā)單元用于從外部存儲(chǔ)器中讀取神經(jīng)網(wǎng)絡(luò)算法的可執(zhí)行代碼,并根據(jù)當(dāng)前算子類型調(diào)用卷積控制器或可編程向量處理單元實(shí)現(xiàn)運(yùn)算;
若當(dāng)前算子為卷積,則任務(wù)分發(fā)模塊將該可執(zhí)行代碼中的卷積的相關(guān)信息發(fā)送給卷積控制器,使得卷積陣列根據(jù)卷積控制器的硬件微操作指令,實(shí)現(xiàn)卷積運(yùn)算加速;卷積的相關(guān)信息包括神經(jīng)網(wǎng)絡(luò)特征圖大小、濾波器大小、通道數(shù)、神經(jīng)網(wǎng)絡(luò)特征圖和卷積權(quán)重的內(nèi)存地址;
若當(dāng)前算子為pooling計(jì)算,任務(wù)分發(fā)單元將pooling任務(wù)的可執(zhí)行代碼傳送至可編程向量處理單元進(jìn)行處理;若當(dāng)前算子為eltwise計(jì)算,則任務(wù)分發(fā)單元將eltwise任務(wù)的可執(zhí)行代碼傳送至可編程向量處理單元進(jìn)行處理。
外部存儲(chǔ)器用于神經(jīng)網(wǎng)絡(luò)算法的可執(zhí)行代碼。
2.如權(quán)利要求1所述的裝置,其特征在于,所述卷積陣列包括若干個(gè)SIMD乘累加器、若干個(gè)橫向求和單元、一個(gè)BN單元、一個(gè)ReLU單元、一個(gè)數(shù)據(jù)廣播單元,若為3x3卷積運(yùn)算,卷積陣列具體用于根據(jù)卷積控制器的硬件微操作指令,首先通過(guò)異步DMA將外部存儲(chǔ)器中的神經(jīng)網(wǎng)絡(luò)特征圖和卷積權(quán)重分別加載到數(shù)據(jù)緩沖區(qū)和權(quán)重緩沖區(qū);然后從數(shù)據(jù)緩沖區(qū),按照直接卷積方式,讀取m個(gè)通道的神經(jīng)網(wǎng)絡(luò)特征圖,神經(jīng)網(wǎng)絡(luò)特征圖經(jīng)過(guò)數(shù)據(jù)廣播單元,復(fù)制成n份,同時(shí)從權(quán)重緩沖區(qū)讀取相應(yīng)的權(quán)重?cái)?shù)據(jù),進(jìn)行乘累加運(yùn)算,每9次乘累加即完成一個(gè)二維3*3卷積,若設(shè)該層網(wǎng)絡(luò)輸入M個(gè)通道,輸出N個(gè)通道,則M/m*9次乘累加結(jié)果在橫向求和單元進(jìn)行橫向求和,合并為一個(gè)通道的輸出,再經(jīng)過(guò)BN單元和ReLU單元,完成一個(gè)點(diǎn)位置的三維卷積,卷積結(jié)果寫回?cái)?shù)據(jù)緩沖區(qū),再經(jīng)由異步DMA寫回外部存儲(chǔ)器,卷積陣列可同時(shí)輸出n個(gè)通道的三維卷積結(jié)果,以上過(guò)程重復(fù)N/n次,則完成一個(gè)點(diǎn)位置的全部N個(gè)通道卷積計(jì)算,對(duì)特征圖的全部位置執(zhí)行以上流程,完成一個(gè)卷積層的計(jì)算。
3.如權(quán)利要求1所述的裝置,其特征在于,若當(dāng)前算子為pooling計(jì)算,可編程向量單元具體用于根據(jù)來(lái)自任務(wù)分發(fā)單元的代碼指令,依次讀取m個(gè)通道,k*k個(gè)點(diǎn)位的特征圖,進(jìn)行取max運(yùn)算,結(jié)果輸出至數(shù)據(jù)緩沖區(qū),待全部點(diǎn)位的pool運(yùn)算結(jié)束后,再通過(guò)異步DMA搬運(yùn)至外部存儲(chǔ)器。
4.如權(quán)利要求1所述的裝置,其特征在于,若當(dāng)前算子為eltwise計(jì)算,則可編程向量單元具體用于根據(jù)代碼指令,讀取m個(gè)通道,1個(gè)點(diǎn)位的特征圖,進(jìn)行相加運(yùn)算,結(jié)果輸出至數(shù)據(jù)緩沖區(qū),待全部點(diǎn)位的eltwise運(yùn)算結(jié)束后,再通過(guò)異步DMA搬運(yùn)至外部存儲(chǔ)器。
5.如權(quán)利要求1所述的裝置,其特征在于,所述可編程向量處理單元是一個(gè)SIMD處理器。
6.如權(quán)利要求1所述的裝置,其特征在于,所述外部存儲(chǔ)器為高速DRAM存儲(chǔ)器。
7.如權(quán)利要求1所述的裝置,其特征在于,所述外部存儲(chǔ)器為DDR。
8.如權(quán)利要求1所述的裝置,其特征在于,所述可編程向量處理單元可通過(guò)編程,支持當(dāng)前神經(jīng)網(wǎng)絡(luò)算法中的操作包括channel shuffle,pool,eltwise。
9.一種利用權(quán)利要求1至9中任一項(xiàng)所述的裝置實(shí)現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)加速方法,其特征在于,包括以下步驟:
步驟一、任務(wù)獲取:任務(wù)分發(fā)單元從外部存儲(chǔ)器中讀取神經(jīng)網(wǎng)絡(luò)算法的可執(zhí)行代碼,并根據(jù)當(dāng)前算子類型調(diào)用相應(yīng)的處理模塊進(jìn)行運(yùn)算;
步驟二、卷積計(jì)算:若當(dāng)前算子為卷積,則任務(wù)分發(fā)模塊將該卷積的相關(guān)信息發(fā)送給卷積控制器,卷積控制器根據(jù)這些信息,自動(dòng)生成完整卷積運(yùn)算所需要的硬件微操作指令,若為3x3卷積運(yùn)算,卷積陣列根據(jù)卷積控制器的硬件微操作指令,首先通過(guò)異步DMA將外部存儲(chǔ)器中的神經(jīng)網(wǎng)絡(luò)特征圖和卷積權(quán)重分別加載到數(shù)據(jù)緩沖區(qū)和權(quán)重緩沖區(qū);然后從數(shù)據(jù)緩沖區(qū),按照直接卷積方式,讀取m個(gè)通道的神經(jīng)網(wǎng)絡(luò)特征圖,神經(jīng)網(wǎng)絡(luò)特征圖經(jīng)過(guò)數(shù)據(jù)廣播單元,復(fù)制成n份,同時(shí)從權(quán)重緩沖區(qū)讀取相應(yīng)的權(quán)重?cái)?shù)據(jù),進(jìn)行乘累加運(yùn)算,每9次乘累加即完成一個(gè)二維3*3卷積,若設(shè)該層網(wǎng)絡(luò)輸入M個(gè)通道,輸出N個(gè)通道,則M/m*9次乘累加結(jié)果在橫向求和單元進(jìn)行橫向求和,合并為一個(gè)通道的輸出,再經(jīng)過(guò)BN和ReLU單元,完成一個(gè)點(diǎn)位置的三維卷積,卷積結(jié)果寫回?cái)?shù)據(jù)緩沖區(qū),再經(jīng)由異步DMA寫回外部存儲(chǔ)器。卷積陣列可同時(shí)輸出n個(gè)通道的三維卷積結(jié)果,以上過(guò)程重復(fù)N/n次,則完成一個(gè)點(diǎn)位置的全部N個(gè)通道卷積計(jì)算,對(duì)特征圖的全部位置執(zhí)行以上流程,完成一個(gè)卷積層的計(jì)算;
Pooling計(jì)算:若當(dāng)前算子為pooling計(jì)算,任務(wù)分發(fā)單元將pooling任務(wù)的可執(zhí)行代碼傳送至可編程向量處理單元,可編程向量單元根據(jù)代碼指令,依次讀取m個(gè)通道,k*k個(gè)點(diǎn)位的特征圖,進(jìn)行取max運(yùn)算,結(jié)果輸出至數(shù)據(jù)緩沖區(qū),待全部點(diǎn)位的pool運(yùn)算結(jié)束后,再通過(guò)異步DMA搬運(yùn)至外部存儲(chǔ)器;
Eltwise計(jì)算:若當(dāng)前算子為Eltwise計(jì)算,Eltwise計(jì)算由可編程向量處理單元完成。任務(wù)分發(fā)單元將Eltwise任務(wù)的可執(zhí)行代碼傳送至可編程向量處理單元,可編程向量處理單元根據(jù)代碼指令,讀取m個(gè)通道,1個(gè)點(diǎn)位的特征圖,進(jìn)行相加運(yùn)算,結(jié)果輸出至數(shù)據(jù)緩沖區(qū),待全部點(diǎn)位的eltwise運(yùn)算結(jié)束后,再通過(guò)異步DMA搬運(yùn)至外部存儲(chǔ)器。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京計(jì)算機(jī)技術(shù)及應(yīng)用研究所,未經(jīng)北京計(jì)算機(jī)技術(shù)及應(yīng)用研究所許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011015325.9/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 具有級(jí)聯(lián)SIMD結(jié)構(gòu)的數(shù)字信號(hào)處理器
- 信息處理裝置以及機(jī)器語(yǔ)言程序變換裝置
- 處理器中的有效并行浮點(diǎn)異常處理
- 在單指令多數(shù)據(jù)多核處理器架構(gòu)上轉(zhuǎn)置矩陣的方法和系統(tǒng)
- 具有單指令多數(shù)據(jù)處理電路的數(shù)據(jù)處理裝置
- 用于單指令多數(shù)據(jù)處理器的高效硬件指令
- 用于改進(jìn)SIMD KNN實(shí)現(xiàn)的設(shè)備、方法、系統(tǒng)和機(jī)器可讀介質(zhì)
- 用于單指令多數(shù)據(jù)處理器的高效硬件指令
- 單指令多數(shù)據(jù)處理器與相關(guān)方法
- 一種應(yīng)用于處理器的寄存器控制SIMD指令擴(kuò)展方法
- 防止技術(shù)開(kāi)啟的鎖具新技術(shù)
- 技術(shù)評(píng)價(jià)裝置、技術(shù)評(píng)價(jià)程序、技術(shù)評(píng)價(jià)方法
- 防止技術(shù)開(kāi)啟的鎖具新技術(shù)
- 視聽(tīng)模擬技術(shù)(VAS技術(shù))
- 用于技術(shù)縮放的MRAM集成技術(shù)
- 用于監(jiān)測(cè)技術(shù)設(shè)備的方法和用戶接口、以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 用于監(jiān)測(cè)技術(shù)設(shè)備的技術(shù)
- 技術(shù)偵查方法及技術(shù)偵查系統(tǒng)
- 使用投影技術(shù)增強(qiáng)睡眠技術(shù)
- 基于技術(shù)庫(kù)的技術(shù)推薦方法
- 卷積運(yùn)算處理方法及相關(guān)產(chǎn)品
- 一種卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算方法及系統(tǒng)
- 卷積運(yùn)算方法及系統(tǒng)
- 卷積運(yùn)算方法、裝置及系統(tǒng)
- 深度神經(jīng)網(wǎng)絡(luò)裁剪方法、裝置及電子設(shè)備
- 基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法和圖像處理裝置
- 卷積神經(jīng)網(wǎng)絡(luò)及基于卷積神經(jīng)網(wǎng)絡(luò)的圖像處理方法
- 一種圖像處理方法、裝置以及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于卷積神經(jīng)網(wǎng)絡(luò)的卷積運(yùn)算裝置
- 基于FPGA實(shí)現(xiàn)圖像識(shí)別的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





