本公開(kāi)涉及一種電子設(shè)備及其控制方法。更具體地,本公開(kāi)涉及通過(guò)使用深度學(xué)習(xí)模型對(duì)輸入數(shù)據(jù)執(zhí)行卷積計(jì)算的電子設(shè)備及其控制方法。
背景技術(shù):
1、深度學(xué)習(xí)模型中的卷積神經(jīng)網(wǎng)絡(luò)(cnn)可通過(guò)卷積計(jì)算獲取輸出數(shù)據(jù)。然而,盡管操作具有高準(zhǔn)確度,但是對(duì)輸入數(shù)據(jù)的卷積計(jì)算可能具有長(zhǎng)的計(jì)算時(shí)間。計(jì)算時(shí)間可能很長(zhǎng),因?yàn)椴僮餍枰鎯?chǔ)在存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram))中的數(shù)據(jù)的更多調(diào)用(或訪問(wèn))和長(zhǎng)調(diào)用時(shí)間。
2、另外,由于卷積計(jì)算的特征,可增加調(diào)用一次的數(shù)據(jù)被重復(fù)調(diào)用的次數(shù),并且重復(fù)調(diào)用越多,計(jì)算時(shí)間越長(zhǎng)。
3、另外,可存在將輸入數(shù)據(jù)存儲(chǔ)在處理器(例如,中央處理單元(cpu))中以較少調(diào)用存儲(chǔ)在存儲(chǔ)器(例如,dram)中的數(shù)據(jù)的方法。然而,該方法可能具有在輸入數(shù)據(jù)較大的情況下分配大量處理器資源的問(wèn)題。另外,在處理器的存儲(chǔ)空間小于輸入數(shù)據(jù)的大小的情況下,不能使用該方法。
4、以上信息僅作為背景信息被呈現(xiàn),以幫助理解本公開(kāi)。關(guān)于上述中的任何是否可適用為關(guān)于本公開(kāi)的現(xiàn)有技術(shù),沒(méi)有做出確定,并且沒(méi)有做出斷言。
技術(shù)實(shí)現(xiàn)思路
1、技術(shù)方案
2、本公開(kāi)的各方面是至少解決上述問(wèn)題和/或缺點(diǎn),并且至少提供下面描述的優(yōu)點(diǎn)。因此,本公開(kāi)的一方面是提供一種電子設(shè)備及其控制方法,該電子設(shè)備對(duì)輸入數(shù)據(jù)和填充數(shù)據(jù)進(jìn)行分類以在卷積計(jì)算處理中將輸入數(shù)據(jù)和填充數(shù)據(jù)劃分并存儲(chǔ)在多個(gè)緩沖器中。
3、另外的方面將部分地在下面的描述中闡述,并且部分地將從描述中顯而易見(jiàn),或者可通過(guò)實(shí)踐所呈現(xiàn)的實(shí)施例被獲知。
4、根據(jù)本公開(kāi)的一個(gè)方面,提供了一種電子設(shè)備。所述電子設(shè)備包括存儲(chǔ)器,存儲(chǔ)輸入數(shù)據(jù);以及至少一個(gè)處理器,包括卷積計(jì)算模塊、第一緩沖器、第二緩沖器和第三緩沖器,其中,所述至少一個(gè)處理器被配置為:在獲取用于輸入數(shù)據(jù)的卷積計(jì)算指令的情況下,獲取與輸入數(shù)據(jù)對(duì)應(yīng)的填充數(shù)據(jù),基于緩沖器的大小和填充數(shù)據(jù)的大小來(lái)識(shí)別計(jì)算處理單元,基于計(jì)算處理單元和緩沖器的大小將輸入數(shù)據(jù)和填充數(shù)據(jù)分類為多個(gè)目標(biāo)區(qū)域,將所述多個(gè)目標(biāo)區(qū)域中的一個(gè)目標(biāo)區(qū)域存儲(chǔ)在第一緩沖器、第二緩沖器或第三緩沖器中,基于計(jì)算處理單元和所述多個(gè)目標(biāo)區(qū)域獲取用于卷積計(jì)算指令的目標(biāo)數(shù)據(jù),以及控制卷積計(jì)算模塊基于目標(biāo)數(shù)據(jù)和內(nèi)核數(shù)據(jù)執(zhí)行卷積計(jì)算。
5、所述至少一個(gè)處理器可被配置為基于輸入數(shù)據(jù)的大小、輸出數(shù)據(jù)的大小、內(nèi)核數(shù)據(jù)的大小或表示應(yīng)用內(nèi)核數(shù)據(jù)的距離的步幅的大小中的至少一個(gè)來(lái)確定填充數(shù)據(jù)的大小。
6、所述至少一個(gè)處理器可被配置為將緩沖器的行大小確定為計(jì)算處理單元的行大小,并且將緩沖器的列大小和填充數(shù)據(jù)的列大小的總和確定為計(jì)算處理單元的列大小。
7、所述至少一個(gè)處理器可被配置為基于緩沖器的大小將輸入數(shù)據(jù)分類為第一子區(qū)域、第二子區(qū)域和第三子區(qū)域,識(shí)別僅包括填充數(shù)據(jù)的填充區(qū)域,基于計(jì)算處理單元的位置和緩沖器的大小識(shí)別包括第一子區(qū)域中包括的數(shù)據(jù)的第一目標(biāo)區(qū)域、包括第二子區(qū)域中的包括數(shù)據(jù)的第二目標(biāo)區(qū)域和包括第三子區(qū)域中包括的數(shù)據(jù)的第三目標(biāo)區(qū)域,以及將填充區(qū)域、第一目標(biāo)區(qū)域、第二目標(biāo)區(qū)域和第三目標(biāo)區(qū)域中的至少一個(gè)存儲(chǔ)在第一緩沖器、第二緩沖器或第三緩沖器中的至少一個(gè)中。
8、所述至少一個(gè)處理器可被配置為基于計(jì)算處理單元的位置和緩沖器的大小來(lái)識(shí)別包括存儲(chǔ)在第一子區(qū)域中的數(shù)據(jù)或與第一子區(qū)域?qū)?yīng)的填充數(shù)據(jù)中的至少一個(gè)的第一目標(biāo)區(qū)域,基于計(jì)算處理單元的位置和緩沖器的大小來(lái)識(shí)別包括存儲(chǔ)在第二子區(qū)域中的數(shù)據(jù)或與第二子區(qū)域?qū)?yīng)的填充數(shù)據(jù)中的至少一個(gè)的第二目標(biāo)區(qū)域,以及基于計(jì)算處理單元的位置和緩沖器的大小,識(shí)別包括存儲(chǔ)在第三子區(qū)域中的數(shù)據(jù)或與第三子區(qū)域?qū)?yīng)的填充數(shù)據(jù)中的至少一個(gè)的第三目標(biāo)區(qū)域。
9、所述至少一個(gè)處理器可被配置為將填充區(qū)域存儲(chǔ)在第一緩沖器中,將第一目標(biāo)區(qū)域存儲(chǔ)在第二緩沖器中,以及將第二目標(biāo)區(qū)域存儲(chǔ)在第三緩沖器中。
10、所述至少一個(gè)處理器可被配置為將第一目標(biāo)區(qū)域存儲(chǔ)在第一緩沖器中,將第二目標(biāo)區(qū)域存儲(chǔ)在第二緩沖器中,以及將第三目標(biāo)區(qū)域存儲(chǔ)在第三緩沖器中。
11、所述至少一個(gè)處理器可被配置為將第二目標(biāo)區(qū)域存儲(chǔ)在第一緩沖器中,將第三目標(biāo)區(qū)域存儲(chǔ)在第二緩沖器中,以及將填充區(qū)域存儲(chǔ)在第三緩沖器中。
12、所述至少一個(gè)處理器可被配置為基于第一緩沖器的所有區(qū)域中的預(yù)定區(qū)域、第二緩沖器的所有區(qū)域中的預(yù)定區(qū)域和第三緩沖器的所有區(qū)域中的預(yù)定區(qū)域來(lái)獲取目標(biāo)數(shù)據(jù),并且第一緩沖器的預(yù)定區(qū)域、第二緩沖器的預(yù)定區(qū)域和第三緩沖器的預(yù)定區(qū)域可基于計(jì)算處理單元來(lái)被確定。
13、所述至少一個(gè)處理器可被配置為從包括在所述至少一個(gè)處理器中的內(nèi)核緩沖器獲取內(nèi)核數(shù)據(jù)。
14、根據(jù)本公開(kāi)的另一方面,提供了一種電子設(shè)備的控制方法,該電子設(shè)備存儲(chǔ)輸入數(shù)據(jù)并包括卷積計(jì)算模塊、第一緩沖器、第二緩沖器和第三緩沖器。該方法包括:在用于輸入數(shù)據(jù)的卷積計(jì)算指令被獲取的情況下獲取與輸入數(shù)據(jù)對(duì)應(yīng)的填充數(shù)據(jù),基于緩沖器的大小和填充數(shù)據(jù)的大小來(lái)識(shí)別計(jì)算處理單元,基于計(jì)算處理單元和緩沖器的大小將輸入數(shù)據(jù)和填充數(shù)據(jù)分類為多個(gè)目標(biāo)區(qū)域,將所述多個(gè)目標(biāo)區(qū)域中的一個(gè)目標(biāo)區(qū)域存儲(chǔ)在第一緩沖器、第二緩沖器或第三緩沖器中,基于計(jì)算處理單元和所述多個(gè)目標(biāo)區(qū)域獲取用于卷積計(jì)算指令的目標(biāo)數(shù)據(jù),并且控制卷積計(jì)算模塊基于目標(biāo)數(shù)據(jù)和內(nèi)核數(shù)據(jù)執(zhí)行卷積計(jì)算指令。
15、在獲取填充數(shù)據(jù)時(shí),填充數(shù)據(jù)的大小可基于輸入數(shù)據(jù)的大小、輸出數(shù)據(jù)的大小、內(nèi)核數(shù)據(jù)的大小或表示應(yīng)用內(nèi)核數(shù)據(jù)的距離的步幅的大小中的至少一個(gè)來(lái)被確定。
16、在識(shí)別計(jì)算處理單元中,緩沖器的行大小可被確定為計(jì)算處理單元的行大小,并且緩沖器的列大小和填充數(shù)據(jù)的列大小的總和可被用于確定計(jì)算處理單元的列大小。
17、在所述分類中,輸入數(shù)據(jù)可基于緩沖器的大小而被分類為第一子區(qū)域、第二子區(qū)域和第三子區(qū)域,僅包括填充數(shù)據(jù)的填充區(qū)域可被識(shí)別,并且包括第一子區(qū)域中包括的數(shù)據(jù)的第一目標(biāo)區(qū)域、包括第二子區(qū)域中包括的數(shù)據(jù)的第二目標(biāo)區(qū)域和包括第三子區(qū)域中包括的數(shù)據(jù)的第三目標(biāo)區(qū)域可基于計(jì)算處理單元的位置和緩沖器的大小被識(shí)別,并且在所述存儲(chǔ)中,填充區(qū)域、第一目標(biāo)區(qū)域、第二目標(biāo)區(qū)域或第三目標(biāo)區(qū)域中的至少一個(gè)可被存儲(chǔ)在第一緩沖器、第二緩沖器或第三緩沖器中的至少一個(gè)中。
18、在所述分類中,包括存儲(chǔ)在第一子區(qū)域中的數(shù)據(jù)或與第一子區(qū)域?qū)?yīng)的填充數(shù)據(jù)中的至少一個(gè)的第一目標(biāo)區(qū)域可基于計(jì)算處理單元的位置和緩沖器的大小來(lái)被識(shí)別,包括存儲(chǔ)在第二子區(qū)域中的數(shù)據(jù)或與第二子區(qū)域?qū)?yīng)的填充數(shù)據(jù)中的至少一個(gè)的第二目標(biāo)區(qū)域可基于計(jì)算處理單元的位置和緩沖器的大小來(lái)被識(shí)別,并且包括存儲(chǔ)在第三子區(qū)域中的數(shù)據(jù)或與第三子區(qū)域?qū)?yīng)的填充數(shù)據(jù)中的至少一個(gè)的第三目標(biāo)區(qū)域可基于計(jì)算處理單元的位置和緩沖器的大小來(lái)被識(shí)別。
19、在所述存儲(chǔ)中,填充區(qū)域可被存儲(chǔ)在第一緩沖器中,第一目標(biāo)區(qū)域可被存儲(chǔ)在第二緩沖器中,并且第二目標(biāo)區(qū)域可被存儲(chǔ)在第三緩沖器中。
20、在所述存儲(chǔ)中,第一目標(biāo)區(qū)域可被存儲(chǔ)在第一緩沖器中,第二目標(biāo)區(qū)域可被存儲(chǔ)在第二緩沖器中,并且第三目標(biāo)區(qū)域可被存儲(chǔ)在第三緩沖器中。
21、在所述存儲(chǔ)中,第二目標(biāo)區(qū)域可被存儲(chǔ)在第一緩沖器中,第三目標(biāo)區(qū)域可被存儲(chǔ)在第二緩沖器中,并且填充區(qū)域可被存儲(chǔ)在第三緩沖器中。
22、在獲取目標(biāo)數(shù)據(jù)中,目標(biāo)數(shù)據(jù)可基于第一緩沖器的所有區(qū)域中的預(yù)定區(qū)域、第二緩沖器的所有區(qū)域中的預(yù)定區(qū)域和第三緩沖器的所有區(qū)域中的預(yù)定區(qū)域來(lái)被獲取,并且第一緩沖器的預(yù)定區(qū)域、第二緩沖器的預(yù)定區(qū)域和第三緩沖器的預(yù)定區(qū)域可基于計(jì)算處理單元來(lái)被確定。
23、該控制方法還包括從電子設(shè)備中包括的內(nèi)核緩沖器獲取內(nèi)核數(shù)據(jù)。
24、通過(guò)以下結(jié)合附圖公開(kāi)了本公開(kāi)的各種實(shí)施例的詳細(xì)描述,本公開(kāi)的其他方面、優(yōu)點(diǎn)和顯著特征對(duì)于本領(lǐng)域技術(shù)人員將變得顯而易見(jiàn)。