本發(fā)明涉及神經(jīng)網(wǎng)絡(luò)模型計(jì)算的硬件加速技術(shù)領(lǐng)域,特別涉及一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器及設(shè)計(jì)方法。
背景技術(shù):
深度學(xué)習(xí)技術(shù)在近幾年得到了飛速的發(fā)展,深度神經(jīng)網(wǎng)絡(luò),尤其是卷積神經(jīng)網(wǎng)絡(luò),在圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)言理解、天氣預(yù)測(cè)、基因表達(dá)、內(nèi)容推薦和智能機(jī)器人等領(lǐng)域取得了廣泛的應(yīng)用。
深度學(xué)習(xí)所得的深度網(wǎng)絡(luò)結(jié)構(gòu)是一種運(yùn)算模型,其中包含大量數(shù)據(jù)節(jié)點(diǎn),每個(gè)數(shù)據(jù)節(jié)點(diǎn)與其他數(shù)據(jù)節(jié)點(diǎn)相連,各個(gè)節(jié)點(diǎn)間的連接關(guān)系用權(quán)重表示。伴隨神經(jīng)網(wǎng)絡(luò)復(fù)雜度不斷提高,神經(jīng)網(wǎng)絡(luò)技術(shù)在實(shí)際應(yīng)用過(guò)程中存在占用資源多、運(yùn)算速度慢、能量消耗大等問(wèn)題,因此該技術(shù)在嵌入式設(shè)備或低開(kāi)銷(xiāo)數(shù)據(jù)中心等領(lǐng)域應(yīng)用時(shí)存在嚴(yán)重能效問(wèn)題和運(yùn)算速度瓶頸。采用硬件加速替代傳統(tǒng)軟件計(jì)算的方法成為提高神經(jīng)網(wǎng)絡(luò)計(jì)算效率的一種行之有效方式。主流的硬件加速方式包括通用圖形處理器、專用處理器芯片和現(xiàn)場(chǎng)可編程邏輯陣列(fpga)等。
當(dāng)前的深度神經(jīng)網(wǎng)絡(luò)在實(shí)際應(yīng)用中網(wǎng)絡(luò)規(guī)模越來(lái)越大、數(shù)據(jù)吞吐量越來(lái)越高、任務(wù)類(lèi)型越來(lái)越復(fù)雜,這會(huì)導(dǎo)致神經(jīng)網(wǎng)絡(luò)處理器電路規(guī)模變大、數(shù)據(jù)傳輸效率降低、計(jì)算速度變差?,F(xiàn)有技術(shù)實(shí)際應(yīng)用時(shí),在神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中存在大量數(shù)值為0的數(shù)據(jù)元素,這類(lèi)元素經(jīng)過(guò)乘法和加法等數(shù)據(jù)運(yùn)算后對(duì)運(yùn)算結(jié)果不產(chǎn)生數(shù)值上的影響,但是神經(jīng)網(wǎng)絡(luò)處理器在處理這部分?jǐn)?shù)據(jù)元素時(shí)會(huì)占用大量片上存儲(chǔ)空間、消耗多余傳輸資源并增加運(yùn)行時(shí)間,因此難以滿足神經(jīng)網(wǎng)絡(luò)處理器的性能要求。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器及設(shè)計(jì)方法。
本發(fā)明提出一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器,包括:
至少一存儲(chǔ)單元,用于存儲(chǔ)操作指令與運(yùn)算數(shù)據(jù);
至少一計(jì)算單元,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;
以及控制單元,與所述至少一存儲(chǔ)單元、所述至少一計(jì)算單元相連,用于經(jīng)由所述至少一存儲(chǔ)單元獲得所述至少一存儲(chǔ)單元存儲(chǔ)的操作指令,并且解析所述操作指令以控制所述至少一計(jì)算單元;
至少一個(gè)數(shù)據(jù)壓縮單元,其中每個(gè)所述數(shù)據(jù)壓縮單元與所述至少一計(jì)算單元相連,用于壓縮根據(jù)所述運(yùn)算數(shù)據(jù)獲取的計(jì)算結(jié)果,并重新編碼;
至少一數(shù)據(jù)解壓?jiǎn)卧?,其中每個(gè)所述數(shù)據(jù)解壓?jiǎn)卧c所述至少一個(gè)計(jì)算單元相連,用于解壓被壓縮的運(yùn)算數(shù)據(jù)。
所述運(yùn)算數(shù)據(jù)包括原始特征圖數(shù)據(jù)或中間層數(shù)據(jù)計(jì)算結(jié)果。
所述數(shù)據(jù)壓縮單元,采用模式頻率統(tǒng)計(jì)壓縮編碼的方式對(duì)壓縮并編碼后的所述計(jì)算結(jié)果進(jìn)行存儲(chǔ)。
所述編碼的編碼模式為根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中數(shù)據(jù)模式的出現(xiàn)頻率,依據(jù)數(shù)據(jù)的稀疏性,將二進(jìn)制數(shù)據(jù)中各位全部為零或者多位連續(xù)為零的數(shù)據(jù)采用短位數(shù)二進(jìn)制數(shù)表示。
所述數(shù)據(jù)解壓?jiǎn)卧獙⒉捎媚J筋l率統(tǒng)計(jì)壓縮編碼的數(shù)據(jù)解壓并送至所述計(jì)算單元中。
本發(fā)明還提出一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器的設(shè)計(jì)方法,包括:
設(shè)置至少一存儲(chǔ)單元,存儲(chǔ)操作指令與運(yùn)算數(shù)據(jù);
設(shè)置至少一計(jì)算單元,執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;
設(shè)置以及控制單元,與所述至少一存儲(chǔ)單元、所述至少一計(jì)算單元相連,經(jīng)由所述至少一存儲(chǔ)單元獲得所述至少一存儲(chǔ)單元存儲(chǔ)的操作指令,并且解析所述操作指令以控制所述至少一計(jì)算單元;
設(shè)置至少一個(gè)數(shù)據(jù)壓縮單元,壓縮根據(jù)所述運(yùn)算數(shù)據(jù)獲取的計(jì)算結(jié)果,并重新編碼,其中每個(gè)所述數(shù)據(jù)壓縮單元與所述至少一計(jì)算單元相連;
設(shè)置至少一數(shù)據(jù)解壓?jiǎn)卧鈮罕粔嚎s的運(yùn)算數(shù)據(jù),其中每個(gè)所述數(shù)據(jù)解壓?jiǎn)卧c所述至少一個(gè)計(jì)算單元相連。
所述運(yùn)算數(shù)據(jù)包括原始特征圖數(shù)據(jù)或中間層數(shù)據(jù)計(jì)算結(jié)果。
所述數(shù)據(jù)壓縮單元,采用模式頻率統(tǒng)計(jì)壓縮編碼的方式對(duì)壓縮并編碼后的所述計(jì)算結(jié)果進(jìn)行存儲(chǔ)。
所述編碼的編碼模式為根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中數(shù)據(jù)模式的出現(xiàn)頻率,依據(jù)數(shù)據(jù)的稀疏性,將二進(jìn)制數(shù)據(jù)中各位全部為零或者多位連續(xù)為零的數(shù)據(jù)采用短位數(shù)二進(jìn)制數(shù)表示。
所述數(shù)據(jù)解壓?jiǎn)卧獙⒉捎媚J筋l率統(tǒng)計(jì)壓縮編碼的數(shù)據(jù)解壓并送至所述計(jì)算單元中。
由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明在神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)中引入基于模式頻率統(tǒng)計(jì)編碼的數(shù)據(jù)壓縮結(jié)構(gòu),從而降低片上存儲(chǔ)開(kāi)銷(xiāo)、減小運(yùn)算電路規(guī)模并提高運(yùn)算效率,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)整體性能更高。
附圖說(shuō)明
圖1是本發(fā)明提供的神經(jīng)網(wǎng)絡(luò)處理器結(jié)構(gòu)框圖;
圖2是本發(fā)明提出的模式頻率統(tǒng)計(jì)壓縮編碼格式圖;
圖3是本發(fā)明一種實(shí)施例中數(shù)據(jù)壓縮單元結(jié)構(gòu)示意圖;
圖4是本發(fā)明中數(shù)據(jù)壓縮單元將數(shù)據(jù)壓縮為模式頻率統(tǒng)計(jì)壓縮編碼的過(guò)程示意圖;
圖5是本發(fā)明一種實(shí)施例數(shù)據(jù)解壓?jiǎn)卧Y(jié)構(gòu)示意圖;
圖6是本發(fā)明中數(shù)據(jù)解壓?jiǎn)卧鈮簲?shù)據(jù)示意圖;
圖7是本發(fā)明神經(jīng)網(wǎng)絡(luò)處理器進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算的流程圖。
具體實(shí)施方式
針對(duì)現(xiàn)有神經(jīng)網(wǎng)絡(luò)處理器的缺陷,本發(fā)明目的為提供一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器及設(shè)計(jì)方法,該處理器在現(xiàn)有神經(jīng)網(wǎng)絡(luò)處理器系統(tǒng)中引入數(shù)據(jù)壓縮單元,進(jìn)而提升了神經(jīng)網(wǎng)絡(luò)處理器的運(yùn)算速度及運(yùn)行能量效率。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器,包括:
至少一個(gè)存儲(chǔ)單元,用于存儲(chǔ)操作指令和運(yùn)算數(shù)據(jù);
至少一個(gè)計(jì)算單元,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;以及控制單元,與所述至少一個(gè)存儲(chǔ)單元和所述至少一個(gè)計(jì)算單元相連,用于經(jīng)由所述至少一個(gè)存儲(chǔ)單元獲得所述至少一個(gè)存儲(chǔ)單元存儲(chǔ)的指令,并且解析該指令以控制所述至少一個(gè)計(jì)算單元;
至少一個(gè)數(shù)據(jù)壓縮單元,其中每個(gè)數(shù)據(jù)壓縮單元與所述至少一個(gè)計(jì)算單元相連,用于壓縮運(yùn)算數(shù)據(jù),對(duì)運(yùn)算數(shù)據(jù)重新壓縮編碼;
至少一個(gè)數(shù)據(jù)解壓?jiǎn)卧?,其中每個(gè)數(shù)據(jù)解壓?jiǎn)卧c所述至少一個(gè)計(jì)算單元相連,用于解壓被壓縮的運(yùn)算數(shù)據(jù);
一種基于模式頻率統(tǒng)計(jì)的壓縮編碼方式,神經(jīng)網(wǎng)絡(luò)處理過(guò)程中的中間數(shù)據(jù)采用所述模式頻率統(tǒng)計(jì)編碼進(jìn)行存儲(chǔ)和傳輸;
根據(jù)本發(fā)明提出的神經(jīng)網(wǎng)絡(luò)處理器,所述運(yùn)算數(shù)據(jù)包括原始特征圖數(shù)據(jù)或中間層數(shù)據(jù)計(jì)算結(jié)果;
根據(jù)本發(fā)明的神經(jīng)網(wǎng)絡(luò)處理,所述神經(jīng)網(wǎng)絡(luò)處理器進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算時(shí),數(shù)據(jù)壓縮單元會(huì)將特征圖數(shù)據(jù)或中間層計(jì)算結(jié)果整合映射成為數(shù)據(jù)壓縮格式;
所述具有數(shù)據(jù)壓縮格式的數(shù)據(jù)為神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中間計(jì)算結(jié)果,需要進(jìn)行再次存儲(chǔ)或被其他系統(tǒng)單元使用。
為了使本發(fā)明的目的、技術(shù)方案、設(shè)計(jì)方法及優(yōu)點(diǎn)更加清楚明了,以下結(jié)合附圖通過(guò)具體實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明旨在提供一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器,其在神經(jīng)網(wǎng)絡(luò)處理中引入基于模式頻率統(tǒng)計(jì)編碼的數(shù)據(jù)壓縮結(jié)構(gòu),從而降低片上存儲(chǔ)開(kāi)銷(xiāo)、減小運(yùn)算電路規(guī)模并提高運(yùn)算效率,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)整體性能更高。
本發(fā)明提供的神經(jīng)網(wǎng)絡(luò)處理器基于存儲(chǔ)-控制-計(jì)算的結(jié)構(gòu);
存儲(chǔ)結(jié)構(gòu)用于存儲(chǔ)參與計(jì)算的數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)權(quán)重及處理器操作指令;
控制結(jié)構(gòu)包括譯碼電路與控制邏輯電路,用于解析操作指令,生成控制信號(hào),該信號(hào)用于控制片上數(shù)據(jù)的調(diào)度與存儲(chǔ)以及神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程;
計(jì)算結(jié)構(gòu)包括計(jì)算單元,用于參與該處理器中的神經(jīng)網(wǎng)絡(luò)計(jì)算操作,其中應(yīng)包括數(shù)據(jù)檢索結(jié)構(gòu),保證被壓縮的數(shù)據(jù)在計(jì)算單元中能夠正確地與相應(yīng)權(quán)重進(jìn)行計(jì)算。
圖1為本發(fā)明提供的一種神經(jīng)網(wǎng)絡(luò)處理器系統(tǒng)101,該神經(jīng)網(wǎng)絡(luò)處理器系統(tǒng)101架構(gòu)由七個(gè)部分構(gòu)成,包括輸入數(shù)據(jù)存儲(chǔ)單元102、控制單元103、輸出數(shù)據(jù)存儲(chǔ)單元104、權(quán)重存儲(chǔ)單元105、指令存儲(chǔ)單元106、計(jì)算單元107和數(shù)據(jù)壓縮單元108。
輸入數(shù)據(jù)存儲(chǔ)單元102用于存儲(chǔ)參與計(jì)算的數(shù)據(jù),該數(shù)據(jù)包括原始特征圖數(shù)據(jù)和參與中間層計(jì)算的數(shù)據(jù);輸出數(shù)據(jù)存儲(chǔ)單元104存儲(chǔ)計(jì)算得到的神經(jīng)元響應(yīng)值;指令存儲(chǔ)單元106存儲(chǔ)參與計(jì)算的指令信息,指令被解析為控制流來(lái)調(diào)度神經(jīng)網(wǎng)絡(luò)計(jì)算;權(quán)重存儲(chǔ)單元105用于存儲(chǔ)已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)權(quán)重,其中輸入數(shù)據(jù)存儲(chǔ)單元102及輸出數(shù)據(jù)存儲(chǔ)單元104包括壓縮數(shù)據(jù)存儲(chǔ)單元和模式編碼存儲(chǔ)單元兩部分。
控制單元103分別與輸出數(shù)據(jù)存儲(chǔ)單元104、權(quán)重存儲(chǔ)單元105、指令存儲(chǔ)單元106、計(jì)算單元107相連,控制單元103獲得保存在指令存儲(chǔ)單元106中的指令并且解析該指令,控制單元103可根據(jù)解析指令得到的控制信號(hào)控制計(jì)算單元進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算。
計(jì)算單元107用于根據(jù)控制單元103產(chǎn)生的控制信號(hào)來(lái)執(zhí)行相應(yīng)的神經(jīng)網(wǎng)絡(luò)計(jì)算。計(jì)算單元107與一個(gè)或多個(gè)存儲(chǔ)單元相關(guān)聯(lián),計(jì)算單元107可以從與其相關(guān)聯(lián)的輸入數(shù)據(jù)存儲(chǔ)單元102中的數(shù)據(jù)存儲(chǔ)部件獲得數(shù)據(jù)以進(jìn)行計(jì)算,并且可以向與其相關(guān)聯(lián)的輸出數(shù)據(jù)存儲(chǔ)單元104寫(xiě)入數(shù)據(jù)。計(jì)算單元107完成神經(jīng)網(wǎng)絡(luò)算法中的大部分運(yùn)算,即向量乘加操作等。此外,由于載入到計(jì)算單元107中參與計(jì)算的數(shù)據(jù)格式為數(shù)據(jù)壓縮格式,因此在計(jì)算單元107中還應(yīng)包括數(shù)據(jù)檢索子單元,該子單元用于保證被壓縮的數(shù)據(jù)可以與權(quán)重正確計(jì)算。
數(shù)據(jù)壓縮單元108用于參與數(shù)據(jù)壓縮,對(duì)計(jì)算結(jié)果重新編碼,采用模式頻率統(tǒng)計(jì)壓縮編碼的方式進(jìn)行存儲(chǔ)。
數(shù)據(jù)解壓?jiǎn)卧?09用于參與數(shù)據(jù)解壓,將采用模式頻率統(tǒng)計(jì)壓縮編碼的數(shù)據(jù)解壓并送至計(jì)算單元中。
本發(fā)明提供一種基于模式頻率統(tǒng)計(jì)的壓縮編碼方式,所述編碼模式根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中數(shù)據(jù)模式的出現(xiàn)頻率,依據(jù)數(shù)據(jù)的稀疏性,將二進(jìn)制數(shù)據(jù)中各位全部為零或者多位連續(xù)為零的數(shù)據(jù)采用短位數(shù)二進(jìn)制數(shù)表示。例如數(shù)據(jù)0x0000等,輸出字全部為零,或其他包含多個(gè)連續(xù)零位的數(shù)據(jù),如果采用全字長(zhǎng)進(jìn)行存儲(chǔ)在一定程度上是硬件開(kāi)銷(xiāo)和能耗的浪費(fèi)。將這種具有相似形式的數(shù)據(jù)以短字長(zhǎng)的方式存儲(chǔ),存儲(chǔ)空間及數(shù)據(jù)傳輸能耗將大大減小
圖2為本發(fā)明提供的一種基于模式頻率統(tǒng)計(jì)的編碼方式,該編碼方式包括編碼前綴值和數(shù)據(jù)值兩部分。以8bit數(shù)據(jù)為例,當(dāng)數(shù)據(jù)數(shù)值為0時(shí),編碼前綴值為00,此時(shí)存儲(chǔ)保留數(shù)據(jù)低四位0000,即數(shù)據(jù)長(zhǎng)度為4;當(dāng)8bit數(shù)據(jù)的高四位為零時(shí),編碼前綴值為01,此時(shí)存儲(chǔ)保留數(shù)據(jù)低四位,即數(shù)據(jù)長(zhǎng)度為4;當(dāng)8bit數(shù)據(jù)的低四位為零時(shí),編碼前綴值為10,此時(shí)存儲(chǔ)保留數(shù)據(jù)高四位,即數(shù)據(jù)長(zhǎng)度為4;當(dāng)8bit不屬于上述三種模式時(shí),編碼前綴值為11,此時(shí)存儲(chǔ)保留完整8bit數(shù)據(jù),不具有壓縮格式,即數(shù)據(jù)長(zhǎng)度為8。
為表述方便,本發(fā)明僅以圖2為例描述所提供基于模式頻率統(tǒng)計(jì)編碼方式,在設(shè)計(jì)實(shí)施時(shí)可根據(jù)數(shù)據(jù)數(shù)值或數(shù)據(jù)模式進(jìn)一步細(xì)化,采用更多模式類(lèi)型表示原始數(shù)據(jù)。
所述基于模式頻率統(tǒng)計(jì)編碼方式中,編碼值存儲(chǔ)在模式編碼存儲(chǔ)單元中,數(shù)據(jù)保存在壓縮數(shù)據(jù)存儲(chǔ)單元中。
圖3為數(shù)據(jù)壓縮單元結(jié)構(gòu)示意圖。數(shù)據(jù)壓縮單元包括模式匹配單元、模式編碼存儲(chǔ)單元和壓縮數(shù)據(jù)緩存單元。
圖4為數(shù)據(jù)壓縮單元將數(shù)據(jù)壓縮為模式頻率統(tǒng)計(jì)壓縮編碼的過(guò)程示意圖。以數(shù)據(jù)為8bit為例,原始數(shù)據(jù)首先被載入至模式匹配單元中,模式匹配單元將原始與模式類(lèi)型進(jìn)行比對(duì),生成編碼前綴值和數(shù)據(jù)兩部分,編碼前綴值通過(guò)寄存器拼接后存儲(chǔ)在模式編碼存儲(chǔ)單元中,數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩存單元中。數(shù)據(jù)存儲(chǔ)時(shí),以4bit為數(shù)據(jù)存儲(chǔ)長(zhǎng)度,即每個(gè)存儲(chǔ)單元保留4bit數(shù)據(jù),當(dāng)編碼值為11時(shí),由于數(shù)據(jù)長(zhǎng)度為8,因此需要占用兩個(gè)存儲(chǔ)單元。
圖5為數(shù)據(jù)解壓?jiǎn)卧Y(jié)構(gòu)示意圖。數(shù)據(jù)解壓?jiǎn)卧J骄幋a譯碼器、壓縮數(shù)據(jù)偏移累加器、并行移位寄存器和并行譯碼器。
圖6為數(shù)據(jù)解壓?jiǎn)卧M(jìn)行數(shù)據(jù)解壓的示意圖。首先,存儲(chǔ)在模式編碼存儲(chǔ)單元中編碼前綴值接入至模式編碼譯碼器中;編碼前綴值譯碼結(jié)果接入壓縮數(shù)據(jù)偏移累加器中,通過(guò)累加器對(duì)偏移量的累加得到壓縮數(shù)據(jù)存儲(chǔ)的偏移地址,從而在壓縮數(shù)據(jù)中分割得到各個(gè)壓縮數(shù)據(jù)值;壓縮數(shù)據(jù)值接著載入到并行譯碼器中,并行譯碼器根據(jù)所對(duì)應(yīng)的編碼前綴值,將壓縮數(shù)據(jù)擴(kuò)展為數(shù)據(jù)原始值。
圖7是本發(fā)明神經(jīng)網(wǎng)絡(luò)處理器進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算的流程圖,該方法包括:
步驟s1,控制單元對(duì)存儲(chǔ)單元尋址,讀取并解析下一步需要執(zhí)行的指令;
步驟s2,根據(jù)解析指令得到的存儲(chǔ)地址從存儲(chǔ)單元中獲取輸入數(shù)據(jù);
步驟s3,將數(shù)據(jù)和權(quán)重分別從輸入存儲(chǔ)單元和權(quán)重存儲(chǔ)單元載入至計(jì)算單元;
步驟s4,解壓?jiǎn)卧獙嚎s數(shù)據(jù)解壓恢復(fù)為原始數(shù)據(jù);
步驟s5,計(jì)算單元執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的運(yùn)算操作;
步驟s6,數(shù)據(jù)壓縮單元將計(jì)算結(jié)果重編碼為數(shù)據(jù)壓縮存儲(chǔ)格式;
步驟s7,將以數(shù)據(jù)壓縮存儲(chǔ)格式存儲(chǔ)的數(shù)據(jù)存儲(chǔ)輸出至存儲(chǔ)單元中。
本發(fā)明能夠提升神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的運(yùn)算速度并降低能耗,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)性能更加高效。
本發(fā)明還提出一種基于模式頻率統(tǒng)計(jì)編碼的神經(jīng)網(wǎng)絡(luò)處理器的設(shè)計(jì)方法,包括:設(shè)置至少一存儲(chǔ)單元,存儲(chǔ)操作指令與運(yùn)算數(shù)據(jù);
設(shè)置至少一計(jì)算單元,執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;
設(shè)置以及控制單元,與所述至少一存儲(chǔ)單元、所述至少一計(jì)算單元相連,經(jīng)由所述至少一存儲(chǔ)單元獲得所述至少一存儲(chǔ)單元存儲(chǔ)的操作指令,并且解析所述操作指令以控制所述至少一計(jì)算單元;
設(shè)置至少一個(gè)數(shù)據(jù)壓縮單元,壓縮根據(jù)所述運(yùn)算數(shù)據(jù)獲取的計(jì)算結(jié)果,并重新編碼,其中每個(gè)所述數(shù)據(jù)壓縮單元與所述至少一計(jì)算單元相連;
設(shè)置至少一數(shù)據(jù)解壓?jiǎn)卧?,解壓被壓縮的運(yùn)算數(shù)據(jù),其中每個(gè)所述數(shù)據(jù)解壓?jiǎn)卧c所述至少一個(gè)計(jì)算單元相連。
所述運(yùn)算數(shù)據(jù)包括原始特征圖數(shù)據(jù)或中間層數(shù)據(jù)計(jì)算結(jié)果。
所述數(shù)據(jù)壓縮單元,采用模式頻率統(tǒng)計(jì)壓縮編碼的方式對(duì)壓縮并編碼后的所述計(jì)算結(jié)果進(jìn)行存儲(chǔ)。
所述編碼的編碼模式為根據(jù)神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中數(shù)據(jù)模式的出現(xiàn)頻率,依據(jù)數(shù)據(jù)的稀疏性,將二進(jìn)制數(shù)據(jù)中各位全部為零或者多位連續(xù)為零的數(shù)據(jù)采用短位數(shù)二進(jìn)制數(shù)表示。
所述數(shù)據(jù)解壓?jiǎn)卧獙⒉捎媚J筋l率統(tǒng)計(jì)壓縮編碼的數(shù)據(jù)解壓并送至所述計(jì)算單元中。
綜上所述,本發(fā)明針對(duì)神經(jīng)網(wǎng)絡(luò)處理器中存在的運(yùn)算速度差、能量效率低這一問(wèn)題,通過(guò)對(duì)數(shù)據(jù)進(jìn)行重編碼,實(shí)現(xiàn)了數(shù)據(jù)壓縮功能,降低了神經(jīng)網(wǎng)絡(luò)處理器中數(shù)據(jù)的存儲(chǔ)資源占用,提高了運(yùn)算速度,提升了能量效率。
應(yīng)當(dāng)理解,雖然本說(shuō)明書(shū)是按照各個(gè)實(shí)施例描述的,但并非每個(gè)實(shí)施例僅包含一個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書(shū)的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō)明書(shū)作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。
以上所述僅為本發(fā)明示意性的具體實(shí)施方式,并非用以限定本發(fā)明的范圍。任何本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的構(gòu)思和原則的前提下所作的等同變化、修改與結(jié)合,均應(yīng)屬于本發(fā)明保護(hù)的范圍。