欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

單通道卷積層及多通道卷積層處理方法和裝置制造方法

文檔序號:6550093閱讀:592來源:國知局
單通道卷積層及多通道卷積層處理方法和裝置制造方法
【專利摘要】本發(fā)明提出單通道卷積層處理及多通道卷積層處理方法和裝置。該單通道卷積層處理方法包括:將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊;多個圖形處理器線程組將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中;多個圖形處理器線程組將多個過濾器讀取到多個圖形處理器線程組的本地存儲器中;以及多個圖形處理器線程組中的多個線程同時計算多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。該多通道卷積處理方法包括:在單通道卷積處理方法的基礎(chǔ)上,多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加。從而,無需額外空間,在存儲空間利用上達(dá)到最優(yōu),增加了存儲器的數(shù)據(jù)重用,具有極高的性能和性能功耗比。
【專利說明】單通道卷積層及多通道卷積層處理方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息處理【技術(shù)領(lǐng)域】,尤其涉及一種單通道卷積層處理方法和裝置、多通道卷積層處理方法和裝置。

【背景技術(shù)】
[0002]卷積神經(jīng)網(wǎng)絡(luò)在多種應(yīng)用,尤其是圖像、視頻應(yīng)用中被廣泛采用。其中,卷積層是卷積神經(jīng)網(wǎng)絡(luò)中的核心計算部分,在卷積層部分,以圖像為例,多個濾波器分別作用于圖像實現(xiàn)卷積運算。相關(guān)技術(shù)中,卷積運算主要通過以下兩種方式實現(xiàn):(I)濾波器直接作用于輸入圖像上進(jìn)行卷積運算,其中,圖形處理器(Graphic Processing Unit,GPU)線程組為二維格式,X維以全部圖像的數(shù)量進(jìn)行劃分,Y維以全部濾波器的數(shù)量進(jìn)行劃分,每個圖形處理器線程負(fù)責(zé)計算多個濾波器對多個圖像的卷積,但只計算一個數(shù)據(jù)點對應(yīng)的卷積核。(2)將全部圖像數(shù)據(jù)按濾波器大小進(jìn)行逐數(shù)據(jù)點展開,從而將卷積運算轉(zhuǎn)換為稠密矩陣乘法運算。
[0003]但是,相關(guān)技術(shù)存在以下問題:前一種實現(xiàn)方式中,相鄰輸出數(shù)據(jù)點對應(yīng)的輸入數(shù)據(jù)點之間數(shù)據(jù)具有重疊,例如,步長為1、濾波器大小為5*5的卷積核,相鄰輸出數(shù)據(jù)點的輸入數(shù)據(jù)點有4/5的數(shù)據(jù)重疊,導(dǎo)致大量數(shù)據(jù)被重復(fù)讀入到本地存儲中,影響性能。后一種實現(xiàn)方式中,需要將圖像展開后存儲,因此需要的存儲量和卷積核的大小成正比,例如,5*5的濾波器需要25倍的額外內(nèi)存,而9*9的濾波器則需要81倍的額外內(nèi)存,而在實際應(yīng)用中,濾波器可能會更大,圖形處理器的全局存儲開銷也將大大增加。


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

[0004]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0005]為此,本發(fā)明的第一個目的在于提出一種單通道卷積層處理方法。該方法在存儲空間利用上能夠達(dá)到最優(yōu),增加了本地存儲器的數(shù)據(jù)重用,增加了性能功耗比。
[0006]本發(fā)明的第二個目的在于提出一種單通道卷積層處理裝置。
[0007]本發(fā)明的第三個目的在于提出一種多通道卷積層處理方法。
[0008]本發(fā)明的第四個目的在于提出一種多通道卷積層處理裝置。
[0009]為了實現(xiàn)上述目的,本發(fā)明第一方面實施例的單通道卷積層處理方法,包括:將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊;多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中;所述多個圖形處理器線程組將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中;以及所述多個圖形處理器線程組中的多個線程同時計算所述多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積。
[0010]本發(fā)明實施例的單通道卷積層處理方法,至少具有以下有益效果:(I)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0011]為了實現(xiàn)上述目的,本發(fā)明第二方面實施例的單通道卷積層處理裝置,包括:劃分模塊,用于將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊;第一讀取模塊,用于通過多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中;第二讀取模塊,用于通過所述多個圖形處理器線程組將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中;以及計算模塊,用于通過所述多個圖形處理器線程組中的多個線程同時計算所述多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積。
[0012]本發(fā)明實施例的單通道卷積層處理裝置,至少具有以下有益效果:(I)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0013]為了實現(xiàn)上述目的,本發(fā)明第三方面實施例的多通道卷積層處理方法,包括:待處理數(shù)據(jù)及過濾器包含多個通道;將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊;多個圖形處理器線程組同時將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中;所述多個圖形處理器線程組同時將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中;所述多個圖形處理器線程組中的多個線程同時計算所述一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積;所述多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加;將最終卷積結(jié)果寫入所述多個圖形處理器線程組的全局存儲器中。
[0014]本發(fā)明實施例的多通道卷積層處理方法,至少具有以下有益效果:(I)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0015]為了實現(xiàn)上述目的,本發(fā)明第四方面實施例的多通道卷積層處理裝置,包括:劃分模塊,用于將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊;第一讀取模塊,用于通過多個圖形處理器線程組同時將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中;第二讀取模塊,用于通過所述多個圖形處理器線程組同時將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中;計算模塊,用于通過所述多個圖形處理器線程組中的多個線程同時計算所述一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積;累加模塊,用于通過所述多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加;寫入模塊,用于將最終卷積結(jié)果寫入所述多個圖形處理器線程組的全局存儲器中。
[0016]本發(fā)明實施例的多通道卷積層處理裝置,至少具有以下有益效果:(I)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0017]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。

