亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種神經(jīng)網(wǎng)絡(luò)的處理方法、系統(tǒng)的制作方法

文檔序號(hào):10570451閱讀:208來源:國知局
一種神經(jīng)網(wǎng)絡(luò)的處理方法、系統(tǒng)的制作方法
【專利摘要】本發(fā)明適用于計(jì)算機(jī)技術(shù)領(lǐng)域,提供了一種神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的處理方法、系統(tǒng),該神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)包括由多個(gè)核心處理模塊組成的多核心處理模塊、片上存儲(chǔ)介質(zhì)、片內(nèi)地址索引模塊以及ALU模塊,多核心處理模塊用于執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作,ALU模塊用于從所述多核心處理模塊或片上存儲(chǔ)介質(zhì)獲取輸入數(shù)據(jù)執(zhí)行多核心處理模塊無法完成的非線性運(yùn)算,其中多個(gè)核心處理模塊共享片上存儲(chǔ)介質(zhì)以及ALU模塊,或者多個(gè)核心處理模塊具有獨(dú)立的片上存儲(chǔ)介質(zhì)以及ALU模塊。本發(fā)明在神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)中引入多核設(shè)計(jì),從而提升神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的運(yùn)算速度,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)性能更高,更加高效。
【專利說明】
一種神經(jīng)網(wǎng)絡(luò)的處理方法、系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,屬于一種神經(jīng)網(wǎng)絡(luò)的處理方法、系統(tǒng)。
【背景技術(shù)】
[0002]在大數(shù)據(jù)時(shí)代,越來越多的設(shè)備需要對(duì)于真實(shí)世界的實(shí)時(shí)輸入進(jìn)行越來越復(fù)雜的處理,如工業(yè)機(jī)器人、自動(dòng)駕駛無人汽車以及移動(dòng)設(shè)備等等。這些任務(wù)大多數(shù)偏向于機(jī)器學(xué)習(xí)領(lǐng)域,其中大部分運(yùn)算為向量運(yùn)算或者矩陣運(yùn)算,具有極高的并行度。相較于傳統(tǒng)通用的GPU/CPU加速方案,硬件ASIC加速器是目前最受歡迎的加速方案,一方面可以提供極高的并行度可以實(shí)現(xiàn)極高的性能,另外一方面具有極高的能效性。
[0003]常見的神經(jīng)網(wǎng)絡(luò)算法中,包括最為流行的多層感知神經(jīng)網(wǎng)絡(luò)(Mu111-LayerPerceptron,MLP)、卷積神經(jīng)網(wǎng)絡(luò)(Convolut1nal Neural Network,CNN)和深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN),通常包含多層神經(jīng)元而每層神經(jīng)元常常通過特定方式進(jìn)行組織,如卷積神經(jīng)網(wǎng)絡(luò)中按照特征圖(Feature Map)進(jìn)行組織。每個(gè)輸出特征圖的處理常常獨(dú)立于彼此。
[0004]神經(jīng)網(wǎng)絡(luò)的絕大部分運(yùn)算為輸入神經(jīng)元到輸出神經(jīng)元的處理,少量運(yùn)算為不需要輸出神經(jīng)元參與的運(yùn)算,如非線性運(yùn)算。神經(jīng)網(wǎng)絡(luò)中每層的運(yùn)算速度深切的影響了神經(jīng)網(wǎng)絡(luò)加速器的性能。神經(jīng)網(wǎng)絡(luò)加速器中,提升這些運(yùn)算的并行度,也即加速器的吞吐量,為提升神經(jīng)網(wǎng)絡(luò)加速器的性能的主要手段?,F(xiàn)有技術(shù)中,執(zhí)行輸入神經(jīng)元到輸出神經(jīng)元的處理的模塊通常為單核設(shè)計(jì),難以滿足神經(jīng)網(wǎng)絡(luò)加速器的性能要求。
[0005]綜上可知,現(xiàn)有技術(shù)在實(shí)際使用上顯然存在不便與缺陷,所以有必要加以改進(jìn)。

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

