一种基于gpu集群的多维大数据因子化方法

文档序号:9506361阅读:556来源:国知局
一种基于gpu集群的多维大数据因子化方法
【技术领域】
[0001] 本发明属于信号分析技术领域,涉及一种多维大数据分析方法,尤其涉及一种基 于GPU集群的高效多维大数据因子化方法。
【背景技术】
[0002] 基于数据分析的复杂应用中,要在分解过程中反映大规模张量的动力学特性,同 时还不引起大的数据形变,在数据规模与数据维度不断增加的今天面临越来越大的挑战。 从多维数据中找到数据的有用信息在如今的科学和工程中越来越重要,如特征提取、降维 处理。二维数据分解方法,如奇异值分解法(SVD),主成分分析法(PCA),独立成分分析法 (ICA),直接把这些方法应用于高维数据的分解会丢失不同维度间的对应关系。相对地,平 行因子分析(PARAFAC),规范多阶分解(CPD) ,Tucker模型更适用于三维或者更高维数据的 分解,并都能通过ALS方法求解。PARAFAC相比Tucker更易解释,避免了二维方式中典型的 的旋转自由问题,同时保证解是独立的。
[0003] 为了提高高维数据的张量分解效果,研究者作了两类探索,优化计算因子的过程 以及用高性能计算设备促进分解过程。最显著的工作有:[文献l]Rajih提出的ELS能加 速收敛,其基本思想是寻找最佳松弛因子。[文献2、文献3]计算Hadmard内积和小矩阵而 非Khatri-Rao内积以及大矩阵相乘,基于平行框架,该方法能处理大规模数据。
[0004] PARAFAC能对任意大小和维度的数据进行分析,然而它的计算复杂度高,对计算机 的性能要求也高,因此用滑动窗分割整个数据,并用PARAFAC对某个维度上的数据进行逐 个分析便得以应用,这奠定了大数据动态张量分析的基础,该理论下数据的直接融合使得 数据间的相关性部分丢失,得到的因果联合因子难以反映原始数据的动力学特性。
[0005] 为了解决大规模数据的问题,PARAFAC数学理论有了一定创新,将大规模数据看作 小数据的网格化,即grid PARAFAC ([文献4]),该方法将张量的分解转化为独立的张量子 集的分解,融合张量子集结果的输出能得到张量的全部因子,这种方式是有效的,但是面临 两大问题,计算资源不足以及张量子集分割引起的结果分化。
[0006] [文献 1]M. Rajih,P. Comon,and R. A. Harshman,"Enhanced line search:Anovel method to accelerate parafac,''SIAM Journal on Matrix Analysisand Applications, vol. 30, no. 3, pp. 1128 - 1147, 2008.
[0007] [文献 2] A. H. Phan and A. Cichocki,"Advances in parafac using parallelbl ock decomposition,',in Neural Information Processing, ser.NeuralInformation Processing. Springer Berlin Heidelberg, 2009, pp. 323 - 330.
[0008] [文献 3] A. Huy Phan and A. Cichocki,"Parafac algorithms for large-scale problems,''Neurocomputing,vol. 74, no. 11,pp. 1970 - 1984, 2011.
[0009] [文献 4]R. A. Harshman and M. E. Lundy,"Parafac:Parallel factor analysis, ''Computational Statistics&Data Analysis, vol. 18, no. I, pp. 39 - 72,1994.

【发明内容】

