本發(fā)明涉及神經(jīng)網(wǎng)絡(luò)模型計(jì)算的硬件加速技術(shù)領(lǐng)域,特別涉及一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器及設(shè)計(jì)方法。
背景技術(shù):
隨著機(jī)器學(xué)習(xí)技術(shù)的不斷發(fā)展,深度神經(jīng)網(wǎng)絡(luò)已經(jīng)成為認(rèn)知與識別任務(wù)的最佳解決方案,在識別檢測和計(jì)算機(jī)視覺領(lǐng)域引起了廣泛關(guān)注,尤其在圖像識別領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)已到達(dá)甚至超越人類的辨識準(zhǔn)確度。
深度學(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ò)處理硬件包括通用圖形處理器、專用處理器芯片和現(xiàn)場可編程邏輯陣列(fpga)等,但是伴隨神經(jīng)網(wǎng)絡(luò)復(fù)雜度的不斷提高,神經(jīng)網(wǎng)絡(luò)技術(shù)在實(shí)際應(yīng)用過程中占用資源多、運(yùn)算速度慢、能量消耗大的問題日益突出,在移動平臺或嵌入式平臺中的適用性不高因此該技術(shù)在嵌入式設(shè)備或低開銷數(shù)據(jù)中心等領(lǐng)域應(yīng)用時(shí)存在嚴(yán)重的能效問題和運(yùn)算速度瓶頸。
深度神經(jīng)網(wǎng)絡(luò)的規(guī)模不斷擴(kuò)大,增加了數(shù)據(jù)傳送和數(shù)據(jù)計(jì)算的需求,由于在很多情況下數(shù)據(jù)傳輸比數(shù)據(jù)計(jì)算更消耗能量,因此,本發(fā)明提供一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器,通過優(yōu)化神經(jīng)網(wǎng)絡(luò)處理器的數(shù)據(jù)調(diào)度方式,減少了數(shù)據(jù)傳輸帶寬、增加了權(quán)重和數(shù)據(jù)的復(fù)用率、降低片上存儲量,實(shí)現(xiàn)了工作能耗的降低。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器及設(shè)計(jì)方法。
本發(fā)明提出一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器,包括:
至少一存儲單元,用于存儲操作指令與運(yùn)算數(shù)據(jù);
至少一計(jì)算單元,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;
控制單元,與所述至少一存儲單元、所述至少一計(jì)算單元相連,用于經(jīng)由所述至少一存儲單元獲得所述至少一存儲單元存儲的操作指令,并且解析所述操作指令以控制所述至少一計(jì)算單元;
其中所述運(yùn)算數(shù)據(jù)采用高效復(fù)用數(shù)據(jù)流的形式。
所述神經(jīng)網(wǎng)絡(luò)處理器包括存儲結(jié)構(gòu)、控制結(jié)構(gòu)、計(jì)算結(jié)構(gòu)。
在所述計(jì)算單元陣列中,位于相同列的計(jì)算單元共享一組相同的數(shù)據(jù);位于相同行的計(jì)算單元載入相同的一組權(quán)重,在每個(gè)計(jì)算周期,每個(gè)計(jì)算單元僅會載入一組權(quán)重的一個(gè)元素;位于不同行的計(jì)算單元會載入不同的權(quán)重。
計(jì)算單元中每組數(shù)據(jù)按照神經(jīng)網(wǎng)絡(luò)層深度方向排列,計(jì)算單元內(nèi)不同行間的運(yùn)算提現(xiàn)了計(jì)算單元的并行度。
所述高效復(fù)用數(shù)據(jù)流每次只載入一列數(shù)據(jù)與權(quán)重進(jìn)入計(jì)算單元陣列,并且載入的數(shù)據(jù)與權(quán)重僅在相鄰兩列間傳播。
本發(fā)明還提出一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器的設(shè)計(jì)方法,包括:
設(shè)置至少一存儲單元,存儲操作指令與運(yùn)算數(shù)據(jù);
設(shè)置至少一計(jì)算單元,執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;
設(shè)置控制單元,與所述至少一存儲單元、所述至少一計(jì)算單元相連,經(jīng)由所述至少一存儲單元獲得所述至少一存儲單元存儲的操作指令,并且解析所述操作指令以控制所述至少一計(jì)算單元;
其中所述運(yùn)算數(shù)據(jù)采用高效復(fù)用數(shù)據(jù)流的形式。
所述神經(jīng)網(wǎng)絡(luò)處理器包括存儲結(jié)構(gòu)、控制結(jié)構(gòu)、計(jì)算結(jié)構(gòu)。
在所述計(jì)算單元陣列中,位于相同列的計(jì)算單元共享一組相同的數(shù)據(jù);位于相同行的計(jì)算單元載入相同的一組權(quán)重,在每個(gè)計(jì)算周期,每個(gè)計(jì)算單元僅會載入一組權(quán)重的一個(gè)元素;位于不同行的計(jì)算單元會載入不同的權(quán)重。
計(jì)算單元中每組數(shù)據(jù)按照神經(jīng)網(wǎng)絡(luò)層深度方向排列,計(jì)算單元內(nèi)不同行間的運(yùn)算提現(xiàn)了計(jì)算單元的并行度。
所述高效復(fù)用數(shù)據(jù)流每次只載入一列數(shù)據(jù)與權(quán)重進(jìn)入計(jì)算單元陣列,并且載入的數(shù)據(jù)與權(quán)重僅在相鄰兩列間傳播。
由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明在神經(jīng)網(wǎng)絡(luò)處理過程中采用高效復(fù)用數(shù)據(jù)流,每次只需向計(jì)算單元陣列中的一列計(jì)算單元載入權(quán)重和數(shù)據(jù),降低了片上數(shù)據(jù)帶寬、提高了數(shù)據(jù)共享率、提升了能量效率。
附圖說明
圖1是本發(fā)明提供的神經(jīng)網(wǎng)絡(luò)處理器結(jié)構(gòu)框圖;
圖2是本發(fā)明提供的具有數(shù)據(jù)共享功能的計(jì)算單元陣列示意圖;
圖3是本發(fā)明提供的高效復(fù)用數(shù)據(jù)流示意圖。
具體實(shí)施方式
本發(fā)明目的為提供一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器及設(shè)計(jì)方法,該處理器在現(xiàn)有神經(jīng)網(wǎng)絡(luò)處理器系統(tǒng)中采用時(shí)間維-空間維數(shù)據(jù)流并采用權(quán)重壓縮的方法,降低了片上數(shù)據(jù)帶寬、提高了數(shù)據(jù)共享率并減少了無效計(jì)算,進(jìn)而提升了神經(jīng)網(wǎng)絡(luò)處理器的運(yùn)算速度及運(yùn)行能量效率。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器,包括:
至少一個(gè)存儲單元,用于存儲操作指令和運(yùn)算數(shù)據(jù);
至少一個(gè)計(jì)算單元,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;以及控制單元,與所述至少一個(gè)存儲單元和所述至少一個(gè)計(jì)算單元相連,用于經(jīng)由所述至少一個(gè)存儲單元獲得所述至少一個(gè)存儲單元存儲的指令,并且解析該指令以控制所述至少一個(gè)計(jì)算單元;
一種基于時(shí)間維-空間維的高效復(fù)用數(shù)據(jù)流進(jìn)行數(shù)據(jù)傳輸及計(jì)算,所述高效復(fù)用數(shù)據(jù)流每次只載入一列數(shù)據(jù)和權(quán)重進(jìn)入計(jì)算單元陣列,并且數(shù)據(jù)和權(quán)重僅在相鄰兩列間傳播,具有低數(shù)據(jù)帶寬和高數(shù)據(jù)共享率的特點(diǎn)。
為了使本發(fā)明的目的、技術(shù)方案、設(shè)計(jì)方法及優(yōu)點(diǎn)更加清楚明了,以下結(jié)合附圖通過具體實(shí)施例對本發(fā)明進(jìn)一步詳細(xì)說明,應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明旨在提供一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器,在神經(jīng)網(wǎng)絡(luò)處理過程中采用高效復(fù)用數(shù)據(jù)流,每次只需向計(jì)算單元陣列中的一列計(jì)算單元載入權(quán)重和數(shù)據(jù),降低了片上數(shù)據(jù)帶寬、提高了數(shù)據(jù)共享率、提升了能量效率。
本發(fā)明提供的神經(jīng)網(wǎng)絡(luò)處理基于存儲-控制-計(jì)算的結(jié)構(gòu);
存儲結(jié)構(gòu)用于存儲參與計(jì)算的數(shù)據(jù)及處理器操作指令;
控制結(jié)構(gòu)包括譯碼電路,用于解析操作指令,生成控制信號以控制片上數(shù)據(jù)的調(diào)度與存儲以及神經(jīng)網(wǎng)絡(luò)計(jì)算過程;
計(jì)算結(jié)構(gòu)包括算術(shù)邏輯單元,用于參與該處理器中的神經(jīng)網(wǎng)絡(luò)計(jì)算操作,壓縮數(shù)據(jù)在計(jì)算結(jié)構(gòu)中實(shí)現(xiàn)計(jì)算操作。
圖1為本發(fā)明提供的一種神經(jīng)網(wǎng)絡(luò)處理器系統(tǒng)101,該系統(tǒng)架構(gòu)由六個(gè)部分構(gòu)成,包括輸入數(shù)據(jù)存儲單元102、控制單元103、輸出數(shù)據(jù)存儲單元104、權(quán)重存儲單元105、指令存儲單元106、計(jì)算單元陣列107。
輸入數(shù)據(jù)存儲單元102用于參與計(jì)算的數(shù)據(jù),該數(shù)據(jù)包括原始特征圖數(shù)據(jù)和參與中間層計(jì)算的數(shù)據(jù);輸出數(shù)據(jù)存儲單元104包括計(jì)算得到的神經(jīng)元響應(yīng)值;權(quán)重存儲單元105用于存儲已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)權(quán)重;指令存儲單元106存儲參與計(jì)算的指令信息,指令被解析來實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)計(jì)算。
控制單元103分別與輸出數(shù)據(jù)存儲單元104、權(quán)重存儲單元105、指令存儲單元106、計(jì)算單元107,控制單元103獲得保存在指令存儲單元106中的指令并且解析該指令,控制單元103可根據(jù)解析指令得到的控制信號控制計(jì)算單元進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算。
計(jì)算單元107用于根據(jù)控制單元103的產(chǎn)生的控制信號來執(zhí)行相應(yīng)的神經(jīng)網(wǎng)絡(luò)計(jì)算。計(jì)算單元107與一個(gè)或多個(gè)存儲單元相關(guān)聯(lián),計(jì)算單元107可以從與其相關(guān)聯(lián)的輸入數(shù)據(jù)存儲單元102中的數(shù)據(jù)存儲部件獲得數(shù)據(jù)以進(jìn)行計(jì)算,并且可以向該相關(guān)聯(lián)的輸出數(shù)據(jù)存儲單元104寫入數(shù)據(jù)。計(jì)算單元107完成神經(jīng)網(wǎng)絡(luò)算法中的大部分運(yùn)算,即向量乘加操作等。
圖2為本發(fā)明設(shè)計(jì)的一種適用于高效復(fù)用數(shù)據(jù)流的計(jì)算單元陣列示意圖。該計(jì)算單元陣列由m*n個(gè)計(jì)算單元組成,每個(gè)計(jì)算單元完成數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)權(quán)重的卷積運(yùn)算。在計(jì)算單元陣列中,位于相同列的計(jì)算單元共享一組相同的數(shù)據(jù);位于相同行的計(jì)算單元會載入相同的一組權(quán)重值,在每個(gè)計(jì)算周期,每個(gè)計(jì)算單元僅會載入一組權(quán)重值的一個(gè)元素;位于不同行的計(jì)算單元會載入不同的權(quán)重值。
本發(fā)明提供一種應(yīng)用于神經(jīng)網(wǎng)絡(luò)處理的高效復(fù)用數(shù)據(jù)流。所述高效復(fù)用數(shù)據(jù)流的特征包括:
(1)參與神經(jīng)網(wǎng)絡(luò)運(yùn)算的數(shù)據(jù)按照神經(jīng)網(wǎng)絡(luò)層深度排列方式載入至計(jì)算單元中。
(2)計(jì)算單元包含n行,行方向代表了計(jì)算單元的并行度。
(3)計(jì)算單元內(nèi),數(shù)據(jù)和權(quán)重在列方向上進(jìn)行傳播和移動,可以增加數(shù)
據(jù)和權(quán)重的復(fù)用率。
圖3以3*2的計(jì)算單元(pe)陣列為例,詳細(xì)闡述本發(fā)明提供的計(jì)算單元陣列通過高效復(fù)用數(shù)據(jù)流進(jìn)行神經(jīng)網(wǎng)絡(luò)計(jì)算的過程。如圖3,兩組權(quán)重權(quán)重0和權(quán)重1的規(guī)模大小均為2*2*4,數(shù)據(jù)規(guī)模大小為4*2*4,權(quán)重依據(jù)其空間位置被分為四組,其中位于相同x軸和相同y軸的權(quán)重元素被分為一組,權(quán)重0的四組權(quán)重分別為ax、bx、cx和dx(x=0,1,2,3),權(quán)重1的四組權(quán)重分別為ax、bx、cx和dx(x=0,1,2,3)。pe的具體工作過程如下:
在第0個(gè)周期,數(shù)據(jù)①②③分別載入到計(jì)算單元pe00、pe01和pe02中,權(quán)重0中的權(quán)重元素a0載入到計(jì)算單元pe00中,數(shù)據(jù)①和權(quán)重元素a0在計(jì)算單元pe00中進(jìn)行乘法等相關(guān)操作;同時(shí)數(shù)據(jù)①②③共享至計(jì)算單元pe00、pe01和pe02中,權(quán)重1中權(quán)重元素a0載入到計(jì)算單元pe10中,數(shù)據(jù)①和權(quán)重元素a0在計(jì)算單元pe10中進(jìn)行乘法等相關(guān)操作;
在第1個(gè)周期,權(quán)重元素a0向右移動至計(jì)算單元pe01中,權(quán)重元素a1載入到計(jì)算單元pe00中;同時(shí)權(quán)重元素a0向右移動至計(jì)算單元pe11中,權(quán)重元素a1載入到計(jì)算單元pe10中;
在第2個(gè)周期,權(quán)重元素a0和a1同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素a2載入到計(jì)算單元pe00中;同時(shí),權(quán)重元素a0和a1同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素a2載入到計(jì)算單元pe10中;
在第3個(gè)周期,權(quán)重元素a1和a2同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素a3載入到計(jì)算單元pe00中,此時(shí)權(quán)重0的第一組權(quán)重元素ax(x=0,1,2,3)已全部載入至計(jì)算單元陣列中;同時(shí),權(quán)重元素a1和a2同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素a3載入到計(jì)算單元pe10中,此時(shí)權(quán)重1的第一組權(quán)重元素ax(x=0,1,2,3)已全部載入至計(jì)算單元陣列中;
在第4個(gè)周期,權(quán)重元素a2和a3同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,下一組權(quán)重元素bx(x=0,1,2,3)中的第一個(gè)元素b0載入到計(jì)算單元pe00中,此外數(shù)據(jù)②載入至計(jì)算單元pe00中;同時(shí),權(quán)重元素a2和a3同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,下一組權(quán)重元素bx(x=0,1,2,3)中的第一個(gè)元素b0載入到計(jì)算單元pe10中,數(shù)據(jù)②共享至計(jì)算單元pe10中;
在第5個(gè)周期,權(quán)重元素a3和b0同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素b1載入到計(jì)算單元pe00中,此外數(shù)據(jù)③載入至計(jì)算單元pe01中;同時(shí),權(quán)重元素a3和b0同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素b1載入到計(jì)算單元pe10中,此外數(shù)據(jù)③載入至計(jì)算單元pe11中;
在第6個(gè)周期,權(quán)重元素b0和b1時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素b2載入到計(jì)算單元pe00中,此外數(shù)據(jù)④載入至計(jì)算單元pe02中;同時(shí),權(quán)重元素b0和b1時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素b2載入到計(jì)算單元pe10中,數(shù)據(jù)④共享至計(jì)算單元pe12中;
在第7個(gè)周期,權(quán)重元素b1和b2同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素b3載入到計(jì)算單元pe00中,此時(shí)權(quán)重0的第二組權(quán)重元素bx(x=0,1,2,3)已全部載入至計(jì)算單元陣列中;同時(shí),權(quán)重元素b1和b2同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素b3載入到計(jì)算單元pe10中,此時(shí)權(quán)重1的第二組權(quán)重元素bx(x=0,1,2,3)已全部載入至計(jì)算單元陣列中;
在第8個(gè)周期,權(quán)重元素b2和b3同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素c0載入到計(jì)算單元pe00中,此外數(shù)據(jù)⑤載入至計(jì)算單元pe00中;同時(shí),權(quán)重元素b2和b3同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素c0載入到計(jì)算單元pe10中,數(shù)據(jù)⑤共享至計(jì)算單元pe10中;
在第9個(gè)周期,數(shù)據(jù)⑥分別載入到計(jì)算單元pe01中,權(quán)重元素c0向右移動至計(jì)算單元pe01中,權(quán)重元素c1載入到計(jì)算單元pe00中;同時(shí),數(shù)據(jù)⑥共享到計(jì)算單元pe11中,權(quán)重元素c0向右移動至計(jì)算單元pe11中,權(quán)重元素c1載入到計(jì)算單元pe10中;
在第10個(gè)周期,權(quán)重元素c0和c1同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素c2載入到計(jì)算單元pe00中,此外數(shù)據(jù)⑦載入至計(jì)算單元pe02中;同時(shí),權(quán)重元素c0和c1同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素c2載入到計(jì)算單元pe10中,數(shù)據(jù)⑦共享至計(jì)算單元pe12中;
在第11個(gè)周期,權(quán)重元素c1和c2同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素c3載入到計(jì)算單元pe00中,此時(shí)權(quán)重0的第三組權(quán)重元素cx(x=0,1,2,3)已全部載入至計(jì)算單元陣列中;同時(shí),權(quán)重元素c1和c2同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中,權(quán)重元素c3載入到計(jì)算單元pe10中,此時(shí)權(quán)重1的第三組權(quán)重元素cx(x=0,1,2,3)已全部載入至計(jì)算單元陣列中;
在第12個(gè)周期,權(quán)重元素c2和c3同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重0中下一組權(quán)重元素dx(x=0,1,2,3)中的第一個(gè)元素d0載入到計(jì)算單元pe00中,此外數(shù)據(jù)⑥載入至計(jì)算單元pe00中;同時(shí),權(quán)重元素c2和c3同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重1中下一組權(quán)重元素dx(x=0,1,2,3)中的第一個(gè)元素d0載入到計(jì)算單元pe10中,數(shù)據(jù)⑥共享至計(jì)算單元pe00中;
在第13個(gè)周期,權(quán)重元素c3和d0同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素d1載入到計(jì)算單元pe00中,此外數(shù)據(jù)⑦載入至計(jì)算單元pe01中;同時(shí),權(quán)重元素c3和d0同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素d1載入到計(jì)算單元pe00中,數(shù)據(jù)⑦共享至計(jì)算單元pe01中;
在第14個(gè)周期,權(quán)重元素d1和d0同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素d2載入到計(jì)算單元pe00中,此外數(shù)據(jù)⑧載入至計(jì)算單元pe02中;同時(shí),權(quán)重元素d1和d0同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中,權(quán)重元素d2載入到計(jì)算單元pe00中,數(shù)據(jù)⑧共享至計(jì)算單元pe02中;
在第15個(gè)周期,權(quán)重元素d2和d1同時(shí)右移,分別載入到計(jì)算單元pe2和計(jì)算單元pe01中,權(quán)重元素d3載入到計(jì)算單元pe00中;同時(shí),權(quán)重元素d2和d1同時(shí)右移,分別載入到計(jì)算單元pe2和計(jì)算單元pe01中,權(quán)重元素d3載入到計(jì)算單元pe00中;
在第16個(gè)周期,權(quán)重元素d3和d2同時(shí)右移,分別載入到計(jì)算單元pe02和計(jì)算單元pe01中;同時(shí),權(quán)重元素d3和d2同時(shí)右移,分別載入到計(jì)算單元pe12和計(jì)算單元pe11中;
在第17個(gè)周期,權(quán)重元素d3右移,載入到計(jì)算單元pe02中,此時(shí)上述權(quán)重規(guī)模大小為2*2*4與數(shù)據(jù)規(guī)模大小為4*2*4的卷積運(yùn)算結(jié)束;同時(shí),權(quán)重元素d3右移,載入到計(jì)算單元pe12中,此時(shí)上述權(quán)重規(guī)模大小為2*2*4與數(shù)據(jù)規(guī)模大小為4*2*4的卷積運(yùn)算結(jié)束。
本發(fā)明還提出一種基于高效復(fù)用數(shù)據(jù)流的神經(jīng)網(wǎng)絡(luò)處理器的設(shè)計(jì)方法,包括:
設(shè)置至少一存儲單元,存儲操作指令與運(yùn)算數(shù)據(jù);
設(shè)置至少一計(jì)算單元,執(zhí)行神經(jīng)網(wǎng)絡(luò)計(jì)算;
設(shè)置控制單元,與所述至少一存儲單元、所述至少一計(jì)算單元相連,經(jīng)由所述至少一存儲單元獲得所述至少一存儲單元存儲的操作指令,并且解析所述操作指令以控制所述至少一計(jì)算單元;
其中所述運(yùn)算數(shù)據(jù)采用高效復(fù)用數(shù)據(jù)流的形式。
所述神經(jīng)網(wǎng)絡(luò)處理器包括存儲結(jié)構(gòu)、控制結(jié)構(gòu)、計(jì)算結(jié)構(gòu)。
在所述計(jì)算單元陣列中,位于相同列的計(jì)算單元共享一組相同的數(shù)據(jù);位于相同行的計(jì)算單元載入相同的一組權(quán)重,在每個(gè)計(jì)算周期,每個(gè)計(jì)算單元僅會載入一組權(quán)重的一個(gè)元素;位于不同行的計(jì)算單元會載入不同的權(quán)重。
計(jì)算單元中每組數(shù)據(jù)按照神經(jīng)網(wǎng)絡(luò)層深度方向排列,計(jì)算單元內(nèi)不同行間的運(yùn)算提現(xiàn)了計(jì)算單元的并行度。
所述高效復(fù)用數(shù)據(jù)流每次只載入一列數(shù)據(jù)與權(quán)重進(jìn)入計(jì)算單元陣列,并且載入的數(shù)據(jù)與權(quán)重僅在相鄰兩列間傳播。綜上所述,本發(fā)明針對能量效率低這一問題,提供了一種高效復(fù)用數(shù)據(jù)流,減少了數(shù)據(jù)帶寬,增加了數(shù)據(jù)復(fù)用率,有效提高了處理器的能量效率。
應(yīng)當(dāng)理解,雖然本說明書是按照各個(gè)實(shí)施例描述的,但并非每個(gè)實(shí)施例僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(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ù)的范圍。