[0006]針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種神經(jīng)網(wǎng)絡(luò)的處理方法、系統(tǒng),其在神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)中引入多核設(shè)計(jì),從而提升神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的運(yùn)算速度,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)性能更高,更加高效。
[0007]為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng),包括:
[0008]至少一片上存儲(chǔ)介質(zhì)、用于存儲(chǔ)由神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)外部傳來的數(shù)據(jù)或用于存儲(chǔ)處理過程中產(chǎn)生的數(shù)據(jù);
[0009]至少一片內(nèi)地址索引模塊、用于執(zhí)行運(yùn)算時(shí)根據(jù)輸入的索引映射至正確的存儲(chǔ)地址;
[0010]由多個(gè)核心處理模塊組成的多核心處理模塊,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作;
[0011 ]至少一ALU模塊,用于從所述多核心處理模塊或所述片上存儲(chǔ)介質(zhì)獲取輸入數(shù)據(jù)執(zhí)行所述多核心處理模塊無法完成的非線性運(yùn)算,
[0012]其中,所述多個(gè)核心處理模塊共享所述片上存儲(chǔ)介質(zhì)以及ALU模塊,或者所述多個(gè)核心處理模塊具有獨(dú)立的所述片上存儲(chǔ)介質(zhì)以及ALU模塊。
[0013]根據(jù)本發(fā)明的處理系統(tǒng),所述處理過程中產(chǎn)生的數(shù)據(jù)包括處理結(jié)果或中間結(jié)算結(jié)果O
[0014]根據(jù)本發(fā)明的處理系統(tǒng),所述神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)進(jìn)行處理時(shí),將同一輸入神經(jīng)元分別發(fā)送至所述多個(gè)核心處理模塊,將不同的輸入權(quán)值分配至不同的核心處理模塊,所述多個(gè)核心處理模塊分別將所述輸入神經(jīng)元和輸入權(quán)值進(jìn)行向量內(nèi)積操作后得到不同的輸出神經(jīng)元。
[0015]根據(jù)本發(fā)明的處理系統(tǒng),所述神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)在執(zhí)行二維或者多維運(yùn)算時(shí),將輸入特征圖分別發(fā)送至所述多個(gè)核心處理模塊,所述多個(gè)核心處理模塊分別處理一層輸出特征圖。
[0016]根據(jù)本發(fā)明的處理系統(tǒng),所述神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)在執(zhí)行二維或者多維運(yùn)算時(shí),將輸入特征圖分別發(fā)送至所述多個(gè)核心處理模塊,所述多個(gè)核心處理模塊分別處理同一輸出特征圖的不同區(qū)域。
[0017]根據(jù)本發(fā)明的處理系統(tǒng),所述多個(gè)核心處理模塊均分別完成當(dāng)前輸出特征圖的處理后,所述多核心處理模塊再執(zhí)行新的輸出特征圖處理。
[0018]根據(jù)本發(fā)明的處理系統(tǒng),所述神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)在執(zhí)行一維運(yùn)算時(shí),將同一輸入分別發(fā)送至所述多個(gè)核心處理模塊,所述多個(gè)核心處理模塊分別處理不同的輸出神經(jīng)元,所述多個(gè)核心處理模塊均分別完成當(dāng)前輸出神經(jīng)元的處理后,所述多核心處理模塊再執(zhí)行新的輸入的處理。
[0019]根據(jù)本發(fā)明的處理系統(tǒng),所述多核心處理模塊的多個(gè)核心處理模塊之間為同構(gòu)設(shè)計(jì)或異構(gòu)設(shè)計(jì)
[0020]本發(fā)明相應(yīng)提供一種神經(jīng)網(wǎng)絡(luò)的處理方法,所述方法包括:
[0021 ]片內(nèi)地址索引模塊根據(jù)輸入的索引映射至正確的存儲(chǔ)地址;
[0022]根據(jù)所述存儲(chǔ)地址從片上存儲(chǔ)介質(zhì)中獲取輸入數(shù)據(jù);
[0023]將所述輸入數(shù)據(jù)發(fā)送至多核心處理模塊或所述ALU模塊;
[0024]所述多核心處理模塊執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作,所述ALU模塊根據(jù)所述多核心處理模塊的處理結(jié)果或者從所述從片上存儲(chǔ)介質(zhì)中獲取的輸入數(shù)據(jù)執(zhí)行所述多核心處理模塊無法完成的非線性運(yùn)算;
[0025]將處理過程中產(chǎn)生的數(shù)據(jù)緩存至所述片上存儲(chǔ)介質(zhì)。
[0026]根據(jù)本發(fā)明的處理方法,所述方法還包括:將同一輸入神經(jīng)元分別發(fā)送至所述多個(gè)核心處理模塊,將不同的輸入權(quán)值分配至不同的核心處理模塊,所述多個(gè)核心處理模塊分別將所述輸入神經(jīng)元和輸入權(quán)值進(jìn)行向量內(nèi)積操作后得到不同的輸出神經(jīng)元。
[0027]本發(fā)明針對(duì)神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的核心處理部分通過提升片上核心處理模塊的數(shù)目從而提升神經(jīng)網(wǎng)絡(luò)算法中的核心運(yùn)算部分處理速度,使得加速器獲得更高的性能。核心處理指的是神經(jīng)網(wǎng)絡(luò)算法中占據(jù)大部分處理時(shí)間的向量乘加操作。從而本發(fā)明能夠提升神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的運(yùn)算速度,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)性能更高,更加高效。
【附圖說明】
[0028]圖1是本發(fā)明神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)的一種實(shí)施例的結(jié)構(gòu)框圖;
[0029]圖2是本發(fā)明神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)的另一實(shí)施例的結(jié)構(gòu)框圖;
[0030]圖3是本發(fā)明一種實(shí)施例中神經(jīng)網(wǎng)絡(luò)劃分的示意圖;
[0031 ]圖4是本發(fā)明另一實(shí)施例中神經(jīng)網(wǎng)絡(luò)劃分的示意圖;
[0032]圖5是本發(fā)明又一實(shí)施例中神經(jīng)網(wǎng)絡(luò)劃分的示意圖;
[0033]圖6是本發(fā)明神經(jīng)網(wǎng)絡(luò)的處理方法的流程圖。
【具體實(shí)施方式】
[0034]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0035]如圖1所示,本發(fā)明提供了一種神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)100,包括至少一片上存儲(chǔ)介質(zhì)10、至少一片內(nèi)地址索引模塊20、多核心處理模塊30以及至少一ALU(Arithmetic LogicUnit,算數(shù)邏輯單元)模塊40。多核心處理模塊30包括多個(gè)核心處理模塊31。其中片內(nèi)地址索引模塊20與片上存儲(chǔ)介質(zhì)10連接,片內(nèi)地址索引模塊20、多核心處理模塊30以及ALU模塊40分別相互連接。多核心處理模塊30用于執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作,ALU模塊40用于從多核心處理模塊30或片上存儲(chǔ)介質(zhì)10獲取輸入數(shù)據(jù)執(zhí)行多核心處理模塊30無法完成的非線性運(yùn)算,在本實(shí)施例中,多個(gè)核心處理模塊31共享片上存儲(chǔ)介質(zhì)10以及ALU模塊40 ο
[0036]片上存儲(chǔ)介質(zhì)10,用于存儲(chǔ)神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)外部傳來的數(shù)據(jù)或用于存儲(chǔ)處理過程中產(chǎn)生的數(shù)據(jù)。該處理過程中產(chǎn)生的數(shù)據(jù)包括處理過程中產(chǎn)生的處理結(jié)果或中間結(jié)果。這些結(jié)果可能來自加速器的片內(nèi)核心運(yùn)算模塊,也可能來自其他運(yùn)算部件,如本發(fā)明中ALU模塊40。該片上存儲(chǔ)介質(zhì)10可以是靜態(tài)隨機(jī)存儲(chǔ)器(Static Random Access Memory ,SRAM),動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Dynamic Random Access Memory,DRAM),增強(qiáng)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(Enhanced Dynamic Random Access Memory,e_DRAM),寄存器堆(Register file,RF)等常見存儲(chǔ)介質(zhì),也可以是新型的存儲(chǔ)器件,如非易失存儲(chǔ)器(Non-Volatile Memory,NVM)或者3D存儲(chǔ)器件等等。
[0037]片內(nèi)地址索引模塊20,用于在執(zhí)行運(yùn)算時(shí)候根據(jù)輸入的索引映射至正確的存儲(chǔ)地址以將正確的數(shù)據(jù)送至多核心處理模塊30進(jìn)行處理。從而使得數(shù)據(jù)和片上存儲(chǔ)介質(zhì)可以正確的交互。這里的地址映射過程包括直接映射,算術(shù)變換等。該索引模塊可以通過硬件電路(包括但不限于FPGA、CGRA、專用集成電路ASIC、模擬電路和憶阻器等)實(shí)現(xiàn)。
[0038]多核心處理模塊30包括多個(gè)核心處理模塊31,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作。具體的,多核心處理模塊30完成神經(jīng)網(wǎng)絡(luò)算法中的大部分運(yùn)算,均為線性運(yùn)算,SP乘加操作。每個(gè)核心處理模塊31的結(jié)構(gòu)可以多種,例如一維PE(processing element,處理單元)實(shí)現(xiàn)方式,二維PE或者多維實(shí)現(xiàn)方式。單個(gè)核心處理模塊31本身不局限于特定實(shí)施原貝IJ,包括不同的實(shí)現(xiàn)方法,如systolic方案,矩陣向量乘加操作符。且多核心處理模塊30的多個(gè)核心處理模塊31之間可以為同構(gòu)設(shè)計(jì)或異構(gòu)設(shè)計(jì)。該處理模塊可以通過硬件電路(包括但不限于FPGA、CGRA、專用集成電路ASIC、模擬電路和憶阻器等)實(shí)現(xiàn)。
[0039]ALU模塊40,用于從多核心處理模塊30或片上存儲(chǔ)介質(zhì)獲取輸入數(shù)據(jù)執(zhí)行核心處理模塊無法完成的非線性運(yùn)算。該模塊可以通過硬件電路(包括但不限于FPGA、CGRA、專用集成電路AS IC、模擬電路和憶阻器等)實(shí)現(xiàn)。在本發(fā)明中,多核心處理模塊30、ALU模塊40與片上存儲(chǔ)介質(zhì)10的數(shù)據(jù)通路包括但不局限于H-TREE,或者FAT-TREE等互聯(lián)技術(shù)。
[0040]在本發(fā)明中,多個(gè)核心處理模塊31共同復(fù)用部分輸入以減少帶寬需求,所述神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)100進(jìn)行處理時(shí),將同一輸入神經(jīng)元分別發(fā)送至多核心處理模塊30的多個(gè)核心處理模塊31,而將不同的輸入權(quán)值分配至不同的核心處理模塊31,多個(gè)核心處理模塊31分別將輸入神經(jīng)元和輸入權(quán)值進(jìn)行向量內(nèi)積(乘加和)操作后得到不同的輸出神經(jīng)元。不同的輸出神經(jīng)元對(duì)應(yīng)不同的權(quán)值,也即對(duì)于處理不同的輸出神經(jīng)元,輸入神經(jīng)元是相同的,權(quán)值則不同。在本發(fā)明中,權(quán)值大部分情況下不可被多個(gè)核心復(fù)用,然而在某些情況下,如多個(gè)核心共同處理同一個(gè)特征圖時(shí),權(quán)值也可以被復(fù)用。
[0041]本發(fā)明針對(duì)神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的核心處理部分通過提升片上核心處理模塊的數(shù)目從而提升神經(jīng)網(wǎng)絡(luò)算法中的核心運(yùn)算部分處理速度,使得加速器獲得更高的性能。核心處理指的是神經(jīng)網(wǎng)絡(luò)算法中占據(jù)大部分處理時(shí)間的向量乘加操作。從而本發(fā)明能夠提升神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的運(yùn)算速度,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)性能更高,更加高效。
[0042]圖2是本發(fā)明一種神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)的另一實(shí)施例的結(jié)構(gòu)框圖,其與圖1中神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)的區(qū)別是,圖1中神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)是采用松耦合設(shè)計(jì),而圖2中神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)采用緊耦合設(shè)計(jì)。在圖2中,神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)200包括多個(gè)片上存儲(chǔ)介質(zhì)201,多個(gè)片內(nèi)地址索引模塊202,多個(gè)核心處理模塊203以及多個(gè)ALU模塊204,其中每個(gè)核心處理模塊203具有單獨(dú)的輸入接口和輸入結(jié)構(gòu),其中ALU模塊204也被劃分可以存在于每個(gè)核心中。
[0043]在圖1中,多個(gè)核心處理模塊31只完成特定的核心操作,本身不具有更多的功能,多核處理核心共享片上存儲(chǔ)介質(zhì)10和ALU模塊40。與之相比,在圖2的緊耦合設(shè)計(jì)中,每個(gè)核心處理模塊203具有自己獨(dú)立的片上存儲(chǔ)介質(zhì)201和ALU模塊204。在圖1所示的松耦合設(shè)計(jì)中多個(gè)核心可以協(xié)同處理,更易實(shí)現(xiàn)更高的性能需求,然而每個(gè)核缺少靈活性;在如圖2所示的緊耦合設(shè)計(jì)中每個(gè)核心具有一定的靈活性,然而由于每個(gè)核的獨(dú)立性也使得多核協(xié)同的復(fù)雜度更高,使得控制的復(fù)雜度增加。松耦合多適用多核同構(gòu)的設(shè)計(jì),緊耦合則多使用于多核異構(gòu)的設(shè)計(jì)。
[0044]在本發(fā)明中,神經(jīng)網(wǎng)絡(luò)可以根據(jù)多核處理模式設(shè)計(jì)進(jìn)行神經(jīng)網(wǎng)絡(luò)的劃分,其中包括從輸入神經(jīng)元進(jìn)行劃分,輸出神經(jīng)元?jiǎng)澐趾蜋?quán)值連接進(jìn)行劃分。神經(jīng)網(wǎng)絡(luò)的劃分是對(duì)于神經(jīng)網(wǎng)絡(luò)處理模式的分解,并不是將神經(jīng)網(wǎng)絡(luò)劃分成為獨(dú)立的子網(wǎng),也即劃分是算法層面的劃分,是軟件或者編譯器完成的操作,其目的是將處理劃分成為可以在多個(gè)核心處理的多個(gè)部分。
[0045]圖3是本發(fā)明一種實(shí)施例中神經(jīng)網(wǎng)絡(luò)劃分的示意圖;圖4是本發(fā)明另一實(shí)施例中神經(jīng)網(wǎng)絡(luò)劃分的示意圖;圖5是本發(fā)明又一實(shí)施例中神經(jīng)網(wǎng)絡(luò)劃分的示意圖。
[0046]在神經(jīng)網(wǎng)絡(luò)的處理中,卷積層是按照特征圖進(jìn)行組織,也即輸入是多個(gè)圖,輸出是多個(gè)圖。在圖3中,對(duì)于二維或者多維運(yùn)算,從輸出角度可按照每個(gè)核處理一層輸出特征圖進(jìn)行神經(jīng)網(wǎng)絡(luò)劃分。圖3中包括輸入特征圖1、輸入特征圖2、核心處理模塊1、核心處理模塊
2、輸出特征圖1、輸入特征圖2,每個(gè)特征圖為二維矩陣。在進(jìn)行處理時(shí),將輸入特征圖1、2分別發(fā)送至核心處理模塊1、2,核心處理模塊I處理輸出特征圖1,核心處理模塊處理輸出特征圖2,核心處理模塊I和核心處理模塊2分別處理一層輸出特征圖。也即,在進(jìn)行二維或多維處理時(shí),將輸入特征圖分別發(fā)送至多個(gè)核心處理模塊,多個(gè)核心處理模塊分別處理一層輸出特征圖。多個(gè)核心處理模塊均分別完成當(dāng)前輸出特征圖的處理后,多核心處理模塊再執(zhí)行新的輸出特征圖處理,也即只有當(dāng)所有的核完成當(dāng)前的輸出特征圖處理后才會(huì)進(jìn)行新的特征圖處理。
[0047]在實(shí)際應(yīng)用中,輸入特征圖、核心處理模塊、輸出處理模塊均可以有多個(gè)。下面以2個(gè)核(核#1、核#2)、4個(gè)輸出特征圖(輸出特征圖#1、#2、#3、#4)、4個(gè)輸入特征圖(輸入特征圖#1、#2、#3、#4)為例說明多核心處理模塊的處理方式:處理開始后,核#1負(fù)責(zé)處理輸出特征圖#I,核#2負(fù)責(zé)處理輸出特征圖#2,輸入特征圖#I被送入核#I和核#2 (也即共享輸入特征圖#1),同時(shí)相應(yīng)的權(quán)值也被送入核#1和核#2進(jìn)行處理;當(dāng)輸入特征圖#1處理完成后,輸入特征圖#2被從片上存儲(chǔ)讀取,送入核#1和核#2進(jìn)行處理(同樣讀取權(quán)值);當(dāng)核#1和核#2完成輸出特征圖#1和#2的處理后,核#1和核#2則開始處理輸出特征圖#3和#4,也即重復(fù)以上的操作過程。
[0048]如圖4所示,對(duì)于二維或者多維運(yùn)算,從輸出角度也可按照每個(gè)核處理一層輸出特征圖進(jìn)行神經(jīng)網(wǎng)絡(luò)劃分。不同的核負(fù)責(zé)處理同一特征圖的不同區(qū)域,而輸入相應(yīng)的則被送至每一個(gè)核中,權(quán)值則根據(jù)相應(yīng)的連接進(jìn)行讀取,這里權(quán)值有可能存在復(fù)用,如卷積神經(jīng)網(wǎng)中的卷積層。只有當(dāng)所有的核完成當(dāng)前的輸出特征圖處理后才會(huì)進(jìn)行新的特征圖處理。在圖4中,輸入特征圖1、和輸入特征圖2均送入核心處理模塊I和核心處理模塊2,核心處理模塊I負(fù)責(zé)處理輸出特征圖1的區(qū)域I和輸出特征圖2的區(qū)域I,核心處理模塊2負(fù)責(zé)處理輸出特征圖1的區(qū)域2和輸出特征圖2的區(qū)域2。從而,在執(zhí)行二維或者多維運(yùn)算時(shí),將輸入特征圖分別發(fā)送至多個(gè)核心處理模塊,多個(gè)核心處理模塊分別處理同一輸出特征圖的不同區(qū)域,多個(gè)核心處理模塊均分別完成當(dāng)前輸出特征圖的處理后,多核心處理模塊再執(zhí)行新的輸出特征圖處理。
[0049]如圖5所示,對(duì)于一維運(yùn)算,從輸出角度按照每個(gè)核心處理模塊處理輸出的一部分進(jìn)行神經(jīng)網(wǎng)絡(luò)劃分。每個(gè)核負(fù)責(zé)處理不同的神經(jīng)元,這里的劃分方式則可以多種多樣,并不局限于圖5所示的劃分方法。輸入被送至每一個(gè)核心處理模塊中,權(quán)值則根據(jù)相應(yīng)的連接進(jìn)行讀取,只有當(dāng)所有的核心處理模塊完成當(dāng)前的輸出特征圖處理后才會(huì)進(jìn)行新的特征圖處理。也即神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)在執(zhí)行一維運(yùn)算時(shí),將同一輸入分別發(fā)送至多個(gè)核心處理模塊,多個(gè)核心處理模塊分別處理不同的輸出神經(jīng)元,多個(gè)核心處理模塊均分別完成當(dāng)前輸出神經(jīng)元的處理后,再執(zhí)行新的輸入的處理。
[0050]神經(jīng)網(wǎng)絡(luò)劃分包括從輸入神經(jīng)元進(jìn)行劃分,輸出神經(jīng)元?jiǎng)澐趾蜋?quán)值連接進(jìn)行劃分。本發(fā)明按照輸出神經(jīng)元進(jìn)行劃分,輸出神經(jīng)元需要多個(gè)甚至全部輸入神經(jīng)元參與處理,而輸出神經(jīng)元的處理多數(shù)情況下彼此獨(dú)立。按照輸出神經(jīng)元?jiǎng)澐挚梢詮?fù)用輸入神經(jīng)元,降低帶寬需求,從而使得加速器更加高效。
[0051]圖6是本發(fā)明一種神經(jīng)網(wǎng)絡(luò)的處理方法的流程圖,該方法包括:
[0052]步驟S601,片內(nèi)地址索引模塊根據(jù)輸入的索引映射至正確的存儲(chǔ)地址;
[0053]步驟S602,根據(jù)存儲(chǔ)地址從片上存儲(chǔ)介質(zhì)中獲取輸入數(shù)據(jù);
[0054]步驟S603,將輸入數(shù)據(jù)發(fā)送至多核心處理模塊或所述ALU模塊;
[0055]步驟S604,多核心處理模塊執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作,ALU模塊根據(jù)多核心處理模塊的處理結(jié)果或者從片上存儲(chǔ)介質(zhì)中獲取的輸入數(shù)據(jù)執(zhí)行多核心處理模塊無法完成的非線性運(yùn)算;
[0056]步驟S605,將處理過程中產(chǎn)生的數(shù)據(jù)緩存至片上存儲(chǔ)介質(zhì)。
[0057]優(yōu)選的是,所述方法還包括:將同一輸入神經(jīng)元分別發(fā)送至多個(gè)核心處理模塊,將不同的輸入權(quán)值分配至不同的核心處理模塊,多個(gè)核心處理模塊分別將輸入神經(jīng)元和輸入權(quán)值進(jìn)行向量內(nèi)積操作后得到不同的輸出神經(jīng)元。
[0058]綜上所述,本發(fā)明針對(duì)神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的核心處理部分通過提升片上核心處理模塊的數(shù)目從而提升神經(jīng)網(wǎng)絡(luò)算法中的核心運(yùn)算部分處理速度,使得加速器獲得更高的性能。核心處理指的是神經(jīng)網(wǎng)絡(luò)算法中占據(jù)大部分處理時(shí)間的向量乘加操作。從而本發(fā)明能夠提升神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的運(yùn)算速度,使得神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)性能更高,更加高效。
[0059]當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng),其特征在于,包括: 至少一片上存儲(chǔ)介質(zhì)、用于存儲(chǔ)由神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)外部傳來的數(shù)據(jù)或用于存儲(chǔ)處理過程中產(chǎn)生的數(shù)據(jù); 至少一片內(nèi)地址索引模塊、用于執(zhí)行運(yùn)算時(shí)根據(jù)輸入的索引映射至正確的存儲(chǔ)地址; 由多個(gè)核心處理模塊組成的多核心處理模塊,用于執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作; 至少一 ALU模塊,用于從所述多核心處理模塊或所述片上存儲(chǔ)介質(zhì)獲取輸入數(shù)據(jù)執(zhí)行所述多核心處理模塊無法完成的非線性運(yùn)算, 其中,所述多個(gè)核心處理模塊共享所述片上存儲(chǔ)介質(zhì)以及ALU模塊,或者所述多個(gè)核心處理模塊具有獨(dú)立的所述片上存儲(chǔ)介質(zhì)以及ALU模塊。2.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述處理過程中產(chǎn)生的數(shù)據(jù)包括處理結(jié)果或中間結(jié)算結(jié)果。3.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)進(jìn)行處理時(shí),將同一輸入神經(jīng)元分別發(fā)送至所述多個(gè)核心處理模塊,將不同的輸入權(quán)值分配至不同的核心處理模塊,所述多個(gè)核心處理模塊分別將所述輸入神經(jīng)元和輸入權(quán)值進(jìn)行向量內(nèi)積操作后得到不同的輸出神經(jīng)元。4.根據(jù)權(quán)利要求3所述的處理系統(tǒng),其特征在于,所述神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)在執(zhí)行二維或者多維運(yùn)算時(shí),將輸入特征圖分別發(fā)送至所述多個(gè)核心處理模塊,所述多個(gè)核心處理模塊分別處理一層輸出特征圖。5.根據(jù)權(quán)利要求3所述的處理系統(tǒng),其特征在于,所述神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)在執(zhí)行二維或者多維運(yùn)算時(shí),將輸入特征圖分別發(fā)送至所述多個(gè)核心處理模塊,所述多個(gè)核心處理模塊分別處理同一輸出特征圖的不同區(qū)域。6.根據(jù)權(quán)利要求4或5所述的處理系統(tǒng),其特征在于,所述多個(gè)核心處理模塊均分別完成當(dāng)前輸出特征圖的處理后,所述多核心處理模塊再執(zhí)行新的輸出特征圖處理。7.根據(jù)權(quán)利要求3所述的處理系統(tǒng),其特征在于,所述神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)在執(zhí)行一維運(yùn)算時(shí),將同一輸入分別發(fā)送至所述多個(gè)核心處理模塊,所述多個(gè)核心處理模塊分別處理不同的輸出神經(jīng)元,所述多個(gè)核心處理模塊均分別完成當(dāng)前輸出神經(jīng)元的處理后,所述多核心處理模塊再執(zhí)行新的輸入的處理。8.根據(jù)權(quán)利要求1所述的處理系統(tǒng),其特征在于,所述多核心處理模塊的多個(gè)核心處理模塊之間為同構(gòu)設(shè)計(jì)或異構(gòu)設(shè)計(jì)。9.一種神經(jīng)網(wǎng)絡(luò)的處理方法,其特征在于,所述方法包括: 片內(nèi)地址索引模塊根據(jù)輸入的索引映射至正確的存儲(chǔ)地址; 根據(jù)所述存儲(chǔ)地址從片上存儲(chǔ)介質(zhì)中獲取輸入數(shù)據(jù); 將所述輸入數(shù)據(jù)發(fā)送至多核心處理模塊或所述ALU模塊; 所述多核心處理模塊執(zhí)行神經(jīng)網(wǎng)絡(luò)運(yùn)算中的向量乘加操作,所述ALU模塊根據(jù)所述多核心處理模塊的處理結(jié)果或者從所述片上存儲(chǔ)介質(zhì)中獲取的輸入數(shù)據(jù)執(zhí)行所述多核心處理模塊無法完成的非線性運(yùn)算; 將處理過程中產(chǎn)生的數(shù)據(jù)緩存至所述片上存儲(chǔ)介質(zhì)。10.根據(jù)權(quán)利要求9所述的處理方法,其特征在于,所述方法還包括: 將同一輸入神經(jīng)元分別發(fā)送至所述多個(gè)核心處理模塊,將不同的輸入權(quán)值分配至不同的核心處理模塊,所述多個(gè)核心處理模塊分別將所述輸入神經(jīng)元和輸入權(quán)值進(jìn)行向量內(nèi)積操作后得到不同的輸出神經(jīng)元。
【文檔編號(hào)】G06F15/78GK105930902SQ201610240416
【公開日】2016年9月7日
【申請日】2016年4月18日
【發(fā)明人】杜子?xùn)|, 郭崎, 陳天石, 陳云霽
【申請人】中國科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1