[發(fā)明專(zhuān)利]一種基于FPGA的稀疏激活感知型神經(jīng)網(wǎng)絡(luò)加速器在審
| 申請(qǐng)?zhí)枺?/td> | 202011304282.6 | 申請(qǐng)日: | 2020-11-20 |
| 公開(kāi)(公告)號(hào): | CN112418396A | 公開(kāi)(公告)日: | 2021-02-26 |
| 發(fā)明(設(shè)計(jì))人: | 袁海英;曾智勇 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京工業(yè)大學(xué) |
| 主分類(lèi)號(hào): | G06N3/04 | 分類(lèi)號(hào): | G06N3/04;G06N3/063 |
| 代理公司: | 北京思海天達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 11203 | 代理人: | 劉萍 |
| 地址: | 100124 *** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 fpga 稀疏 激活 感知 神經(jīng)網(wǎng)絡(luò) 加速器 | ||
1.一種基于FPGA的稀疏激活感知型神經(jīng)網(wǎng)絡(luò)加速器,其特征在于,包括:讀命令發(fā)生器、數(shù)據(jù)分配器、Tm個(gè)運(yùn)算子通道、大小為T(mén)m×Tn的乘累加陣列、由Tn個(gè)加法樹(shù)組成的加法樹(shù)組、功能模塊和輸出緩存;
所述讀命令發(fā)生器用于向外部總線發(fā)送讀請(qǐng)求尋址片外存儲(chǔ)器存儲(chǔ)的激活和權(quán)重?cái)?shù)據(jù),其讀請(qǐng)求按照Tn個(gè)輸入通道的激活和權(quán)重為單位進(jìn)行,讀取順序?yàn)椋禾卣鲌D從寬度到高度再到輸入通道深度;權(quán)重從寬度到高度,隨后從輸入通道深度到輸出通道深度;
所述數(shù)據(jù)分配器,用于將片外存儲(chǔ)器讀入的數(shù)據(jù)以輸入通道為單位分配給運(yùn)算子通道,內(nèi)部維持1個(gè)輸入通道的計(jì)數(shù)器,在輸入通道為Chin的情況下,計(jì)數(shù)器的溢出值為ceil(Chin/Tn)-ceil(ceil(Chin/Tn)/Tm),跨步為ceil(ceil(Chin/Tn)/Tm),計(jì)數(shù)條件為上一個(gè)輸入通道尋址完畢,此處ceil()表示向上取整,“/”為除法,Tm和Tn為乘累加陣列的高度和寬度;只要沒(méi)溢出,每次計(jì)數(shù)條件的觸發(fā)都引起下一個(gè)運(yùn)算子通道的數(shù)據(jù)分配,一旦溢出,重新分配給第一個(gè)運(yùn)算子通道;沒(méi)有獲得數(shù)據(jù)的運(yùn)算子通道及其后續(xù)模塊被門(mén)控時(shí)鐘所關(guān)閉;
所述運(yùn)算子通道包含片上激活和權(quán)重緩存、地址發(fā)生器、應(yīng)答器、稀疏感知器和非0緩存,它接收到的數(shù)據(jù)首先存儲(chǔ)在權(quán)重和激活的片上緩存內(nèi),片上緩存由FPGA中的block ram構(gòu)成,激活地址發(fā)生器產(chǎn)生運(yùn)算所需激活的地址,經(jīng)過(guò)應(yīng)答器應(yīng)答確認(rèn)數(shù)據(jù)已讀入后,從激活緩存輸出Tn個(gè)激活,數(shù)據(jù)進(jìn)入稀疏感知器,稀疏感知器輸出非0激活和偏移值并送入非0緩存中,非0緩存輸出的偏移值進(jìn)入權(quán)重地址發(fā)生器中,使用來(lái)自稀疏感知器的偏移加上其當(dāng)前運(yùn)行狀態(tài)位到具體的權(quán)重地址,該地址索引到Tn個(gè)權(quán)重,權(quán)重和非0激活送入到后面的乘累加陣列;
所述乘累加陣列接收運(yùn)算子通道送過(guò)來(lái)的數(shù)據(jù),包含Tm×Tn個(gè)乘累加器(MAC)所組成的運(yùn)算矩陣用以運(yùn)算卷積中的乘累加,每一個(gè)MAC用FPGA中的DSP資源構(gòu)成,每一行MAC都接收到同樣的運(yùn)算子通道輸送的數(shù)據(jù),輸出為部分和,并送入后面的加法樹(shù)組;
所述由Tn個(gè)加法樹(shù)組成的加法樹(shù)組中的每一個(gè)加法樹(shù)輸入端為乘累加陣列的每一列MAC的輸出,以將其部分和相加得到完整的Tn個(gè)輸出激活。
2.根據(jù)權(quán)利要求1所述基于FPGA的稀疏激活感知型神經(jīng)網(wǎng)絡(luò)加速器,其特征在于,所述讀命令發(fā)生器尋址內(nèi)部維持兩個(gè)輸入通道計(jì)數(shù)器,計(jì)數(shù)器A和計(jì)數(shù)器B,在輸入通道為Chin的情況下,計(jì)數(shù)器A的溢出值為ceil(Chin/Tn)-ceil(ceil(Chin/Tn)/Tm),跨步為ceil(ceil(Chin/Tn)/Tm),計(jì)數(shù)條件為上一個(gè)輸入通道尋址完畢,計(jì)數(shù)器B的溢出值為ceil(ceil(Chin/Tn)/Tm)-1,跨步為1,計(jì)數(shù)條件為計(jì)數(shù)器A溢出,此處ceil()表示向上取整,“/”為除法,Tm和Tn為乘累加陣列的高度和寬度;所尋址的輸入通道為計(jì)數(shù)器A和計(jì)數(shù)器B的值之和。
3.根據(jù)權(quán)利要求1所述基于FPGA的稀疏激活感知型神經(jīng)網(wǎng)絡(luò)加速器,其特征在于,所述稀疏感知器輸入的Tn個(gè)激活值被暫存在該模塊內(nèi)部寄存器中,同時(shí)生成一個(gè)掩膜表,本質(zhì)為T(mén)n位的寄存器,如果激活值為0該表對(duì)應(yīng)位就為0,否則為1;非0指針的生成依賴(lài)Tn級(jí)數(shù)據(jù)選擇器,第n級(jí)的數(shù)據(jù)選擇器的輸入端為n+1級(jí)數(shù)據(jù)選擇器的輸出端和指針寄存器輸出的值加n,其控制端為掩膜判斷邏輯,該邏輯判斷輸入的指針對(duì)應(yīng)位的掩膜值是否為1;第1級(jí)數(shù)據(jù)選擇器輸出的非0指針的值作為偏移值輸出,指針指向當(dāng)前要輸出的非0激活,每個(gè)時(shí)鐘周期都輸出非0激活及其對(duì)應(yīng)的偏移值。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京工業(yè)大學(xué),未經(jīng)北京工業(yè)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011304282.6/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)





