日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)的制作方法

文檔序號:10697533閱讀:286來源:國知局
基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)的制作方法
【專利摘要】本發(fā)明提出一種基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),包括:輸入緩存模塊,輸入緩存模塊用于緩存從全局存儲器中搬運(yùn)到片上的輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)冪次權(quán)重,其中,神經(jīng)網(wǎng)絡(luò)冪次權(quán)重包括卷積核和全連接矩陣;計算模塊,計算模塊用于進(jìn)行基于冪次權(quán)重量化的卷積和全連接矩陣向量乘運(yùn)算;輸出緩存模塊,輸出緩存模塊用于緩存計算模塊得到的卷積或全連接矩陣向量乘的運(yùn)算結(jié)果;以及控制模塊,控制模塊用于對輸入緩存模塊、運(yùn)算模塊和輸出緩存模塊進(jìn)行數(shù)據(jù)搬運(yùn)和運(yùn)算資源調(diào)度。本發(fā)明在有效降低神經(jīng)網(wǎng)絡(luò)的存儲量的同時,可以有效地降低神經(jīng)網(wǎng)絡(luò)運(yùn)算開銷,能夠顯著提升了神經(jīng)網(wǎng)絡(luò)計算系統(tǒng)在終端設(shè)備上的應(yīng)用空間。
【專利說明】
基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及計算機(jī)及電子信息技術(shù)領(lǐng)域,特別設(shè)及一種基于幕次權(quán)重量化的神經(jīng) 網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)。
【背景技術(shù)】
[0002] 隨著深度神經(jīng)網(wǎng)絡(luò)規(guī)模(存儲量達(dá)到百M(fèi)B量級)和計算量(單次前向運(yùn)行達(dá) 10GF化0S量級)的不斷增大,現(xiàn)有的智能終端設(shè)備(如手機(jī))已無法支持大規(guī)模神經(jīng)網(wǎng)絡(luò)的 復(fù)雜應(yīng)用,因而如何有效降低深度神經(jīng)網(wǎng)絡(luò)應(yīng)用的存儲量和計算量變得十分重要。通過權(quán) 重量化的方式,或?qū)?quán)重轉(zhuǎn)化為定點(diǎn)數(shù),或建立量化權(quán)重碼本,可W有效壓縮模型,降低神 經(jīng)網(wǎng)絡(luò)的存儲量。因而,如何設(shè)計有效的量化方法,進(jìn)而針對該量化方法設(shè)計高效的硬件結(jié) 構(gòu),是一個非常關(guān)鍵的問題。
[0003] 定點(diǎn)數(shù)量化的方法,是一種線性的權(quán)重量化方法。該方法通過將浮點(diǎn)數(shù)轉(zhuǎn)換為定 點(diǎn)數(shù)的方式,在保證神經(jīng)網(wǎng)絡(luò)識別準(zhǔn)確率的前提下,可W-定程度減低神經(jīng)網(wǎng)絡(luò)權(quán)重的比 特數(shù),進(jìn)而降低神經(jīng)網(wǎng)絡(luò)的所需存儲量。然而,運(yùn)種方法壓縮比較為有限,一般僅能將32bit 浮點(diǎn)數(shù)壓縮到4bit-8bit定點(diǎn)數(shù);另外,配合定點(diǎn)數(shù)權(quán)重的量化方法,需要設(shè)計定點(diǎn)數(shù)乘法 器,其運(yùn)算開銷依然很高。
[0004] 目前的非線性權(quán)重量化方法,大多通過建立碼本的方法,在保證神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率 的情況下,可將32bit浮點(diǎn)數(shù)權(quán)重編碼為2bit-4bit的碼本。盡管運(yùn)種方法可通過降低編碼 長度的方法大幅降低存儲量,然而計算時需要將低比特數(shù)的編碼重新解碼為高比特數(shù)的浮 點(diǎn)數(shù),因此仍然需要采用浮點(diǎn)數(shù)乘法器,其運(yùn)算開銷依然很高;另外,配合低比特編碼解碼 為高比特浮點(diǎn)數(shù)的操作,需要額外設(shè)計解碼器。
[0005] 盡管目前的神經(jīng)網(wǎng)絡(luò)權(quán)重的量化方法,可W有效降低網(wǎng)絡(luò)權(quán)重的存儲量,然而在 降低神經(jīng)網(wǎng)絡(luò)的運(yùn)算開銷方面并沒有展現(xiàn)出較為可觀的優(yōu)勢,甚至解碼器的額外引入增加 了神經(jīng)網(wǎng)絡(luò)的運(yùn)算復(fù)雜度。

