本說(shuō)明書(shū)一個(gè)或多個(gè)實(shí)施例涉及計(jì)算機(jī),尤其涉及張量數(shù)據(jù)變換處理的方法及裝置。
背景技術(shù):
1、在密碼學(xué)、數(shù)字信號(hào)處理及其他計(jì)算密集型領(lǐng)域,數(shù)論變換(number?theoretictransforms,ntt)、傅里葉變換(fast?fourier?transform,fft)等張量變換方法具有較為重要的作用。張量變換可以將一個(gè)域的業(yè)務(wù)數(shù)據(jù)用另一個(gè)域的數(shù)據(jù)進(jìn)行表達(dá),如圖像的時(shí)域表達(dá)轉(zhuǎn)換為頻域表達(dá)等。
2、在密碼學(xué)領(lǐng)域,fft和ntt的作用尤為顯著,它們是實(shí)施諸如同態(tài)加密算法、后量子密碼算法等先進(jìn)密碼技術(shù)中不可或缺的組成部分。其中,同態(tài)加密允許對(duì)加密數(shù)據(jù)進(jìn)行計(jì)算而無(wú)需解密,這在保護(hù)隱私的同時(shí)實(shí)施數(shù)據(jù)分析和云計(jì)算服務(wù)中至關(guān)重要。而后量子密碼算法則可以抵抗即將到來(lái)的量子計(jì)算機(jī)威脅,保障長(zhǎng)期的數(shù)據(jù)安全性。這些基于密碼學(xué)的應(yīng)用均依賴于多項(xiàng)式乘法和數(shù)學(xué)變換的高效執(zhí)行,其中fft和ntt等提供了執(zhí)行這些運(yùn)算的高效方法。
3、此外,fft和ntt等還是進(jìn)行頻域分析和數(shù)據(jù)壓縮的基礎(chǔ)。隨著各行各業(yè)對(duì)大數(shù)據(jù)處理需求的增長(zhǎng),尤其在云計(jì)算、物聯(lián)網(wǎng)(iot)以及移動(dòng)通信等領(lǐng)域中,對(duì)fft和ntt等算法的性能要求日益嚴(yán)苛。
4、因此,如何提高計(jì)算機(jī)對(duì)fft和ntt之類(lèi)的數(shù)據(jù)變換算法的計(jì)算效率,是提高相應(yīng)業(yè)務(wù)效率的關(guān)鍵技術(shù)之一。
技術(shù)實(shí)現(xiàn)思路
1、本說(shuō)明書(shū)一個(gè)或多個(gè)實(shí)施例描述了一種張量數(shù)據(jù)變換處理的方法及裝置,用以解決背景技術(shù)提到的一個(gè)或多個(gè)問(wèn)題。
2、根據(jù)第一方面,提供一種張量數(shù)據(jù)變換處理的方法,用于將元素?cái)?shù)量為n的待處理張量,變換為元素?cái)?shù)量為n的目標(biāo)張量;所述方法包括:分解步驟,對(duì)所述待處理張量的變換過(guò)程進(jìn)行迭代的二維分解,直至在第l層得到元變換構(gòu)成的第一變換單元,所述元變換為張量處理核心處理范圍內(nèi)的向量變換;執(zhí)行步驟,基于張量變換核心執(zhí)行所述第一變換單元中的各個(gè)元變換,得到所述第一變換單元對(duì)應(yīng)的第一變換結(jié)果;處理步驟,對(duì)所述第一變換結(jié)果進(jìn)行預(yù)定處理,得到對(duì)應(yīng)于第l-1層的第一中間結(jié)果,所述預(yù)定處理包括矩陣轉(zhuǎn)置和計(jì)算與相應(yīng)變換矩陣的哈達(dá)瑪積;結(jié)果確定步驟,針對(duì)所述第一中間結(jié)果依次通過(guò)以上分解步驟、執(zhí)行步驟處理得到第二變換結(jié)果,所述第二變換結(jié)果在經(jīng)所述處理步驟進(jìn)行所述預(yù)定處理的情況下,得到對(duì)應(yīng)于第l-2層的第二中間結(jié)果,依次上溯處理對(duì)應(yīng)于各層的中間結(jié)果,直至得到目標(biāo)張量。
3、在一個(gè)實(shí)施例中,n維的單組張量變換過(guò)程分解為n1個(gè)長(zhǎng)度為n2的向量變換構(gòu)成的第二變換單元、針對(duì)所述第二變換單元進(jìn)行所述預(yù)定處理得到的中間結(jié)果,以及針對(duì)中間結(jié)果進(jìn)行的n2個(gè)長(zhǎng)度為n1的向量變換構(gòu)成的第三變換單元,其中,n=n1×n2,。
4、在一個(gè)實(shí)施例中,針對(duì)單個(gè)中間結(jié)果的所述預(yù)定處理為:確定針對(duì)所述單個(gè)中間結(jié)果的轉(zhuǎn)置矩陣,以及所述轉(zhuǎn)置矩陣與相應(yīng)的單個(gè)變換矩陣的哈達(dá)瑪積;或者確定所述單個(gè)中間結(jié)果與相應(yīng)的單個(gè)變換矩陣的哈達(dá)瑪積,并對(duì)得到的積矩陣進(jìn)行轉(zhuǎn)置;所述單個(gè)變換矩陣為基于所述單個(gè)中間結(jié)果的尺寸確定的變換矩陣。
5、在一個(gè)實(shí)施例中,在總的二維分解次數(shù)為t的情況下,所述待處理張量的變換過(guò)程中總的分解層數(shù)為比t大的最小2的冪次加1,上溯處理各層的中間結(jié)果過(guò)程中,允許出現(xiàn)大于l的層數(shù)。
6、在一個(gè)實(shí)施例中,所述基于張量變換核心執(zhí)行所述第一變換單元中的各個(gè)元變換包括:通過(guò)多個(gè)張量計(jì)算核心計(jì)算矩陣乘法分別處理各個(gè)元變換。
7、在一個(gè)實(shí)施例中,所述基于張量變換核心執(zhí)行所述第一變換單元中的各個(gè)元變換包括:通過(guò)以下方式為各個(gè)元變換分配計(jì)算資源:根據(jù)張量計(jì)算核心和數(shù)值計(jì)算核心算力的比例,確定與所述比例對(duì)應(yīng)的第一組元變換和第二組元變換;為所述第一組元變換分配張量計(jì)算核心,以通過(guò)矩陣乘法的形式執(zhí)行張量變換操作,為所述第二組元變換分配數(shù)值計(jì)算核心,以通過(guò)數(shù)值計(jì)算的形式進(jìn)行張量變換操作。
8、在一個(gè)實(shí)施例中,以下中的一項(xiàng)變換或其逆變換:離散傅里葉變換dft、快速傅里葉變換fft、數(shù)論變換ntt、離散余弦變換dct、離散正弦變換dst、離散小波變換dwt。
9、根據(jù)第二方面,提供一種張量數(shù)據(jù)處理的裝置,用于將元素?cái)?shù)量為n的待處理張量,變換為元素?cái)?shù)量為n的目標(biāo)張量;所述裝置包括:
10、分解單元,配置為對(duì)所述待處理張量的變換過(guò)程進(jìn)行迭代的二維分解,直至在第l層得到元變換構(gòu)成的第一變換單元,所述元變換為張量處理核心處理范圍內(nèi)的向量變換;
11、執(zhí)行單元,配置為基于張量變換核心執(zhí)行所述第一變換單元中的各個(gè)元變換,得到所述第一變換單元對(duì)應(yīng)的第一變換結(jié)果;
12、處理單元,配置為對(duì)所述第一變換結(jié)果進(jìn)行預(yù)定處理,得到對(duì)應(yīng)于第l-1層的第一中間結(jié)果,所述預(yù)定處理包括矩陣轉(zhuǎn)置和計(jì)算與相應(yīng)變換矩陣的哈達(dá)瑪積;
13、結(jié)果確定單元,配置為依次利用所述分解單元和所述執(zhí)行單元針對(duì)所述第一中間結(jié)果進(jìn)行處理得到第二變換結(jié)果,所述第二變換結(jié)果在經(jīng)所述處理步驟進(jìn)行所述預(yù)定處理的情況下,得到對(duì)應(yīng)于第l-2層的第二中間結(jié)果;
14、在依次上溯分解處理對(duì)應(yīng)于各層的中間結(jié)果的情況下,得到目標(biāo)張量。
15、根據(jù)第三方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行第一方面的方法。
16、根據(jù)第四方面,提供了一種計(jì)算設(shè)備,包括存儲(chǔ)器和處理器,其特征在于,所述存儲(chǔ)器中存儲(chǔ)有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時(shí),實(shí)現(xiàn)第一方面的方法。
17、通過(guò)本說(shuō)明書(shū)實(shí)施例提供的方法和裝置,在同態(tài)加密、圖像處理等業(yè)務(wù)領(lǐng)域,需要針對(duì)待處理張量進(jìn)行域(值域或者空間域、頻域等)變換處理的情況下,可以將單組張量的變換過(guò)程迭代二維分解,其中,單次分解可以將張量變換過(guò)程分解為兩組張量的變換及中間矩陣計(jì)算的形式。在進(jìn)行迭代的張量變換的分解,直至分解得到預(yù)定長(zhǎng)度向量的元變換的情況下,可以將大量級(jí)的張量變換轉(zhuǎn)變成可以通過(guò)張量計(jì)算核心處理的算子進(jìn)行的小量級(jí)張量變換。如此,在盡可能不增加張量變換復(fù)雜度的情況下,可以充分利用張量計(jì)算核心,還能更多地進(jìn)行并行計(jì)算,提高業(yè)務(wù)處理效率。另外,由于對(duì)于待處理張量沒(méi)有長(zhǎng)度限制,適應(yīng)的業(yè)務(wù)場(chǎng)景更多。
1.一種張量數(shù)據(jù)變換處理的方法,用于將元素?cái)?shù)量為n的待處理張量,變換為元素?cái)?shù)量為n的目標(biāo)張量;所述方法包括:
2.如權(quán)利要求1所述的方法,其中,n維的單組張量變換過(guò)程分解為n1個(gè)長(zhǎng)度為n2的向量變換構(gòu)成的第二變換單元、針對(duì)所述第二變換單元進(jìn)行所述預(yù)定處理得到的中間結(jié)果,以及針對(duì)中間結(jié)果進(jìn)行的n2個(gè)長(zhǎng)度為n1的向量變換構(gòu)成的第三變換單元,其中,n=n1×n2,且n1、n2均為2的冪次。
3.如權(quán)利要求1所述的方法,其中,針對(duì)單個(gè)中間結(jié)果的所述預(yù)定處理為:
4.如權(quán)利要求1所述的方法,其中,在總的二維分解次數(shù)為t的情況下,所述待處理張量的變換過(guò)程中總的分解層數(shù)為比t大的最小2的冪次加1,上溯處理各層的中間結(jié)果過(guò)程中,允許出現(xiàn)大于l的層數(shù)。
5.如權(quán)利要求1所述的方法,其中,所述基于張量變換核心執(zhí)行所述第一變換單元中的各個(gè)元變換包括:通過(guò)多個(gè)張量計(jì)算核心計(jì)算矩陣乘法分別處理各個(gè)元變換。
6.如權(quán)利要求1所述的方法,其中,所述基于張量變換核心執(zhí)行所述第一變換單元中的各個(gè)元變換包括:
7.如權(quán)利要求1所述的方法,所述張量變換為以下中的一項(xiàng)變換或其逆變換:離散傅里葉變換dft、快速傅里葉變換fft、數(shù)論變換ntt、離散余弦變換dct、離散正弦變換dst、離散小波變換dwt。
8.一種張量數(shù)據(jù)處理的裝置,用于將元素?cái)?shù)量為n的待處理張量,變換為元素?cái)?shù)量為n的目標(biāo)張量;所述裝置包括:
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行權(quán)利要求1-7中任一項(xiàng)的所述的方法。
10.一種計(jì)算設(shè)備,包括存儲(chǔ)器和處理器,其特征在于,所述存儲(chǔ)器中存儲(chǔ)有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時(shí),實(shí)現(xiàn)權(quán)利要求1-7中任一項(xiàng)所述的方法。