【專利附圖】

【附圖說明】
[0018]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中,
[0019]圖1是根據(jù)本發(fā)明一個實施例的單通道卷積層處理方法的流程圖;
[0020]圖2是根據(jù)本發(fā)明實施例的單通道卷積層處理方法的一種示例性示意圖;
[0021]圖3是根據(jù)本發(fā)明另一個實施例的單通道卷積層處理方法的流程圖;
[0022]圖4是根據(jù)本發(fā)明實施例的非規(guī)則數(shù)據(jù)塊的讀取一種示例性示意圖;
[0023]圖5是根據(jù)本發(fā)明一個實施例的單通道卷積層處理裝置的結(jié)構(gòu)框圖;
[0024]圖6是根據(jù)本發(fā)明另一個實施例的單通道卷積層處理裝置的結(jié)構(gòu)框圖;
[0025]圖7是根據(jù)本發(fā)明一個實施例的多通道卷積層處理方法的流程圖;
[0026]圖8是根據(jù)本發(fā)明實施例的多通道卷積層處理方法的一種示例性示意圖;
[0027]圖9是根據(jù)本發(fā)明一個實施例的多通道卷積層處理裝置的結(jié)構(gòu)框圖。

【具體實施方式】
[0028]下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0029]在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。此外,在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
[0030]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
[0031 ] 下面參考附圖描述根據(jù)本發(fā)明實施例的單通道卷積層處理方法和裝置、多通道卷積層處理方法和裝置。
[0032]圖1是根據(jù)本發(fā)明一個實施例的單通道卷積層處理方法的流程圖,圖2是根據(jù)本發(fā)明實施例的單通道卷積層處理方法的一種示例性示意圖。
[0033]如圖1所示,該單通道卷積層處理方法包括:
[0034]S101,將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊。
[0035]其中,待處理數(shù)據(jù)可為圖像、視頻、音頻、文字等各種計算機(jī)可讀數(shù)據(jù)。具體地,以圖像數(shù)據(jù)為例,可以根據(jù)圖形處理器線程組的大小和圖像的大小將圖像劃分為多個數(shù)據(jù)塊,其中,圖形處理器線程組中包括多個線程。例如,如圖2所示,如果圖形處理器線程組的大小32*16,圖像(imageO)的大小為64*64(Width = 64,Height = 64),則可以將圖像分為8個數(shù)據(jù)塊(BlockO至Block7),每個數(shù)據(jù)塊的大小為32*16 (SizeA = 32, SizeB = 16),當(dāng)然,也可以不平均劃分,以每個圖形處理器線程組能夠處理為宜,對此本發(fā)明的實施例不進(jìn)行限定。應(yīng)理解,上述圖2所示的實施例僅是示意性的,并非僅能通過該實施例來實現(xiàn),也并非僅適用于該實施例,本領(lǐng)域技術(shù)人員可根據(jù)該實施例將其應(yīng)用到根據(jù)任何大小的數(shù)據(jù)和任何大小的圖形處理器線程組劃分多個數(shù)據(jù)塊中,這些劃分多個數(shù)據(jù)塊的擴(kuò)展或變化,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。
[0036]S102,多個圖形處理器線程組將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中。
[0037]具體地,每個圖形處理器線程組分別讀取一個對應(yīng)的數(shù)據(jù)塊,并將對應(yīng)的數(shù)據(jù)塊讀取到每個圖形處理器線程組對應(yīng)的本地存儲器中。
[0038]S103,多個圖形處理器線程組將多個過濾器讀取到多個圖形處理器線程組的本地存儲器中。
[0039]具體地,每個圖形處理器線程組分別將多個過濾器讀取到每個圖形處理器線程組對應(yīng)的本地存儲器中。
[0040]在本發(fā)明的一個實施例中,S103還可以在S102之前執(zhí)行,或者S102和S103還可以同時執(zhí)行,對此,本發(fā)明的實施例不進(jìn)行限定。
[0041]S104,多個圖形處理器線程組中的多個線程同時計算多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0042]其中,數(shù)據(jù)點為一個單位數(shù)據(jù)。具體地,每個圖形處理器線程組分別在對應(yīng)的本地存儲器中存儲了對應(yīng)的數(shù)據(jù)塊和多個過濾器,每個圖形處理器線程組中的多個線程分別計算數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0043]本發(fā)明實施例的單通道卷積層處理方法,至少具有以下有益效果:(I)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0044]在本發(fā)明的一個實施例中,多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。當(dāng)然,多個數(shù)據(jù)塊也可以是規(guī)則數(shù)據(jù)塊,對此,本發(fā)明的實施例不進(jìn)行限定。
[0045]圖3是根據(jù)本發(fā)明另一個實施例的單通道卷積層處理方法的流程圖,圖4是根據(jù)本發(fā)明實施例的非規(guī)則數(shù)據(jù)塊的讀取一種示例性示意圖。
[0046]如圖3所示,該單通道卷積層處理方法包括:
[0047]S301,將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊。
[0048]其中,待處理數(shù)據(jù)可為圖像、視頻、音頻、文字等各種計算機(jī)可讀數(shù)據(jù)。具體地,以圖像數(shù)據(jù)為例,可以根據(jù)圖形處理器線程組的大小和圖像的大小將圖像劃分為多個數(shù)據(jù)塊,其中,圖形處理器線程組中包括多個線程。例如,如圖2所示,如果圖形處理器線程組的大小32*16,圖像(imageO)的大小為64*64(Width = 64,Height = 64),則可以將圖像分為8個數(shù)據(jù)塊(BlockO至Block7),每個數(shù)據(jù)塊的大小為32*16 (SizeA = 32, SizeB = 16),當(dāng)然,也可以不平均劃分,以每個圖形處理器線程組能夠處理為宜,對此本發(fā)明的實施例不進(jìn)行限定。應(yīng)理解,上述圖2所示的實施例僅是示意性的,并非僅能通過該實施例來實現(xiàn),也并非僅適用于該實施例,本領(lǐng)域技術(shù)人員可根據(jù)該實施例將其應(yīng)用到根據(jù)任何大小的數(shù)據(jù)和任何大小的圖形處理器線程組劃分多個數(shù)據(jù)塊中,這些劃分多個數(shù)據(jù)塊的擴(kuò)展或變化,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。
[0049]S302,將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配。
[0050]在本發(fā)明的一個實施例中,在多個圖形處理器線程組將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中時,還將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中。由于填充數(shù)據(jù)的原因,數(shù)據(jù)塊的數(shù)據(jù)點多于圖形處理器線程組中的總圖形處理器線程數(shù),如果將數(shù)據(jù)塊的數(shù)據(jù)點與圖形處理器線程做無縫的一一映射,則會帶來復(fù)雜的下標(biāo)運算,增加數(shù)據(jù)傳輸延遲。對于這種非規(guī)則數(shù)據(jù)的讀取,采用一種簡單的圖形處理器線線程組與非規(guī)則數(shù)據(jù)塊映射,具體地,將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配。
[0051]例如,如圖4所示,為一個數(shù)據(jù)塊,并將該數(shù)據(jù)塊劃分為Block loadO、Blockloadl> Block load2、Block load3 該 4 個子數(shù)據(jù)塊。
[0052]S303,對應(yīng)的圖形處理器線程組依次將多個子數(shù)據(jù)塊讀取到圖形處理器線程組的本地存儲器中。
[0053]例如,如圖4所示,灰色陰影部分為對應(yīng)的圖形處理器線程組第一次讀取的待處理數(shù)據(jù),之后,可以將灰色陰影部分右側(cè)區(qū)域的數(shù)據(jù)讀取,再依次分兩次讀取剩余部分的數(shù)據(jù),數(shù)據(jù)塊讀取分為4次完成,盡管第1、2及3次讀取中有大部分線程空閑,但是避免了復(fù)雜的下標(biāo)運算。
[0054]S304,多個圖形處理器線程組將多個過濾器讀取到多個圖形處理器線程組的本地存儲器中。
[0055]具體地,每個圖形處理器線程組分別將多個過濾器讀取到每個圖形處理器線程組對應(yīng)的本地存儲器中。
[0056]在本發(fā)明的一個實施例中,S304可以在S302之前執(zhí)行,或者S304還可以和S302或S303同時執(zhí)行,對此,本發(fā)明的實施例不進(jìn)行限定。
[0057]S305,多個圖形處理器線程組中的多個線程同時計算多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0058]其中,數(shù)據(jù)點為一個單位數(shù)據(jù)。具體地,每個圖形處理器線程組分別在對應(yīng)的本地存儲器中存儲了對應(yīng)的數(shù)據(jù)塊和多個過濾器,在讀取數(shù)據(jù)塊的同時,每個圖形處理器線程組中的多個線程分別計算數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0059]本發(fā)明實施例的單通道卷積層處理方法,在進(jìn)行數(shù)據(jù)塊讀取時,將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配,對應(yīng)的圖形處理器線程組依次將多個子數(shù)據(jù)塊讀取到圖形處理器線程組的本地存儲器中,特別適用于非規(guī)則數(shù)據(jù)塊讀取方法,避免了復(fù)雜的下標(biāo)運算,減少了數(shù)據(jù)傳輸延遲。
[0060]為了實現(xiàn)上述實施例,本發(fā)明的實施例還提出一種單通道卷積層處理裝置。
[0061]圖5是根據(jù)本發(fā)明一個實施例的單通道卷積層處理裝置的結(jié)構(gòu)框圖。
[0062]如圖5所示,單通道卷積層處理裝置100包括:劃分模塊110、第一讀取模塊120、第二讀取模塊130和計算模塊140。
[0063]具體地,劃分模塊110用于將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊。其中,待處理數(shù)據(jù)可為圖像、視頻、音頻、文字等各種計算機(jī)可讀數(shù)據(jù)。更具體地,以圖像數(shù)據(jù)為例,劃分模塊110可以根據(jù)圖形處理器線程組的大小和圖像的大小將圖像劃分為多個數(shù)據(jù)塊,其中,圖形處理器線程組中包括多個線程。例如,如圖2所示,如果圖形處理器線程組的大小32*16,圖像(imageO)的大小為64*64 (Width = 64, Height = 64),則可以將圖像分為8個數(shù)據(jù)塊(BlockO至Block7),每個數(shù)據(jù)塊的大小為32*16 (SizeA = 32, SizeB = 16),當(dāng)然,也可以不平均劃分,以每個圖形處理器線程組能夠處理為宜,對此本發(fā)明的實施例不進(jìn)行限定。應(yīng)理解,上述圖2所示的實施例僅是示意性的,并非僅能通過該實施例來實現(xiàn),也并非僅適用于該實施例,本領(lǐng)域技術(shù)人員可根據(jù)該實施例將其應(yīng)用到根據(jù)任何大小的數(shù)據(jù)和任何大小的圖形處理器線程組劃分多個數(shù)據(jù)塊中,這些劃分多個數(shù)據(jù)塊的擴(kuò)展或變化,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。
[0064]第一讀取模塊120用于通過多個圖形處理器線程組將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中。更具體地,每個圖形處理器線程組分別讀取一個對應(yīng)的數(shù)據(jù)塊,并將對應(yīng)的數(shù)據(jù)塊讀取到每個圖形處理器線程組對應(yīng)的本地存儲器中。
[0065]第二讀取模塊130用于通過多個圖形處理器線程組將多個過濾器讀取到多個圖形處理器線程組的本地存儲器中。更具體地,每個圖形處理器線程組分別將多個過濾器讀取到每個圖形處理器線程組對應(yīng)的本地存儲器中。
[0066]計算模塊140用于通過多個圖形處理器線程組中的多個線程同時計算多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。其中,數(shù)據(jù)點為一個單位數(shù)據(jù)。更具體地,每個圖形處理器線程組分別在對應(yīng)的本地存儲器中存儲了對應(yīng)的數(shù)據(jù)塊和多個過濾器,在讀取數(shù)據(jù)塊的同時,每個圖形處理器線程組中的多個線程分別計算數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0067]本發(fā)明實施例的單通道卷積層處理裝置,至少具有以下有益效果:(I)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0068]在本發(fā)明的一個實施例中,多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。當(dāng)然,多個數(shù)據(jù)塊也可以是規(guī)則數(shù)據(jù)塊,對此,本發(fā)明的實施例不進(jìn)行限定。
[0069]圖6是根據(jù)本發(fā)明另一個實施例的單通道卷積層處理裝置的結(jié)構(gòu)框圖。
[0070]如圖6所示,單通道卷積層處理裝置100包括:劃分模塊110、第一讀取模塊120、第二讀取模塊130和計算模塊140,其中第一讀取模塊120包括劃分單元121和讀取單元122。
[0071]具體地,劃分單元121用于將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配。
[0072]在本發(fā)明的一個實施例中,第一讀取模塊120在多個圖形處理器線程組將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中時,還用于將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中。由于填充數(shù)據(jù)的原因,數(shù)據(jù)塊的數(shù)據(jù)點多于圖形處理器線程組中的總圖形處理器線程數(shù),如果將數(shù)據(jù)塊的數(shù)據(jù)點與圖形處理器線程做無縫的一一映射,則會帶來復(fù)雜的下標(biāo)運算,增加數(shù)據(jù)傳輸延遲。對于這種非規(guī)則數(shù)據(jù)的讀取,采用一種簡單的圖形處理器線線程組與非規(guī)則數(shù)據(jù)塊映射,具體地,通過劃分單元121將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配。
[0073]例如,如圖4所示,為一個數(shù)據(jù)塊,并將該數(shù)據(jù)塊劃分為Block loadO、Blockloadl> Block load2、Block load3 該 4 個子數(shù)據(jù)塊。
[0074]讀取單元121用于通過對應(yīng)的圖形處理器線程組依次將多個子數(shù)據(jù)塊讀取到圖形處理器線程組的本地存儲器中。例如,如圖4所示,灰色陰影部分為對應(yīng)的圖形處理器線程組第一次讀取的待處理數(shù)據(jù),之后,可以將灰色陰影部分右側(cè)區(qū)域的數(shù)據(jù)讀取,再依次分兩次讀取剩余部分的數(shù)據(jù),數(shù)據(jù)塊讀取分為4次完成,盡管第1、2及3次讀取中有大部分線程空閑,但是避免了復(fù)雜的下標(biāo)運算。
[0075]本發(fā)明實施例的單通道卷積層處理裝置,在進(jìn)行數(shù)據(jù)塊讀取時,將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配,對應(yīng)的圖形處理器線程組依次將多個子數(shù)據(jù)塊讀取到圖形處理器線程組的本地存儲器中,特別適用于非規(guī)則數(shù)據(jù)塊讀取方法,避免了復(fù)雜的下標(biāo)運算,減少了數(shù)據(jù)傳輸延遲。
[0076]本發(fā)明的實施例還提出一種多通道卷積層處理方法。
[0077]圖7是根據(jù)本發(fā)明一個實施例的多通道卷積層處理方法的流程圖,圖8是根據(jù)本發(fā)明實施例的多通道卷積層處理方法的一種示例性示意圖。
[0078]如圖7所示,該多通道卷積層處理方法包括:
[0079]S701,待處理數(shù)據(jù)及過濾器包含多個通道,將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊。
[0080]其中,待處理數(shù)據(jù)可為圖像、視頻、音頻、文字等各種計算機(jī)可讀數(shù)據(jù)。具體地,以圖像數(shù)據(jù)為例,多通道卷積層處理的輸入數(shù)據(jù)(待處理數(shù)據(jù))包括多個圖像和多個過濾器,且每個圖像及每個過濾器具有多個通道。如圖8所示,輸入數(shù)據(jù)包括64個圖像(ImageO至Image63)和64個過濾器(FilterO至Filter63),且每個圖像具有三個通道(ChannelO,Channell 和 Channe 12),每個過濾器具有三個通道(Channe I O, Channell 和 Channe 12),應(yīng)理解,上述圖8所示的實施例僅是示意性的,并非僅能通過該實施例來實現(xiàn),也并非僅適用于該實施例,本領(lǐng)域技術(shù)人員可根據(jù)該實施例處理任何數(shù)量具有任何通道的數(shù)據(jù)和過濾器。
[0081]另外,將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊可參考上述實施例的單通道卷積層處理方法的劃分方法,在此不再贅述。
[0082]S702,多個圖形處理器線程組同時將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中。
[0083]S703,多個圖形處理器線程組同時將多個過濾器讀取到多個圖形處理器線程組的本地存儲器中。
[0084]在本發(fā)明的一個實施例中,以圖像數(shù)據(jù)為例,在S702之前還包括:將多幅圖像和多個過濾器讀取到圖形處理器的全局存儲器中。具體地,多個圖像及多個過濾器存儲在CPU內(nèi)存(Host memory)中,首先,將多個圖像及多個過濾器通過PCIE (—種總線接口)從CPU內(nèi)存(Host memory)拷貝到圖形處理器的全局存儲器(Global memory)中(即Transferto global memory);然后,圖形處理器的每個計算單元(Computing unit)中多線程協(xié)作將數(shù)據(jù)從全局存儲器拷貝到本地存儲器(Local memory)中(即Load to local memory)。
[0085]在本發(fā)明的一個實施例中,S703還可以在S702之前執(zhí)行,或者S702和S703還可以同時執(zhí)行,對此,本發(fā)明的實施例不進(jìn)行限定。
[0086]S704,多個圖形處理器線程組中的多個線程同時計算一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0087]其中,數(shù)據(jù)點為一個單位數(shù)據(jù)。具體地,圖形處理器的每個計算單元具有圖形處理器線程組,每個計算單元中的每個線程利用本地存儲中的待處理數(shù)據(jù)及濾波器進(jìn)行卷積運算。例如,計算一個通道ChannelO多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0088]S705,多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加。
[0089]S706,將最終卷積結(jié)果寫入多個圖形處理器線程組的全局存儲器中。
[0090]即如圖8 所不,Write back to global memory。
[0091]本發(fā)明實施例的多通道卷積層處理方法,至少具有以下有益效果:(1)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0092]在本發(fā)明的一個實施例中,在多個圖形處理器線程組同時將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中時,還將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中,填充之后的多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。當(dāng)然,多個數(shù)據(jù)塊也可以是規(guī)則數(shù)據(jù)塊,對此,本發(fā)明的實施例不進(jìn)行限定。
[0093]由于填充數(shù)據(jù)的原因,數(shù)據(jù)塊的數(shù)據(jù)點多于圖形處理器線程組中的總圖形處理器線程數(shù),如果將數(shù)據(jù)塊的數(shù)據(jù)點與圖形處理器線程做無縫的一一映射,則會帶來復(fù)雜的下標(biāo)運算,增加數(shù)據(jù)傳輸延遲。對于這種非規(guī)則數(shù)據(jù)的讀取,采用一種簡單的圖形處理器線線程組與非規(guī)則數(shù)據(jù)塊映射,具體地,S702具體包括以下步驟:將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配;以及對應(yīng)的圖形處理器線程組依次將多個子數(shù)據(jù)塊讀取到圖形處理器線程組的本地存儲器中。具體如上述單通道卷積層處理方法所述,在此不再贅述。由此,避免了復(fù)雜的下標(biāo)運算,減少了數(shù)據(jù)傳輸延遲。
[0094]在本發(fā)明的一個實施例中,多個圖形處理器線程組中的多個線程同時計算一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積包括:將多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)與多個過濾器的卷積進(jìn)行寄存器劃塊,提高數(shù)據(jù)重用性。
[0095]為了實現(xiàn)上述實施例,本發(fā)明的實施例還提出一種多通道卷積層處理裝置。
[0096]圖9是根據(jù)本發(fā)明一個實施例的多通道卷積層處理裝置的結(jié)構(gòu)框圖。
[0097]如圖9所示,該多通道卷積層處理裝置200包括:劃分模塊210、第一讀取模塊220、第二讀取模塊230、第三讀取模塊240、計算模塊250、累加模塊260和寫入模塊270。
[0098]其中,待處理數(shù)據(jù)可為圖像、視頻、音頻、文字等各種計算機(jī)可讀數(shù)據(jù)。其中,以圖像數(shù)據(jù)為例,待處理數(shù)據(jù)及過濾器包含多個通道,即多通道卷積層處理的輸入數(shù)據(jù)(待處理數(shù)據(jù))包括多個圖像和多個過濾器,且每個圖像及每個過濾器具有多個通道。如圖8所示,輸入數(shù)據(jù)包括64個圖像(ImageO至Image63)和64個過濾器(FilterO至Filter63),且每個圖像具有三個通道(ChannelO, Channell和Channel2),每個過濾器具有三個通道(Channe 10, Channell和Channel2),應(yīng)理解,上述圖8所示的實施例僅是示意性的,并非僅能通過該實施例來實現(xiàn),也并非僅適用于該實施例,本領(lǐng)域技術(shù)人員可根據(jù)該實施例處理任何數(shù)量具有任何通道的數(shù)據(jù)和過濾器。
[0099]具體地,劃分模塊210用于將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊,將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊可參考上述實施例的單通道卷積層處理方法的劃分方法,在此不再贅述。
[0100]第一讀取模塊220用于通過多個圖形處理器線程組同時將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中。第二讀取模塊230用于通過多個圖形處理器線程組同時將多個過濾器讀取到多個圖形處理器線程組的本地存儲器中。
[0101]在本發(fā)明的一個實施例中,以圖像數(shù)據(jù)為例,第三讀取模塊240用于將多幅圖像和多個過濾器讀取到圖形處理器的全局存儲器中。具體地,多個圖像及多個過濾器存儲在CPU內(nèi)存(Host memory)中,首先,第三讀取模塊240將多個圖像及多個過濾器通過PCIE(—種總線接口 )從CPU內(nèi)存(Host memory)拷貝到圖形處理器的全局存儲器(Global memory)中(即Transfer to global memory);然后,圖形處理器的每個計算單兀(Computing unit)中多線程協(xié)作將數(shù)據(jù)從全局存儲器拷貝到本地存儲器(Local memory)中(即Load to local memory),即通過第一讀取模塊220和第二讀取模塊230進(jìn)行讀取。
[0102]計算模塊250用于通過多個圖形處理器線程組中的多個線程同時計算一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。其中,數(shù)據(jù)點為一個單位數(shù)據(jù)。更具體地,圖形處理器的每個計算單元具有圖形處理器線程組,每個計算單元中的每個線程利用本地存儲中的待處理數(shù)據(jù)及濾波器進(jìn)行卷積運算。例如,計算一個通道ChannelO多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與多個過濾器的卷積。
[0103]累加模塊260用于通過多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加。寫入模塊270用于將最終卷積結(jié)果寫入多個圖形處理器線程組的全局存儲器中。
[0104]本發(fā)明實施例的多通道卷積層處理裝置,至少具有以下有益效果:(1)直接在輸入數(shù)據(jù)上進(jìn)行卷積,無需進(jìn)行數(shù)據(jù)的逐數(shù)據(jù)點展開,從而無須額外的內(nèi)存開銷,在存儲空間利用上能夠達(dá)到最優(yōu);(2)同一圖形處理器線程組中的圖形處理器線程計算連續(xù)的輸出數(shù)據(jù)點并使用連續(xù)的輸入數(shù)據(jù)點,增加了本地存儲器的數(shù)據(jù)重用,并將所需的待處理數(shù)據(jù)和卷積核數(shù)據(jù)臨時保存在高速的圖形處理器的本地存儲器中,降低了低速的圖形處理器全局存儲器的讀取次數(shù),從而獲得很高的性能;另外還減少了數(shù)據(jù)的移動,又大大降低了功耗,增加了性能功耗比;(3)在劃分時,可以使用寄存器分塊方法來減少訪存計算比,雖然相關(guān)技術(shù)中也可利用寄存器分塊方法,但是由于其數(shù)據(jù)組織方式導(dǎo)致其產(chǎn)生效果的條件比較嚴(yán)格。
[0105]在本發(fā)明的一個實施例中,第一讀取模塊220在多個圖形處理器線程組同時將多個數(shù)據(jù)塊讀取到多個圖形處理器線程組的本地存儲器中時,還用于將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中,填充之后的多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。當(dāng)然,多個數(shù)據(jù)塊也可以是規(guī)則數(shù)據(jù)塊,對此,本發(fā)明的實施例不進(jìn)行限定。
[0106]由于填充數(shù)據(jù)的原因,數(shù)據(jù)塊的數(shù)據(jù)點多于圖形處理器線程組中的總圖形處理器線程數(shù),如果將數(shù)據(jù)塊的數(shù)據(jù)點與圖形處理器線程做無縫的一一映射,則會帶來復(fù)雜的下標(biāo)運算,增加數(shù)據(jù)傳輸延遲。對于這種非規(guī)則數(shù)據(jù)的讀取,采用一種簡單的圖形處理器線線程組與非規(guī)則數(shù)據(jù)塊映射,具體地,第一讀取模塊220包括劃分單元和讀取單元(圖中未示出),劃分單元用于將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配;讀取單元用于通過對應(yīng)的圖形處理器線程組依次將多個子數(shù)據(jù)塊讀取到圖形處理器線程組的本地存儲器中。具體如上述單通道卷積層處理方法所述,在此不再贅述。由此,避免了復(fù)雜的下標(biāo)運算,減少了數(shù)據(jù)傳輸延遲。
[0107]在本發(fā)明的一個實施例中,計算模塊250具體用于:將多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)與多個過濾器的卷積進(jìn)行寄存器劃塊,提高數(shù)據(jù)重用性。
[0108]應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0109]在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
[0110]盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
【權(quán)利要求】
1.一種單通道卷積層處理方法,其特征在于,包括: 將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中; 所述多個圖形處理器線程組將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中;以及 所述多個圖形處理器線程組中的多個線程同時計算所述多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,使用多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到圖形處理器線程的本地存儲器中包括: 將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配;以及 所述對應(yīng)的圖形處理器線程組依次將所述多個子數(shù)據(jù)塊讀取到所述圖形處理器線程組的本地存儲器中。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在所述多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到所 述多個圖形處理器線程組的本地存儲器中時,還將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中。
5.一種單通道卷積層處理裝置,其特征在于,包括: 劃分模塊,用于將待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 第一讀取模塊,用于通過多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中; 第二讀取模塊,用于通過所述多個圖形處理器線程組將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中;以及 計算模塊,用于通過所述多個圖形處理器線程組中的多個線程同時計算所述多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。
7.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述第一讀取模塊包括: 劃分單元,用于將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配;以及 讀取單元,用于通過所述對應(yīng)的圖形處理器線程組依次將所述多個子數(shù)據(jù)塊讀取到所述圖形處理器線程組的本地存儲器中。
8.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述第一讀取模塊在所述多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中時,還還用于將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中。
9.一種多通道卷積層處理方法,其特征在于,包括: 待處理數(shù)據(jù)及過濾器包含多個通道; 將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 多個圖形處理器線程組同時將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中; 所述多個圖形處理器線程組同時將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中; 所述多個圖形處理器線程組中的多個線程同時計算所述一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積; 所述多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加; 將最終卷積結(jié)果寫入所述多個圖形處理器線程組的全局存儲器中。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在所述多個圖形處理器線程組同時將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中時,還將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中,所述填充之后的多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。
11.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述待處理數(shù)據(jù)為圖像數(shù)據(jù),所述方法進(jìn)一步包括: 將所述多幅圖像和多個過濾器讀取到所述圖形處理器的全局存儲器中。
12.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,使用多個圖形處理器線程組將所述多個數(shù)據(jù)塊讀取到圖形處理器線程的本地存儲器中包括: 將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配;以及 所述對應(yīng)的圖形處理器線程組依次將所述多個子數(shù)據(jù)塊讀取到所述圖形處理器線程組的本地存儲器中。
13.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述多個圖形處理器線程組中的多個線程同時計算所述一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積包括: 將所述多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)與多個過濾器的卷積進(jìn)行寄存器劃塊,提高數(shù)據(jù)重用性。
14.一種多通道卷積層處理裝置,其特征在于,待處理數(shù)據(jù)及過濾器包含多個通道,所述裝置包括: 劃分模塊,用于將每個通道的待處理數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 第一讀取模塊,用于通過多個圖形處理器線程組同時將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中; 第二讀取模塊,用于通過所述多個圖形處理器線程組同時將多個過濾器讀取到所述多個圖形處理器線程組的本地存儲器中; 計算模塊,用于通過所述多個圖形處理器線程組中的多個線程同時計算所述一個通道多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)點與所述多個過濾器的卷積; 累加模塊,用于通過所述多個圖形處理器線程組中的多個線程依次進(jìn)行多個通道的卷積,并將每個通道的卷積結(jié)果進(jìn)行累加; 寫入模塊,用于將最終卷積結(jié)果寫入所述多個圖形處理器線程組的全局存儲器中。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述第一讀取模塊在所述多個圖形處理器線程組同時將所述多個數(shù)據(jù)塊讀取到所述多個圖形處理器線程組的本地存儲器中時,還用于將對應(yīng)的填充數(shù)據(jù)讀取到本地存儲器中,所述填充之后的多個數(shù)據(jù)塊是非規(guī)則數(shù)據(jù)塊。
16.根據(jù)權(quán)利要求14或15所述的裝置,其特征在于,所述待處理數(shù)據(jù)為圖像數(shù)據(jù),所述裝置還包括: 第三讀取模塊,用于將所述多幅圖像和多個過濾器讀取到所述圖形處理器的全局存儲器中。
17.根據(jù)權(quán)利要求14或15所述的裝置,其特征在于,所述第一讀取模塊包括: 劃分單元,用于將每個數(shù)據(jù)塊劃分為多個子數(shù)據(jù)塊,其中至少一個子數(shù)據(jù)塊的數(shù)據(jù)量與對應(yīng)的圖形處理器線程組中的線程數(shù)目匹配;以及 讀取單元,用于通過所述對應(yīng)的圖形處理器線程組依次將所述多個子數(shù)據(jù)塊讀取到所述圖形處理器線程組的本地存儲器中。
18.根據(jù)權(quán)利要求14或15所述的裝置,其特征在于,所述計算模塊具體用于: 將所述多個數(shù)據(jù)塊中對應(yīng)的數(shù)據(jù)與多個過濾器的卷積進(jìn)行寄存器劃塊,提高數(shù)據(jù)重用性。
【文檔編號】G06F12/02GK104077233SQ201410274196
【公開日】2014年10月1日 申請日期:2014年6月18日 優(yōu)先權(quán)日:2014年6月18日
【發(fā)明者】吳韌, 李士剛, 都大龍, 劉文志 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
象州县| 沽源县| 岢岚县| 正阳县| 朝阳区| 阿拉善右旗| 泊头市| 益阳市| 罗田县| 恭城| 家居| 江陵县| 建水县| 叙永县| 罗甸县| 垫江县| 建水县| 雷州市| 忻州市| 隆回县| 颍上县| 永济市| 清原| 甘德县| 保康县| 汉阴县| 祁东县| 澎湖县| 高陵县| 永丰县| 云阳县| 中牟县| 新丰县| 临汾市| 米林县| 久治县| 乌兰察布市| 焦作市| 远安县| 梁平县| 新和县|