【發(fā)明內(nèi)容】

[0006] 本發(fā)明旨在至少在一定程度上解決上述相關(guān)技術(shù)中的技術(shù)問題之一。
[0007] 為此,本發(fā)明的目的在于提出一種基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié) 構(gòu),在有效降低神經(jīng)網(wǎng)絡(luò)的存儲量的同時,可W有效地降低神經(jīng)網(wǎng)絡(luò)運(yùn)算開銷,能夠顯著提 升了神經(jīng)網(wǎng)絡(luò)計算系統(tǒng)在終端設(shè)備上的應(yīng)用空間。
[000引為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提出了一種基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前 向運(yùn)算硬件結(jié)構(gòu),包括:輸入緩存模塊,所述輸入緩存模塊用于緩存從全局存儲器中搬運(yùn)到 片上的輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)幕次權(quán)重,其中,神經(jīng)網(wǎng)絡(luò)幕次權(quán)重包括卷積核和全連接矩陣; 計算模塊,所述計算模塊用于進(jìn)行基于幕次權(quán)重量化的卷積和全連接矩陣向量乘運(yùn)算;輸 出緩存模塊,所述輸出緩存模塊用于緩存所述計算模塊得到的卷積或全連接矩陣向量乘的 運(yùn)算結(jié)果;W及控制模塊,所述控制模塊用于對所述輸入緩存模塊、運(yùn)算模塊和輸出緩存模 塊進(jìn)行數(shù)據(jù)搬運(yùn)和運(yùn)算資源調(diào)度。
[0009] 根據(jù)本發(fā)明實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),在有效降 低神經(jīng)網(wǎng)絡(luò)的存儲量的同時,可W有效地降低神經(jīng)網(wǎng)絡(luò)運(yùn)算開銷。該硬件機(jī)構(gòu)采用基于位 移器的乘法運(yùn)算單元,可有效地減少計算資源開銷,簡化運(yùn)算過程,顯著提升了神經(jīng)網(wǎng)絡(luò)計 算系統(tǒng)在終端設(shè)備上的應(yīng)用空間。W8bit定點(diǎn)數(shù)乘法器為例,本發(fā)明可節(jié)省62%左右的存 儲單元,45%左右的運(yùn)算單元,顯著提升了神經(jīng)網(wǎng)絡(luò)計算系統(tǒng)在終端設(shè)備上的應(yīng)用空間。
[0010] 另外,根據(jù)本發(fā)明上述實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu) 還可W具有如下附加的技術(shù)特征:
[0011] 在一些示例中,所述輸入緩存模塊包括:輸入數(shù)據(jù)緩存單元,所述輸入數(shù)據(jù)緩存單 元用于存儲所述輸入數(shù)據(jù);幕次權(quán)重緩存單元,所述幕次權(quán)重緩存單元用于存儲所述幕次 權(quán)重。
[0012] 在一些示例中,所述輸入數(shù)據(jù)緩存單元用于按照一般浮點(diǎn)數(shù)、定點(diǎn)數(shù)或動態(tài)范圍 定點(diǎn)數(shù)的方式對所述輸入數(shù)據(jù)進(jìn)行存儲。
[0013] 在一些示例中,所述幕次權(quán)重緩存單元用于按照預(yù)設(shè)的幕次編碼方式對所述神經(jīng) 網(wǎng)絡(luò)幕次權(quán)重進(jìn)行存儲。
[0014] 在一些示例中,所述計算模塊包括:乘法單元,所述乘法單元用于進(jìn)行單個輸入數(shù) 據(jù)和單個神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的乘法運(yùn)算,W得到卷積或全連接矩陣向量乘的中間結(jié)果;加 法單元,所述加法單元用于將所述中間結(jié)果進(jìn)行累加運(yùn)算,W得到卷積或全連接矩陣向量 乘的運(yùn)算結(jié)果;控制接口,所述控制接口用于接收所述控制模塊發(fā)送的指令;數(shù)據(jù)接口,所 述數(shù)據(jù)接口用于存取所述輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)幕次權(quán)重;寄存器堆,所述寄存器堆用于存 儲所述中間結(jié)果。
[0015] 在一些示例中,其中,所述乘法單元用于將所述輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)幕 次權(quán)重的符號位進(jìn)行比較,并在所述輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的符號位不同 時將所述輸入數(shù)據(jù)按位取反再加1或在所述輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的符號 位相同時將所述輸入數(shù)據(jù)保持,W得到完成符號運(yùn)算的中間結(jié)果,并將所述完成符號運(yùn)算 的中間結(jié)果送入位移器,W根據(jù)神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的幕次權(quán)重位進(jìn)行左移或右移,W得到 所述卷積或全連接矩陣向量乘的中間結(jié)果,并將所述中間結(jié)果發(fā)送至所述加法單元,W使 所述加法單元根據(jù)所述中間結(jié)果得到卷積或全連接矩陣向量乘的運(yùn)算結(jié)果。
[0016] 在一些示例中,所述乘法單元W位移器為基本單元構(gòu)成。
[0017] 在一些示例中,所述控制模塊用于:在計算開始時,將所述輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)幕 次權(quán)重從所述全局存儲器中搬移至所述輸入緩存模塊中,W供所述計算模塊使用,并在計 算結(jié)束時,將所述卷積或全連接矩陣向量乘的運(yùn)算結(jié)果從所述輸出緩存模塊中搬移至所述 全局存儲器中,W作為輸出結(jié)果。
[0018] 在一些示例中,所述輸入數(shù)據(jù)的位寬為固定位寬。
[0019] 本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
【附圖說明】
[0020] 本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得 明顯和容易理解,其中:
[0021] 圖1是根據(jù)本發(fā)明實(shí)施例的基于幕次權(quán)重量預(yù)設(shè)的幕次編碼方式化的神經(jīng)網(wǎng)絡(luò)前 向運(yùn)算硬件結(jié)構(gòu)的結(jié)構(gòu)框圖;
[0022] 圖2是本發(fā)明一個實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)的電 路結(jié)構(gòu)圖;W及
[0023] 圖3是本發(fā)明一個實(shí)施例的預(yù)設(shè)的幕次編碼方式示意圖。
【具體實(shí)施方式】
[0024] 下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0025] W下結(jié)合附圖描述根據(jù)本發(fā)明實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算 硬件結(jié)構(gòu)。
[0026] 圖1是根據(jù)本發(fā)明一個實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu) 的結(jié)構(gòu)框圖。圖2是根據(jù)本發(fā)明一個實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件 結(jié)構(gòu)的電路結(jié)構(gòu)圖。如圖1所示,并結(jié)合圖2,該基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件 結(jié)構(gòu)100,包括:輸入緩存模塊110、計算模塊120、輸出緩存模塊130和控制模塊140。
[0027] 其中,輸入緩存模塊110用于緩存從全局存儲器中搬運(yùn)到片上(硬件計算單元)的 待參與運(yùn)算的輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)幕次權(quán)重,其中,神經(jīng)網(wǎng)絡(luò)幕次權(quán)重包括卷積核和全連 接矩陣。
[0028] 在本發(fā)明的一個實(shí)施例中,如圖2所示,所述輸入緩存模塊包括:輸入數(shù)據(jù)緩存單 元111和幕次權(quán)重緩存單元112。
[0029] 其中,輸入數(shù)據(jù)緩存單元111用于存儲輸入數(shù)據(jù)。具體地,輸入數(shù)據(jù)緩存單元111用 于按照一般浮點(diǎn)數(shù)、定點(diǎn)數(shù)或動態(tài)范圍定點(diǎn)數(shù)的方式對輸入數(shù)據(jù)進(jìn)行存儲。幕次權(quán)重緩存 單元112用于存儲幕次權(quán)重。具體地,幕次權(quán)重緩存單元112用于按照預(yù)設(shè)的幕次編碼方式 存儲幕次權(quán)重。其中,輸入數(shù)據(jù)的位寬為固定位寬。
[0030] 作為具體地示例,結(jié)合圖3所示,例如,輸入緩存模塊110將2路位寬分別為Μ和N的 數(shù)字信號由全局存儲器分別送入輸入數(shù)據(jù)緩存單元111和幕次權(quán)重緩存單元112。輸入數(shù)據(jù) 被送入輸入數(shù)據(jù)緩存單元111中,可W直接按照一般浮點(diǎn)數(shù)、定點(diǎn)數(shù)或動態(tài)范圍定點(diǎn)數(shù)等方 式進(jìn)行存儲(Μ為位寬,在本示例中,位寬Μ為32位)。神經(jīng)網(wǎng)絡(luò)權(quán)重輸入神經(jīng)網(wǎng)絡(luò)幕次權(quán)重緩 存單元112中,需要按照一種預(yù)設(shè)的幕次編碼方式進(jìn)行存儲,例如圖2所示。其中,最高位為 符號位(Sign_bit),0表示正數(shù),1表示負(fù)數(shù);第(Ν-1)位為幕次權(quán)重位(Powe;r_bits),用2進(jìn) 制補(bǔ)碼表示該權(quán)重的幕次。因此,當(dāng)前幕次編碼對應(yīng)表示的數(shù)為((-1)~(51肖11_61〇)*(2' (Power-bits))。
[0031] 計算模塊120用于進(jìn)行基于幕次權(quán)重量化的卷積和全連接矩陣向量乘運(yùn)算。
[0032] 在本發(fā)明的一個實(shí)施例中,如圖2所示,計算模塊120包括:乘法單元121、加法單元 122、控制接口 123(圖中未示出)、數(shù)據(jù)接口 124(圖中未示出)和寄存器堆125(圖中未示出)。
[0033] 其中,乘法單元121用于進(jìn)行單個輸入數(shù)據(jù)和單個神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的乘法運(yùn)算, W得到卷積或全連接矩陣向量乘的中間結(jié)果。在本發(fā)明的一個實(shí)施例中,乘法單元121W位 移器為基本單元構(gòu)成,也即乘法單元121為基于位移器的乘法單元。也就是說,本發(fā)明的實(shí) 施例通過采用基于位移器的乘法運(yùn)算單元作為計算模塊120的基本單元,替代了傳統(tǒng)神經(jīng) 網(wǎng)絡(luò)計算單元中的定點(diǎn)數(shù)或浮點(diǎn)數(shù)乘法器,運(yùn)算開銷大幅下降,從而在量化編碼有效降低 神經(jīng)網(wǎng)絡(luò)的存儲量的同時,可W有效地降低神經(jīng)網(wǎng)絡(luò)運(yùn)算開銷,顯著提升了神經(jīng)網(wǎng)絡(luò)計算 系統(tǒng)在終端設(shè)備上的應(yīng)用空間。
[0034] 加法單元122用于將中間結(jié)果進(jìn)行累加運(yùn)算,W得到卷積或全連接矩陣向量乘的 運(yùn)算結(jié)果。
[0035] 控制接口 123用于接收控制模塊發(fā)送的指令。
[0036] 數(shù)據(jù)接口 124用于存取輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)幕次權(quán)重。
[0037] 寄存器堆125用于存儲中間結(jié)果。
[0038] 具體地說,計算模塊120首先將輸入緩沖模塊110送來的位寬為Μ的輸入數(shù)據(jù)和位 寬為Ν的幕次權(quán)重送入乘法單元121進(jìn)行乘法運(yùn)算。由于神經(jīng)網(wǎng)絡(luò)權(quán)重是W幕次編碼的形式 送入的,因此,可W將輸入數(shù)據(jù)作為被操作數(shù),將神經(jīng)網(wǎng)絡(luò)權(quán)重作為位移位數(shù),從而將乘法 運(yùn)算轉(zhuǎn)化為位移運(yùn)算。首先,乘法單元121用于將輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的 符號位進(jìn)行比較,并在輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的符號位不同時將輸入數(shù)據(jù) 按位取反再加1或在輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)幕次權(quán)重的符號位相同時將輸入數(shù)據(jù)保 持,W得到完成符號運(yùn)算的中間結(jié)果,并將完成符號運(yùn)算的中間結(jié)果送入位移器,W根據(jù)神 經(jīng)網(wǎng)絡(luò)幕次權(quán)重的幕次權(quán)重位進(jìn)行左移或右移,W得到卷積或全連接矩陣向量乘的中間結(jié) 果,并將中間結(jié)果發(fā)送至加法單元122, W使加法單元122根據(jù)中間結(jié)果得到卷積或全連接 矩陣向量乘的運(yùn)算結(jié)果。進(jìn)一步地,所得到的卷積或全連接矩陣向量乘的運(yùn)算結(jié)果被暫存 在輸出緩存模塊130中,然后根據(jù)控制模塊140的指令送至全局存儲單元。
[0039] 輸出緩存模塊130用于緩存計算模塊得到的卷積或全連接矩陣向量乘的運(yùn)算結(jié) 果。
[0040] 控制模塊140分別與輸入緩存模塊110、計算模塊120和輸出模塊130相連,用于對 輸入緩存模塊110、運(yùn)算模塊120和輸出緩存模塊130進(jìn)行數(shù)據(jù)搬運(yùn)和運(yùn)算資源調(diào)度。
[0041] 具體地,控制模塊140用于:在計算開始時,將輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)幕次權(quán)重從全 局存儲器中搬移至輸入緩存模塊110中,W供計算模塊120使用,并在計算結(jié)束時,將卷積或 全連接矩陣向量乘的運(yùn)算結(jié)果從輸出緩存模塊130中搬移至全局存儲器中,W作為輸出結(jié) 果或供后續(xù)其他運(yùn)算單元使用。
[0042] 作為具體的示例,如下表1所示,展示了在FPGA平臺上利用本發(fā)明實(shí)施例的基于幕 次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)的運(yùn)算效果,W及使用本發(fā)明實(shí)施例的基于幕次 權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu)相比于傳統(tǒng)的W定點(diǎn)數(shù)乘法器為基本運(yùn)算單元的 神經(jīng)網(wǎng)絡(luò)前向計算系統(tǒng)所節(jié)約的運(yùn)算資源。可W看出通過使用本發(fā)明實(shí)施例的基于幕次權(quán) 重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),可W顯著減小計算資源的W適當(dāng)增大模擬運(yùn)算電路 規(guī)模為代價,顯著減少運(yùn)算資源的開銷。相對16bit乘法器運(yùn)算單元,本發(fā)明僅需4bit位移 器,若WFPGA為實(shí)現(xiàn)方式,所需硬件資源從10化UTs和80FFS,減少到56LUTS和16FFS,分別減 少47.7%和80%.對于多種不同的實(shí)際應(yīng)用,在整個系統(tǒng)層面,本發(fā)明節(jié)約了平均60% W上 的運(yùn)算資源。
[0043]
[0045] 表 1
[0046] 也即,本發(fā)明實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),可W克 服傳統(tǒng)編碼方案中僅能減小神經(jīng)網(wǎng)絡(luò)權(quán)重的存儲代價,無法減小計算資源開銷的問題。通 過采用位移器為基本乘法運(yùn)算單元,替代傳統(tǒng)的浮點(diǎn)數(shù)或定點(diǎn)數(shù)乘法器,可有效地減少計 算資源開銷,簡化運(yùn)算過程,顯著提升了神經(jīng)網(wǎng)絡(luò)計算系統(tǒng)在終端設(shè)備上的應(yīng)用空間,推動 針對神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的新型計算架構(gòu)的進(jìn)一步發(fā)展。
[0047] 綜上,根據(jù)本發(fā)明實(shí)施例的基于幕次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),在 有效降低神經(jīng)網(wǎng)絡(luò)的存儲量的同時,可W有效地降低神經(jīng)網(wǎng)絡(luò)運(yùn)算開銷。該硬件機(jī)構(gòu)采用 基于位移器的乘法運(yùn)算單元,可有效地減少計算資源開銷,簡化運(yùn)算過程,顯著提升了神經(jīng) 網(wǎng)絡(luò)計算系統(tǒng)在終端設(shè)備上的應(yīng)用空間。W8bit定點(diǎn)數(shù)乘法器為例,本發(fā)明可節(jié)省62%左 右的存儲單元,45%左右的運(yùn)算單元,顯著提升了神經(jīng)網(wǎng)絡(luò)計算系統(tǒng)在終端設(shè)備上的應(yīng)用 空間。
[004引在本發(fā)明的描述中,需要理解的是,術(shù)語"中也'、"縱向"、"橫向"、"長度"、"寬度"、 "厚度"、"上"、"下"、"前"、"后左"、"右"、"豎直"、"水平"、"頂"、"底""內(nèi)"、"外"、"順時 針"、"逆時針"、"軸向"、"徑向"、"周向"等指示的方位或位置關(guān)系為基于附圖所示的方位或 位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必 須具有特定的方位、W特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。
[0049] 此外,術(shù)語"第一"、"第二"僅用于描述目的,而不能理解為指示或暗示相對重要性 或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有"第一"、"第二"的特征可W明示或者 隱含地包括至少一個該特征。在本發(fā)明的描述中,"多個"的含義是至少兩個,例如兩個,Ξ 個等,除非另有明確具體的限定。
[0050] 在本發(fā)明中,除非另有明確的規(guī)定和限定,術(shù)語"安裝"、"相連"、"連接"、"固定"等 術(shù)語應(yīng)做廣義理解,例如,可W是固定連接,也可W是可拆卸連接,或成一體;可W是機(jī)械連 接,也可W是電連接;可W是直接相連,也可W通過中間媒介間接相連,可W是兩個元件內(nèi) 部的連通或兩個元件的相互作用關(guān)系,除非另有明確的限定。對于本領(lǐng)域的普通技術(shù)人員 而言,可W根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
[0051] 在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征"上"或"下"可W 是第一和第二特征直接接觸,或第一和第二特征通過中間媒介間接接觸。而且,第一特征在 第二特征"之上"、"上方"和"上面"可是第一特征在第二特征正上方或斜上方,或僅僅表示 第一特征水平高度高于第二特征。第一特征在第二特征"之下"、"下方"和"下面"可w是第 一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
[0052] 在本說明書的描述中,參考術(shù)語"一個實(shí)施例"、"一些實(shí)施例"、"示例"、"具體示 例"、或"一些示例"等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特 點(diǎn)包含于本發(fā)明的至少一個實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不 必須針對的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可W在任 一個或多個實(shí)施例或示例中W合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技 術(shù)人員可W將本說明書中描述的不同實(shí)施例或示例W及不同實(shí)施例或示例的特征進(jìn)行結(jié) 合和組合。
[0053] 盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可W理解的是,上述實(shí)施例是示例 性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可W對上述 實(shí)施例進(jìn)行變化、修改、替換和變型。
【主權(quán)項】
1. 一種基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在于,包括: 輸入緩存模塊,所述輸入緩存模塊用于緩存從全局存儲器中搬運(yùn)到片上的輸入數(shù)據(jù)和 神經(jīng)網(wǎng)絡(luò)冪次權(quán)重,其中,神經(jīng)網(wǎng)絡(luò)冪次權(quán)重包括卷積核和全連接矩陣; 計算模塊,所述計算模塊用于進(jìn)行基于冪次權(quán)重量化的卷積和全連接矩陣向量乘運(yùn) 算; 輸出緩存模塊,所述輸出緩存模塊用于緩存所述計算模塊得到的卷積或全連接矩陣向 量乘的運(yùn)算結(jié)果;以及 控制模塊,所述控制模塊用于對所述輸入緩存模塊、運(yùn)算模塊和輸出緩存模塊進(jìn)行數(shù) 據(jù)搬運(yùn)和運(yùn)算資源調(diào)度。2. 根據(jù)權(quán)利要求1所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,所述輸入緩存模塊包括: 輸入數(shù)據(jù)緩存單元,所述輸入數(shù)據(jù)緩存單元用于存儲所述輸入數(shù)據(jù); 冪次權(quán)重緩存單元,所述冪次權(quán)重緩存單元用于存儲所述冪次權(quán)重。3. 根據(jù)權(quán)利要求2所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,所述輸入數(shù)據(jù)緩存單元用于按照一般浮點(diǎn)數(shù)、定點(diǎn)數(shù)或動態(tài)范圍定點(diǎn)數(shù)的方式對所述 輸入數(shù)據(jù)進(jìn)行存儲。4. 根據(jù)權(quán)利要求2所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,所述冪次權(quán)重緩存單元用于按照預(yù)設(shè)的冪次編碼方式對所述神經(jīng)網(wǎng)絡(luò)冪次權(quán)重進(jìn)行存 儲。5. 根據(jù)權(quán)利要求1所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,所述計算模塊包括: 乘法單元,所述乘法單元用于進(jìn)行單個輸入數(shù)據(jù)和單個神經(jīng)網(wǎng)絡(luò)冪次權(quán)重的乘法運(yùn) 算,以得到卷積或全連接矩陣向量乘的中間結(jié)果; 加法單元,所述加法單元用于將所述中間結(jié)果進(jìn)行累加運(yùn)算,以得到卷積或全連接矩 陣向量乘的運(yùn)算結(jié)果; 控制接口,所述控制接口用于接收所述控制模塊發(fā)送的指令; 數(shù)據(jù)接口,所述數(shù)據(jù)接口用于存取所述輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)冪次權(quán)重; 寄存器堆,所述寄存器堆用于存儲所述中間結(jié)果。6. 根據(jù)權(quán)利要求5所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,其中, 所述乘法單元用于將所述輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)冪次權(quán)重的符號位進(jìn)行比較, 并在所述輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)冪次權(quán)重的符號位不同時將所述輸入數(shù)據(jù)按位取 反再加1或在所述輸入數(shù)據(jù)的符號位與神經(jīng)網(wǎng)絡(luò)冪次權(quán)重的符號位相同時將所述輸入數(shù)據(jù) 保持,以得到完成符號運(yùn)算的中間結(jié)果,并將所述完成符號運(yùn)算的中間結(jié)果送入位移器,以 根據(jù)神經(jīng)網(wǎng)絡(luò)冪次權(quán)重的冪次權(quán)重位進(jìn)行左移或右移,以得到所述卷積或全連接矩陣向量 乘的中間結(jié)果,并將所述中間結(jié)果發(fā)送至所述加法單元,以使所述加法單元根據(jù)所述中間 結(jié)果得到卷積或全連接矩陣向量乘的運(yùn)算結(jié)果。7. 根據(jù)權(quán)利要求5所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,所述乘法單元以位移器為基本單元構(gòu)成。8. 根據(jù)權(quán)利要求1所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu),其特征在 于,所述控制模塊用于: 在計算開始時,將所述輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)冪次權(quán)重從所述全局存儲器中搬移至所述 輸入緩存模塊中,以供所述計算模塊使用,并在計算結(jié)束時,將所述卷積或全連接矩陣向量 乘的運(yùn)算結(jié)果從所述輸出緩存模塊中搬移至所述全局存儲器中,以作為輸出結(jié)果。9. 根據(jù)權(quán)利要求1-8任一項所述的基于冪次權(quán)重量化的神經(jīng)網(wǎng)絡(luò)前向運(yùn)算硬件結(jié)構(gòu), 其特征在于,所述輸入數(shù)據(jù)的位寬為固定位寬。
【文檔編號】G06F7/523GK106066783SQ201610388694
【公開日】2016年11月2日
【申請日】2016年6月2日 公開號201610388694.X, CN 106066783 A, CN 106066783A, CN 201610388694, CN-A-106066783, CN106066783 A, CN106066783A, CN201610388694, CN201610388694.X
【發(fā)明人】汪玉, 唐天琪, 費(fèi)旭東, 楊華中
【申請人】華為技術(shù)有限公司, 清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1