步提升,換言之,過(guò)多的分割將增加負(fù)載,事實(shí)表明:
[0148] (1)要確保每個(gè)張量子集盡可能大;
[0149] (2)當(dāng)給H-PARAFA配置計(jì)算平臺(tái)時(shí),GPUs的能力是一個(gè)先驗(yàn)因子而非整個(gè)集群的 總的計(jì)算能力。
[0150] 同時(shí),本發(fā)明的方法與原始PARAFAC方法相比,當(dāng)張量子集大小等于300和600 時(shí),張量處理時(shí)間原始方法分別為158650ms和4491736ms,負(fù)載以η 3增長(zhǎng),η是數(shù)據(jù)大小。 H-PARAFAC分別只需80和800次。G-PARAFAC能獲得相似的結(jié)果,但是H-PARAFAC能支持 大小為2400 3及其更大規(guī)模數(shù)據(jù)的快速分解。
[0151] 應(yīng)當(dāng)理解的是,本說(shuō)明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
[0152] 應(yīng)當(dāng)理解的是,上述針對(duì)較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對(duì)本 發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán) 利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā) 明的請(qǐng)求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種基于GPU集群的多維大數(shù)據(jù)因子化方法,其特征在于,包括以下步驟: 步驟1 :搭建PARAFAC模型; PARAFAC模型基于初始化模型由矩陣A,B,C給出,張量由λ表示,公式如下:步驟2 :搭建網(wǎng)格PARAFAC模型和m-ALS; 網(wǎng)格PARAFAC模型把張量Y看做張量子集#的組合:其中:系〇上_ ,ki= 1···Κi,i= 1,…,N,Xg張量的η模式內(nèi)積,A(n)和U(n) 是第N號(hào)張量的第n個(gè)因子,是f的第i個(gè)數(shù); L_t 張量Y的全因子A(1)能用m-ALS從因子子集C/f得到:所有的張量子集首先被傳統(tǒng)ALS方法分解并獲得其因子:中間變量P和Q由張量子集的因子初始化: 共中:?表不Hadmard枳; 步驟3 :搭建層次化平行因子分析模型Η-PARAFAC; 層次化平行因子分析模型Η-PARAFAC在由多個(gè)節(jié)點(diǎn)組成的集群上運(yùn)行,每個(gè)節(jié)點(diǎn)包含 多核CPU和多個(gè)GPU;所述的集群為分布式共享系統(tǒng)DSM,節(jié)點(diǎn)間通過(guò)無(wú)線寬帶連接,通過(guò) MPI彼此反饋,在該集群上運(yùn)行的粗粒度模型管理該計(jì)算進(jìn)程; 所述的層次化平行因子分析模型Η-PARAFAC含多POSIX線程處理,每個(gè)線程分配一 臺(tái)GPU設(shè)備,并以多共發(fā)CUDA模式給GPU分配數(shù)據(jù)和計(jì)算任務(wù),層次化平行因子分析模型 Η-PARAFAC在設(shè)備和節(jié)點(diǎn)間同步更新數(shù)據(jù);所有的計(jì)算任務(wù)由細(xì)粒度模型在GPUs上執(zhí)行, 所述的層次化平行因子分析模型Η-PARAFAC以并行方式分解張量子集和實(shí)現(xiàn)m-ALS算法, 并行Hadamard運(yùn)算方式使得m-ALS算法能并行獲得全部的張量; 步驟4 :搭建粗粒度模型; 所述的粗粒度模型在分布式共享存儲(chǔ)結(jié)構(gòu)上運(yùn)行,所述的層次化平行因子分析模型Η-PARAFAC作為能實(shí)現(xiàn)用戶透明的一種功能,該功能通過(guò)隱藏具體的潛在的多點(diǎn)接口MPI、 通用并行計(jì)算架構(gòu)CUDA中間軟件和其它硬件實(shí)現(xiàn);主要包括粗粒度模型驅(qū)動(dòng)的層次化平 行因子分析模型Η-PARAFAC的執(zhí)行和張量分割方法; 步驟5 :搭建精煉并行模型; 精煉并行模型用CUDA線程負(fù)責(zé)張量子集因子的評(píng)估,主要包括因子子集的初始化、對(duì) 稱數(shù)據(jù)傳輸、并行Hadmard積的計(jì)算和智能分割。2. 根據(jù)權(quán)利要求1所述的基于GPU集群的多維大數(shù)據(jù)因子化方法,其特征在于:步驟 2中所述的m-ALS具體計(jì)算,它通過(guò)梯度代價(jià)函數(shù)最小標(biāo)準(zhǔn)歐式距離從而連接水平方向的 ,在m-ALS迭代過(guò)程中,在算第i維度時(shí),張量子集tf,的因子都能算到,同一塊的張量 子集因子組合成〇當(dāng)所有維度都迭代過(guò)一次,因子子集由下述公式連接:其中:彡ΚΚη,0代表選擇,所有因子子集更新后,中間張量P和Q也將 L. _Jk 更新,以備下次迭代:3. 根據(jù)權(quán)利要求2所述的基于GPU集群的多維大數(shù)據(jù)因子化方法,其特征在于:步驟4 中所述的粗粒度模型驅(qū)動(dòng)的層次化平行因子分析模型H-PARAFAC的執(zhí)行,其具體實(shí)現(xiàn)包括 以下子步驟: ⑴初始化GPUs; (2) 評(píng)估公式(5)中張量子集U的因子; (3) 通過(guò)公式(6)和(7)中的學(xué)習(xí)規(guī)則計(jì)算中間張量(P,Q); (4) 計(jì)算每維的塊:節(jié)點(diǎn)端的線程控制設(shè)備; ① 由公式(8) (9)的學(xué)習(xí)法則結(jié)合塊間因子T,S; ② 由公式(10)的學(xué)習(xí)法則更新因子子集A; ③ 由公式(11)的學(xué)習(xí)法則更新張量(P,Q); (5) 從設(shè)備端獲取因子子集A; (6) 通過(guò)無(wú)線寬帶和MPI全局更新因子子集A和中間張量(P,Q); (7) 檢測(cè)停止準(zhǔn)則是否更新了全部的因子A,否是,則結(jié)束流程;如否,否則回到第4步。4. 根據(jù)權(quán)利要求2所述的基于GPU集群的多維大數(shù)據(jù)因子化方法,其特征在于,步驟4 中所述的張量分割方法,其具體實(shí)現(xiàn)過(guò)程是: 層次化平行因子分析模型H-PARAFAC通過(guò)給塊設(shè)備平均分配塊以平衡計(jì)算資源,每臺(tái) 設(shè)備只需獲得當(dāng)前迭代所需的數(shù)據(jù),節(jié)點(diǎn)按序列將塊傳給設(shè)備;在第k個(gè)設(shè)備中塊數(shù)量的 計(jì)算如下:其中,k表示第k個(gè)設(shè)備,k= 1、"·、η-1,S表示總塊數(shù),&表示在第k個(gè)設(shè)備中的塊 數(shù),每個(gè)GPU的塊數(shù)一致或相差1 ; 每個(gè)節(jié)點(diǎn)含中間數(shù)據(jù),每個(gè)節(jié)點(diǎn)只需:更新部分?jǐn)?shù)據(jù),余下部分是上次迭代所更新的數(shù) 據(jù)。5. 根據(jù)權(quán)利要求2所述的基于GPU集群的多維大數(shù)據(jù)因子化方法,其特征在于,步驟5 中所述的張量子集因子的評(píng)估和因子子集的初始化,其具體實(shí)現(xiàn)過(guò)程為:通過(guò)DTLD獲得張 量子集因子的初值,通過(guò)ALS驅(qū)動(dòng)傳統(tǒng)PARAFAC獲得張量子集因子,DTLD在因子初始化中 避免了局部最優(yōu),DTLD由Tucker模型和GRAM方法構(gòu)成;并行的DTLD方法中張量子集和分 解步驟統(tǒng)一于CUDA流處理中,多個(gè)張量子集能統(tǒng)一于多個(gè)依賴于多個(gè)GPU的共發(fā)CUDA計(jì) 算框架之下;這些任務(wù)一經(jīng)完成,所有節(jié)點(diǎn)間的設(shè)備或主機(jī)同步交換張量子集因子的結(jié)果。6. 根據(jù)權(quán)利要求2所述的基于GPU集群的多維大數(shù)據(jù)因子化方法,其特征在于,步驟5 中所述的對(duì)稱數(shù)據(jù)傳輸,其具體實(shí)現(xiàn)過(guò)程為: m-ALS每次迭代獲取最終全因子過(guò)程中,需要每個(gè)維度上的P,Q,U數(shù)據(jù),P,Q以張量的 形式存在,其維度和原始張量維度一致,P,Q兩個(gè)張量都被分成張量子集,標(biāo)號(hào)方式也一致; 因子子集對(duì)應(yīng)特定的維度,P,Q不斷更新,第η維的計(jì)算中,中間張量根據(jù)進(jìn) 行分塊,當(dāng)計(jì)算進(jìn)行到第η+1維時(shí),連續(xù)存儲(chǔ)的數(shù)據(jù)將被分到不同的塊內(nèi); 每次迭代中,節(jié)點(diǎn)傳遞被其它設(shè)備更新的中間數(shù)據(jù)(P,Q,U)到本臺(tái)設(shè)備中,因本臺(tái)設(shè) 備只處理一些特定的因子子集,節(jié)點(diǎn)需要從可能的多維數(shù)據(jù)中定位其相應(yīng)的塊,同時(shí)將它 們發(fā)送到設(shè)備端; 在層次化平行因子分析模型Η-PARAFAC中,設(shè)備計(jì)算張量子集的標(biāo)號(hào)以擴(kuò)展到第η+1 維,設(shè)備在第η維數(shù)據(jù)完成時(shí),將這些數(shù)據(jù)直接拷貝到節(jié)點(diǎn)的特定位置;該步驟能用公式13 和公式14中的排列組合理論描述,式中的元素ι^ ]Λ)意味著張量Ρ和Q的一個(gè)數(shù)據(jù)單元, (i,j,k)是數(shù)據(jù)單元的坐標(biāo),公式13中P1是一次傳輸,在一次一對(duì)一的映射后標(biāo)號(hào)變成 (j,k,i),公式14表示索引號(hào)經(jīng)過(guò)了三次傳輸:根據(jù)坐標(biāo)的傳輸,數(shù)據(jù)單元的偏移量是線性存儲(chǔ),并能由設(shè)備計(jì)算的,在單維度的一個(gè) 來(lái)回中,所有今^和錢^在CUDA流中同時(shí)計(jì)算,更新的中間數(shù)據(jù)能根據(jù)偏移直接拷貝到主機(jī) 端存儲(chǔ)空間的指定位置,新的塊能自動(dòng)存儲(chǔ)到連續(xù)的存儲(chǔ)空間以方便轉(zhuǎn)到另一維數(shù)據(jù)上。
【專利摘要】本發(fā)明公開(kāi)了一種基于GPU集群的多維大數(shù)據(jù)因子化方法,針對(duì)傳統(tǒng)網(wǎng)格化平行因子分析模型無(wú)法處理大規(guī)模、高維度的多維數(shù)據(jù)分析的問(wèn)題,提出了一種有效的基于圖形處理單元的多維大數(shù)據(jù)多方式分解方法,即層次化平行因子分析框架,該框架基于傳統(tǒng)網(wǎng)格化平行因子分析模型,包含由一個(gè)粗粒度模型下整合張量子集的過(guò)程以及細(xì)粒度模型下計(jì)算每個(gè)張量子集和并行融合因子子集的過(guò)程。該框架在由多個(gè)節(jié)點(diǎn)組成的集群上運(yùn)行,每個(gè)節(jié)點(diǎn)包含多臺(tái)圖形處理單元。基于圖形處理單元設(shè)備上的張量分解能充分應(yīng)用其強(qiáng)大的并行計(jì)算能力和并行化資源,實(shí)驗(yàn)證明,本發(fā)明方法可以大大減少獲得張量因子的執(zhí)行時(shí)間,提高大規(guī)模數(shù)據(jù)處理能力,很好的解決計(jì)算資源不足等問(wèn)題。
【IPC分類】G06F17/50
【公開(kāi)號(hào)】CN105260554
【申請(qǐng)?zhí)枴緾N201510708583
【發(fā)明人】陳丹, 胡陽(yáng)陽(yáng), 蔡暢, 李小俚, 王力哲
【申請(qǐng)人】武漢大學(xué)
【公開(kāi)日】2016年1月20日
【申請(qǐng)日】2015年10月27日