[0010] 针对现有方法的不足,本发明提出了一种基于GPU集群的高效多维大数据因子化 方法,即H-PARAFAC框架,该框架基于grid PARAFAC,包含由一个粗粒度模型下整合张量子 集的过程以及细粒度模型下计算每个张量子集和并行融合因子子集的过程。该框架在由多 个节点组成的集群上运行,每个节点包含多台GPU。基于GPU设备上的张量分解充分应用其 强大的并行计算能力和并行化资源,可以大大减少获得张量因子的执行时间,提高大规模 数据处理能力,很好的解决计算资源不足等问题。
[0011] 本发明所采用的技术方案是:一种基于GPU集群的多维大数据因子化方法,其特 征在于,包括以下步骤:
[0012] 步骤1 :搭建PARAFAC模型;
[0013] PARAFAC模型基于初始化模型由矩阵A,B,C给出,张量由λ表示,公式如下:
[0015] 步骤2 :搭建网格PARAFAC模型和m-ALS ;
[0016] 网格PARAFAC模型把张量Y看做张量子集#的组合:
是张量的η模式内积,A ^和 Uw是第N号张量的第η个因子,是:?的第i个数;
[0020] 张量Y的全因子A(1)能用m-ALS从因子子集碑> 得到:
[0022] 所有的张量子集;首先被传统ALS方法分解并获得其因子:
[0024] 中间变量P和Q由张量子集的因子初始化:
[0027] 其中:?表示 Hadmard 积;
[0028] 步骤3 :搭建层次化平行因子分析模型Η-PARAFAC ;
[0029] 层次化平行因子分析模型Η-PARAFAC在由多个节点组成的集群上运行,每个节点 包含多核CPU和多个GPU;所述的集群为分布式共享系统DSM,节点间通过无线宽带连接,通 过MPI彼此反馈,在该集群上运行的粗粒度模型管理该计算进程;
[0030] 所述的层次化平行因子分析模型Η-PARAFAC含多POSIX线程处理,每个线程分配 一台GPU设备,并以多共发CUDA模式给GPU分配数据和计算任务,层次化平行因子分析模 型Η-PARAFAC在设备和节点间同步更新数据;所有的计算任务由细粒度模型在GPUs上执 行,所述的层次化平行因子分析模型H-PARAFAC以并行方式分解张量子集和实现m-ALS算 法,并行Hadamard运算方式使得m-ALS算法能并行获得全部的张量;
[0031] 步骤4 :搭建粗粒度模型;
[0032] 所述的粗粒度模型在分布式共享存储结构上运行,所述的层次化平行因子分析模 型H-PARAFAC作为能实现用户透明的一种功能,该功能通过隐藏具体的潜在的多点接口 MPI、通用并行计算架构CUDA中间软件和其它硬件实现;主要包括粗粒度模型驱动的层次 化平行因子分析模型H-PARAFAC的执行和张量分割方法;
[0033] 步骤5 :搭建精炼并行模型;
[0034] 精炼并行模型用CUDA线程负责张量子集因子的评估,主要包括因子子集的初始 化、对称数据传输、并行Hadmard积的计算和智能分割。
[0035] 作为优选,步骤2中所述的m-ALS具体计算,它通过梯度代价函数最小标准欧式距 离从而连接水平方向的>,在m-ALS迭代过程中,在算第i维度时,张量子集的因子都 能算到,同一块的张量子集因子组合成,当所有维度都迭代过一次,因子子集由下述公 式连接:
表选择,所有因子子集更新后,中间张量P和Q 也将更新,以备下次迭代:
[0041] 作为优选,步骤4中所述的粗粒度模型驱动的层次化平行因子分析模型 H-PARAFAC的执行,其具体实现包括以下子步骤:
[0042] (1)初始化 GPUs ;
[0043] (2)评估公式(5)中张量子集U的因子;
[0044] (3)通过公式(6)和(7)中的学习规则计算中间张量(P,Q);
[0045] (4)计算每维的块:主机端的线程控制设备;
[0046] ①由公式(8) (9)的学习法则结合块间因子T,S ;
[0047] ②由公式(10)的学习法则更新因子子集A ;
[0048] ③由公式(11)的学习法则更新张量(P,Q);
[0049] (5)从设备端获取因子子集A ;
[0050] (6)通过无线宽带和MPI全局更新因子子集A和中间张量(P,Q);
[
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1