本申請(qǐng)涉及數(shù)據(jù)處理,尤其涉及一種脈動(dòng)陣列、脈動(dòng)陣列的控制方法、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的可用數(shù)據(jù)呈現(xiàn)爆炸式增長(zhǎng),深度學(xué)習(xí)在圖像識(shí)別、語(yǔ)音處理、語(yǔ)言翻譯、自然語(yǔ)言處理和自動(dòng)駕駛汽車(chē)等領(lǐng)域的復(fù)雜問(wèn)題得到了越來(lái)越廣泛而重要的應(yīng)用。深度學(xué)習(xí)往往需要較高的算力作為支撐,目前主要通過(guò)脈動(dòng)陣列的結(jié)構(gòu)來(lái)設(shè)計(jì)計(jì)算模塊。脈動(dòng)陣列中是由多個(gè)處理單元(processing?element,pe),按照一定互聯(lián)規(guī)則排列,組成的一種吞吐量很大的流水線(xiàn)式高速計(jì)算結(jié)構(gòu)。然而,目前的脈動(dòng)陣列結(jié)構(gòu)的計(jì)算模塊存在數(shù)據(jù)吞吐量較低、處理單元的利用率較低的問(wèn)題。
2、因此,如何提高計(jì)算模塊的數(shù)據(jù)吞吐量和脈動(dòng)陣列結(jié)構(gòu)中處理單元的利用率是亟需解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)?zhí)峁┮环N脈動(dòng)陣列、脈動(dòng)陣列的控制方法、設(shè)備及存儲(chǔ)介質(zhì),用以解決現(xiàn)有技術(shù)中如何提高計(jì)算模塊的數(shù)據(jù)吞吐量和脈動(dòng)陣列結(jié)構(gòu)中處理單元的利用率的問(wèn)題。
2、第一方面,本申請(qǐng)?zhí)峁┮环N脈動(dòng)陣列,包括:控制模塊,計(jì)算模塊,輸入緩沖模塊,輸出緩沖模塊;所述計(jì)算模塊中包括至少n級(jí)處理單元陣列子模塊;
3、所述控制模塊的輸入端用于與外部控制模塊連接,所述控制模塊的輸出端與所述處理單元陣列子模塊的控制端連接,所述處理單元陣列子模塊的輸入端與所述輸入緩沖模塊連接,輸出端與所述輸出緩沖模塊連接,除最后一個(gè)之外,其余所述處理單元陣列子模塊的輸出端還與下一級(jí)的所述處理單元陣列子模塊連接;所述n為大于或等于2的整數(shù);
4、所述輸入緩沖模塊,用于存儲(chǔ)待計(jì)算數(shù)據(jù);
5、所述控制模塊,用于根據(jù)所述外部控制模塊輸入的所述待計(jì)算數(shù)據(jù)的運(yùn)算需求,從所述n個(gè)處理單元陣列子模塊中確定至少一個(gè)目標(biāo)處理單元陣列子模塊,并控制所述目標(biāo)處理單元陣列子模塊處理所述待計(jì)算數(shù)據(jù)。
6、可選的,所述計(jì)算模塊中0至n-1級(jí)的處理單元陣列子模塊包括:處理單元陣列、第一多路選擇器、第二多路選擇器;第n級(jí)處理單元陣列子模塊包括:處理單元陣列、第一多路選擇器;
7、所述第一多路選擇器的輸入端與所述輸入緩沖模塊中的至少一個(gè)存儲(chǔ)單元連接,所述第一多路選擇器的輸出端與所述處理單元陣列的輸入端連接,所述處理單元陣列的輸出端與下一級(jí)的所述處理單元陣列子模塊中的處理單元陣列連接;
8、所述第二多路選擇器的輸入端分別與其所在處理單元陣列子模塊的處理單元陣列的輸出端,以及,位于其所在處理單元陣列子模塊之后的處理單元陣列子模塊的處理單元陣列的輸出端連接;
9、所述控制模塊的輸出端分別與所述第一多路選擇器的控制端、所述第二多路選擇器的控制端的控制端連接;
10、所述控制模塊,具體用于控制所述目標(biāo)處理單元陣列子模塊的第一多路選擇器導(dǎo)通目標(biāo)輸入通路、第二多路選擇器導(dǎo)通目標(biāo)輸出通路,以使所述目標(biāo)處理單元陣列子模塊處理所述待計(jì)算數(shù)據(jù);
11、所述第一多路選擇器,具體用于根據(jù)所述控制模塊的控制,從所述輸入緩沖模塊中的存儲(chǔ)單元中選擇至少一個(gè)目標(biāo)存儲(chǔ)單元接收所述待計(jì)算數(shù)據(jù);
12、所述第二多路選擇器,具體用于根據(jù)所述控制模塊的控制,輸出來(lái)自所述第二多路選擇器所在處理單元陣列子模塊的處理單元陣列的目標(biāo)運(yùn)算結(jié)果,或者,輸出來(lái)自位于所述第二多路選擇器所在處理單元陣列子模塊之后的處理單元陣列子模塊的處理單元陣列的目標(biāo)運(yùn)算結(jié)果。
13、可選的,所述處理單元陣列子模塊還包括:路由單元;
14、所述處理單元陣列的輸出端通過(guò)所述路由單元與下一級(jí)的所述處理單元陣列子模塊中的處理單元陣列連接;
15、所述第二多路選擇器的輸入端分別與其所在處理單元陣列子模塊的路由單元的輸出端連接,以及,位于其所在處理單元陣列子模塊之后的處理單元陣列子模塊的路由單元的輸出端連接。
16、可選的,所述處理單元陣列子模塊,還包括:權(quán)重緩存單元;
17、所述權(quán)重緩存單元的輸出端與所述處理單元陣列的控制端連接;
18、所述權(quán)重緩存單元,用于配置所述處理單元陣列計(jì)算數(shù)據(jù)時(shí)所使用的權(quán)重參數(shù)。
19、可選的,所述處理單元陣列子模塊還包括:流水線(xiàn)寄存器;所述處理單元陣列的輸出端通過(guò)所述流水線(xiàn)寄存器與所述路由單元的輸入端連接。
20、可選的,所述處理單元陣列包括:m行q列的處理單元;所述m和所述q均為大于或等于2的整數(shù);
21、每行的第一個(gè)所述處理單元的輸入端與所述第一多路選擇器的輸出端連接,所述處理單元的第一輸出端與其所在行的下一所述處理單元的輸入端連接,所述處理單元的第二輸出端與其所在列的下一所述處理單元的輸入端連接;最后一行的處理單元的第二輸出端與對(duì)應(yīng)的所述第二多路選擇器的輸入端連接。
22、可選的,所述控制模塊,用于根據(jù)所述外部控制模塊輸入的所述待計(jì)算數(shù)據(jù)的運(yùn)算需求對(duì)應(yīng)的矩陣結(jié)構(gòu),從所述n個(gè)處理單元陣列子模塊中確定至少一個(gè)與所述矩陣結(jié)構(gòu)對(duì)應(yīng)的目標(biāo)處理單元陣列子模塊,并控制所述目標(biāo)處理單元陣列子模塊處理所述待計(jì)算數(shù)據(jù)。
23、第二方面,本申請(qǐng)?zhí)峁┮环N脈動(dòng)陣列的控制方法,應(yīng)用于第一方面中任一項(xiàng)所述的脈動(dòng)陣列,包括:
24、根據(jù)外部控制模塊輸入的待計(jì)算數(shù)據(jù)的運(yùn)算需求,從所述脈動(dòng)陣列的n個(gè)處理單元陣列子模塊中確定至少一個(gè)目標(biāo)處理單元陣列子模塊;
25、控制所述目標(biāo)處理單元陣列子模塊處理所述待計(jì)算數(shù)據(jù)。
26、第三方面,本申請(qǐng)?zhí)峁┮环N加速器,所述加速器包括如第一方面中任一項(xiàng)所述的脈動(dòng)陣列,數(shù)據(jù)輸入接口,以及數(shù)據(jù)輸出接口。
27、第四方面,本申請(qǐng)?zhí)峁┮环N系統(tǒng)級(jí)芯片,所述系統(tǒng)級(jí)芯片包括如第一方面中任一項(xiàng)所述的脈動(dòng)陣列
28、第五方面,本申請(qǐng)?zhí)峁┮环N電子設(shè)備,包括:處理器、通信接口,以及存儲(chǔ)器;所述處理器分別與所述通信接口和所述存儲(chǔ)器通信連接;
29、所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
30、所述通信接口與外部設(shè)備進(jìn)行通信交互;
31、所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,以實(shí)現(xiàn)如第二方面中所述的方法。
32、第六方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,所述計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)如第二方面中所述的脈動(dòng)陣列的控制方法。
33、第七方面,本申請(qǐng)?zhí)峁┮环N計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)如第二方面中所述的脈動(dòng)陣列的控制方法。
34、本申請(qǐng)?zhí)峁┑拿}動(dòng)陣列、脈動(dòng)陣列的控制方法、設(shè)備及存儲(chǔ)介質(zhì),通過(guò)通過(guò)控制模塊根據(jù)待計(jì)算數(shù)據(jù)的運(yùn)算需求,從計(jì)算模塊中確定該待計(jì)算數(shù)據(jù)所需的目標(biāo)處理單元陣列子模塊,以及,這些目標(biāo)處理單元陣列子模塊的排列方式,實(shí)現(xiàn)根據(jù)待計(jì)算數(shù)據(jù)的運(yùn)算需求自動(dòng)調(diào)整脈動(dòng)陣列的結(jié)構(gòu)的功能,從而提高脈動(dòng)陣列的計(jì)算資源利用率。
1.一種脈動(dòng)陣列,其特征在于,所述脈動(dòng)陣列包括:控制模塊,計(jì)算模塊,輸入緩沖模塊,輸出緩沖模塊;所述計(jì)算模塊中包括至少n級(jí)處理單元陣列子模塊;
2.根據(jù)權(quán)利要求1所述的脈動(dòng)陣列,其特征在于,所述計(jì)算模塊中0至n-1級(jí)的處理單元陣列子模塊包括:處理單元陣列、第一多路選擇器、第二多路選擇器;第n級(jí)處理單元陣列子模塊包括:處理單元陣列、第一多路選擇器;
3.根據(jù)權(quán)利要求2所述的脈動(dòng)陣列,其特征在于,所述處理單元陣列子模塊還包括:路由單元;
4.根據(jù)權(quán)利要求2或3所述的脈動(dòng)陣列,其特征在于,所述處理單元陣列子模塊,還包括:權(quán)重緩存單元;
5.根據(jù)權(quán)利要求2或3所述的脈動(dòng)陣列,其特征在于,所述處理單元陣列子模塊還包括:流水線(xiàn)寄存器;所述處理單元陣列的輸出端通過(guò)所述流水線(xiàn)寄存器與所述路由單元的輸入端連接。
6.根據(jù)權(quán)利要求2或3所述的脈動(dòng)陣列,其特征在于,所述處理單元陣列包括:m行q列的處理單元;所述m和所述q均為大于或等于2的整數(shù);
7.根據(jù)權(quán)利要求1所述的脈動(dòng)陣列,其特征在于,所述控制模塊,用于根據(jù)所述外部控制模塊輸入的所述待計(jì)算數(shù)據(jù)的運(yùn)算需求對(duì)應(yīng)的矩陣結(jié)構(gòu),從所述n個(gè)處理單元陣列子模塊中確定至少一個(gè)與所述矩陣結(jié)構(gòu)對(duì)應(yīng)的目標(biāo)處理單元陣列子模塊,并控制所述目標(biāo)處理單元陣列子模塊處理所述待計(jì)算數(shù)據(jù)。
8.一種脈動(dòng)陣列的控制方法,其特征在于,所述方法應(yīng)用于權(quán)利要求1-7任一項(xiàng)所述的脈動(dòng)陣列,所述方法包括:
9.一種加速器,其特征在于,所述加速器包括如權(quán)利要求1-7中任一項(xiàng)所述的脈動(dòng)陣列,數(shù)據(jù)輸入接口,以及數(shù)據(jù)輸出接口。
10.一種系統(tǒng)級(jí)芯片,其特征在于,所述系統(tǒng)級(jí)芯片包括如權(quán)利要求1-7中任一項(xiàng)所述的脈動(dòng)陣列。
11.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括如權(quán)利要求1-7中任一項(xiàng)所述的脈動(dòng)陣列。