CN109033030A - 一种基于gpu的张量分解及重构方法 - Google Patents
一种基于gpu的张量分解及重构方法 Download PDFInfo
- Publication number
- CN109033030A CN109033030A CN201810744533.9A CN201810744533A CN109033030A CN 109033030 A CN109033030 A CN 109033030A CN 201810744533 A CN201810744533 A CN 201810744533A CN 109033030 A CN109033030 A CN 109033030A
- Authority
- CN
- China
- Prior art keywords
- tensor
- matrix
- factor
- gpu
- directions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 239000011159 matrix material Substances 0.000 claims abstract description 150
- 230000017105 transposition Effects 0.000 claims abstract description 7
- 238000000354 decomposition reaction Methods 0.000 claims description 33
- 239000013598 vector Substances 0.000 claims description 8
- 239000000835 fiber Substances 0.000 claims description 4
- 229940050561 matrix product Drugs 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 7
- 238000012546 transfer Methods 0.000 abstract description 4
- 230000001133 acceleration Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013079 data visualisation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于GPU的张量分解及重构方法,其包括获取初始核心张量及因子矩阵,基于GPU并行地将张量与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积得到选取方向的最优核心张量,将最优核心张量与因子矩阵依次作TTM乘积,完成张量分解及重构。本发明通过将一系列张量与矩阵的乘法进行基于GPU的并行化处理,以中间结果复用的方式优化CPU与GPU之间的数据传输开销,加速张量分解与重构,提高了数据的张量近似处理阶段和张量重构的体绘制阶段的计算效率。
Description
技术领域
本发明大规模体数据分析技术领域,尤其涉及一种基于GPU的张量分解及重构方法。
背景技术
从大规模、多维度的信息数据中提取其蕴含的信息是信息数据技术时代所面临的热点 问题。其中,张量分解和重构是针对大规模体数据进行数据分析和信息提取的有效方法。 在张量分解过程中,基于主成分分析的思想有效保留和增强了信息数据中主要的特征;在 张量重构中,利用多尺度的思想可以快速地重构出不同尺度的信息数据,支撑不同尺度的 数据分析。
张量是一个多维或N维阵列。在多线性代数中,张量分解可以看作是矩阵奇异值分解 到张量的推广,已经在统计学、信号处理、计算机视觉、数值分析、数据挖掘中得到应用。Tucker分解是将张量分解为一组矩阵和一个小核心张量,每一个矩阵表示一个方向上的基, 通过核心张量将各个方向的基联系起来,这样通过每个方向的矩阵和一个核心张量就能重 构出原始数据的近似值。最初它被描述为因子分析和主成分分析在三维数据上的延伸,并 且能够被延伸到更高维度的张量上。三阶张量已经被广泛应用于表示医学成像、气象预测、 地质勘探等领域产生的三维信息数据。三维张量相较于二维矩阵承载了更多的数据信息以 及表示了更复杂的数据结构,对三阶张量的研究可以揭示使用二维矩阵方法很难找到的特 性或模式。例如,地质勘探产生的三维体数据包含了地质结构信息和内部特征信息,体绘 制作为三维地震数据的可视化技术,该技术使用数据压缩技术和细节层次(LOD)思想结 合的方式对三维地震数据进行管理,能够实现不同分辨率的实时渲染。其基本思想是利用 高阶张量近似实现地震数据的压缩以及采用张量重构来重构出实时绘制所需要的数据。但 是随着地质勘探与数据采集技术的发展,地震数据的规模呈现爆炸式增长,规模巨大和结 构复杂的三维体数据在做张量分解时变得异常复杂与耗时。所以针对大型数据的张量分解, 现有的张量分解算法耗时过长的问题就需要迫切解决。
在过去几年中,图像处理器(GPU)的可编程性和高性能使得基于GPU的解决方案成为了许多科学计算应用提升计算性能的主要选择。GPU已经被用于油气勘探、军事、生命 科学、金融、制造业等多种工业和科研领域,并为其中很多应用带来了革命性的突破。随 着GPU的日益普及,基于GPU的高性能并行计算应用得到了迅猛发展,由于传统CPU、 计算集群在计算资源的限制,特别是各类科学工程优化问题对于并行计算需求的不断提升, 基于GPU的高性能并行计算的计算仿真、计算模型、数值计算以及算法优化已经成为当前 高性能并行计算的热点研究方向。
三维地震数据可视化技术中的一项关键技术是使用张量近似来对原始数据进行数据压 缩。数据压缩的思想是用有限的基与对应系数的集合来近似表示原始数据,这样可以在提 取数据特征的前提下压缩数据。在数据的近似表达中使用的基既可以是预定义的,也可以 是通过数据本身的特点学习得到的。常用的预定义基的方法有傅里叶变换、小波变换等, 该类方法预处理时间较短,但是在压缩率与提取数据特征这两方面表现一般;而通过学习 得到的数据基的方法则与之相反,在预处理阶段耗时较长,但能够较好地提取数据特征以 及去除噪声。张量近似就是通过学习的方式得到基,并且其压缩后的数据能够很好地保留 原始数据的特征。
随着地质勘探与数据采集技术的发展,地震数据的规模呈现爆炸式增长,规模巨大和 结构复杂的三维体数据在做张量分解时变得异常复杂与耗时。所以针对大型数据的张量分 解,现有的张量分解算法耗时过长的问题就需要迫切解决。
发明内容
本发明的发明目的是:为了解决现在技术中存在的以上问题,本发明提出了一种基于 GPU的张量分解及重构方法。
本发明的技术方案是:一种基于GPU的张量分解及重构方法,包括以下步骤:
A、获取大规模数据的张量及秩,对张量进行分解得到初始核心张量及因子矩阵,并设 定最优条件ε,初始化迭代次数l为0;
B、依次选取一个方向,对其它方向的因子矩阵求转置,基于GPU并行地将张量与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量;
C、将步骤B得到的最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量 C,判断||Cl+1||2-||Cl||2是否小于最优条件ε;若是,则完成张量分解及重构;若否,则将迭 代次数l递增1,返回步骤B。
进一步地,所述步骤B依次选取一个方向,对其它方向的因子矩阵求转置,基于GPU并行地将张量与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量,具体为:
对于第l+1次迭代过程,选取方向In的因子矩阵进行优化,求解方向I1-In-1及In+1-IN的 因子矩阵的转置,将张量A与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘 积,得到选取方向的最优核心张量,表示为:
其中,Pl+1为第l+1次迭代过程得到的方向In的最优核心张量,为方向In+1的因 子矩阵的转置,N为张量维度。
进一步地,所述基于GPU并行地将张量A与其它方向的因子矩阵的转置沿着不同方向 作张量与矩阵的乘积具体为:
将张量A按切片或纤维的形式与其它方向的因子矩阵的转置进行n-mode乘积,表示为:
其中,jn为第N维度的一行或一列数据,为的j1-th行,:表示选取该维度 的一行或一列数据,j1-th表示第j1行数据。
进一步地,所述将张量与因子矩阵进行n-mode乘积时,先将张量沿一个方向展开为一 个矩阵,再将展开矩阵的列向量按其它方向的大小组成一个新矩阵,并行地与该方向的因 子矩阵作矩阵乘法;再将矩阵乘法得到的结果进行转置后,直接与其它方向的因子矩阵作 矩阵乘法。
进一步地,所述步骤C将步骤B得到的最优核心张量与因子矩阵依次作张量与矩阵的 乘积,得到核心张量C,具体为:首先将最优核心张量的展开矩阵进行转置,再将展开矩阵与其转置矩阵相乘,进行矩阵的奇异值分解得到最优核心张量的因子矩阵,最后将最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量C。
本发明的有益效果是:本发明通过将一系列张量与矩阵的乘法进行基于GPU的并行化 处理,以中间结果复用的方式优化CPU与GPU之间的数据传输开销,加速张量分解与重构,提高了数据的张量近似处理阶段和张量重构的体绘制阶段的计算效率。
附图说明
图1为本发明的基于GPU的张量分解及重构方法的流程示意图。
图2为不同数据规模的三维数据的高阶正交迭代Tucker分解及重构的加速比示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本 发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不 用于限定本发明。
如图1所示,为本发明的基于GPU的张量分解及重构方法的流程示意图。一种基于GPU的张量分解及重构方法,包括以下步骤:
A、获取大规模数据的张量及秩,对张量进行分解得到初始核心张量及因子矩阵,并设 定最优条件ε,初始化迭代次数l为0;
B、依次选取一个方向,对其它方向的因子矩阵求转置,基于GPU并行地将张量与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量;
C、将步骤B得到的最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量 C,判断||Cl+1||2-||Cl||2是否小于最优条件ε;若是,则完成张量分解及重构;若否,则将迭 代次数l递增1,返回步骤B。
在步骤A中,本发明获取大规模数据的张量A及秩R1,R2...RN,对张量A进行矩阵奇异值分解得到初始核心张量B0及因子矩阵表示为
在步骤B中,本发明采用GHOOI算法,在每一次迭代过程中,固定其余N-1个因子 矩阵,只优化其中一个因子矩阵。对于第l+1次迭代过程,选取方向In的因子矩阵进行优 化,求解方向I1-In-1及In+1-IN的因子矩阵的转置,将张量A与其它方向的因子矩阵的转置沿 着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量,表示为:
其中,Pl+1为第l+1次迭代过程得到的方向In的最优核心张量,为方向In+1的因 子矩阵的转置,N为张量维度。
现有的HOOI过程中会存在大量的张量与矩阵n-mode乘积计算,即在每一次迭代中计 算每个因子矩阵的过程中都需要完成一系列连续的张量与矩阵n-mode乘积;特别是当实际 数据规模比较大时,可能会导致计算需要很长时间才能完成,因为这种长时间计算严重限 制了生产力,所以这种耗时操作在大多数实际环境中是不可接受的。并且如果张量和因子 矩阵较大的话,那么中间结果张量Pl+1就会变得非常大,甚至可以超过主存或显存的大小。 特别是在与每一个方向的因子矩阵做n-mode乘积时,张量需要按n-mode方向展开为矩阵, 与矩阵相乘后再恢复为张量,当与另外一个方向的因子矩阵相乘时,再把张量沿着该方向 展开。例如,对于一个三阶张量当张量需要与因子矩阵做1-mode乘积时,先 将张量按I1方向展开为矩阵A(1),将矩阵A(1)和因子矩阵从CPU传入到GPU,做张量与矩 阵的1-mode乘积,然后将中间结果矩阵从GPU传回CPU,将中间结果矩阵恢复为张量, 然后沿着I2方向展开为矩阵A(2),再重复前面的步骤,如此往复,就造成了大量的CPU-GPU 间数据传输,从而影响了整个GPU程序性能。
本发明通过将张量按切片或纤维的形式分成多个矩阵,按矩阵的粒度将张量与其它方 向的因子矩阵的转置并行地进行n-mode乘积,从而减少中间结果张量的大小,这样可以在 不损失计算速度的前提下,解决中间结果过大的问题。
对于张量和因子矩阵按纤维的方式进行n-mode 乘积,可以在每一次计算过程中使用更少的内存,表示为:
其中,n表示第N维度的数据,jn为第N维度的一行或一列数据,jn=1,...,Jn,为的j1-th行,:表示选取该维度的一行或一列数据,j1-th表示第j1行数据;最大的中间 结果为一个大小为In向量,而不是常规计算模式下的J1×J2×...×In×...×Jn。
HOOI过程中在每次迭代求解最优因子的过程中对最优核心张量Pl+1需要按某个方向的 展开为矩阵形式,进行SVD求取该方向的因子矩阵。因为最优核心张量Pl+1按一个方向展 开后,展开式矩阵Pl+1(n)是一个宽矩阵,例如对Pl+1 (1)进行SVD会非常耗时。
本发明通过将张量与因子矩阵进行n-mode乘积时,先将张量沿一个方向展开为一个矩 阵,再将展开矩阵的列向量按其它方向的大小组成一个新矩阵,并行地与该方向的因子矩 阵作矩阵乘法;再将矩阵乘法得到的结果进行转置后,直接与其它方向的因子矩阵作矩阵 乘法;采用中间结果复用的方式来减少CPU-GPU间的数据传输。
对于一个3阶张量,针对张量与因子矩阵的n-mode乘积时需要先将张量展开为一个矩 阵,本发明将张量沿着某个方向按切片(slice)的形式与因子矩阵做n-mode乘积,由于张 量的切片(矩阵)的维度大小与因子矩阵相当,这样3阶张量的多个切片(矩阵)即可并行地与因子矩阵做矩阵乘法,从而可以使用共享内存来加速计算过程。
对于张量和因子矩阵的1-mode乘积其元素定 义表示为
其中,为A的元素,为U的元素。
将张量沿着I1方向展开为即A(1)的列向量为张量A在I1方向的 向量,按I2方向的大小将前I2个A(1)的列向量组成一个新矩阵A(1)(0,I2-1),与因子矩阵U作 矩阵乘法,表示为
从而实现并行执行I3个矩阵乘法。
在作张量与矩阵的乘积过程中,张量需按不同的方向展开后再与因子矩阵做n-mode乘 积,最后再恢复成张量。因此,当与不同方向的因子矩阵作张量与矩阵的乘积时,张量沿 着不同方向展开为矩阵会增加CPU-GPU间的数据传输。
在求解I1方向的最佳因子矩阵U(1)的过程中,张量A需要与I2,I3方向的因子矩阵U(2) T,U(3) T作张量与矩阵的乘积,表示为
将张量A沿着I2方向展开为A(2),再将A(2)的列向量按I3大小组成矩阵,并行地与因子 矩阵U(2)T作乘法;由于A(2)中的列向量是按I3大小组成的矩阵,因此将与作矩阵乘法,得到结果再将矩阵乘法得到的结果进行转置直接与因子矩阵U(3) T作矩阵乘法;从而减少了将中间结果张量重新展开的过程,实现了中间结果复用。这样在每一个的迭代中,都会减少2次CPU-GPU间的数据传输,包括1次将中间结果从GPU传回到CPU和1次从CPU 将重新展开的矩阵传入到GPU。
在步骤C中,本发明首先将最优核心张量的展开矩阵进行转置,再将展开矩阵与其转 置矩阵相乘,得到一个维度较小的方阵,对方阵进行矩阵的奇异值分解得到最优核心张量 的因子矩阵,最后将最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量C; 再判断||Cl+1||2-||Cl||2是否小于最优条件ε,其中Cl+1,Cl分别表示第l+1,l次迭代过程中得到 的核心张量,||·||表示取模操作;若是,则完成张量分解及重构;若否,则将迭代次数l递 增1,即l=l+1,返回步骤B。
由于张量A'的展开矩阵为一个宽矩阵,造成SVD操作非常耗时;因此本发明将A'(n)与 其转置矩阵相乘得到
设定SVD(A'(n))=UΣV,有
可以得到其左奇异矩阵U和奇异值矩阵Σ。右奇异矩阵可以表示为
V=Σ-1UTUΣV=Σ-1UTA'(n)
由于的大小相对于来说小很多,因此对做SVD会变得高效。
本发明通过在张量的分解与重构过程中,在张量与因子矩阵的n-mode乘积中采用切片 的方式将张量划分为多个矩阵,多个矩阵与因子矩阵的乘法可以并行执行。相较于张量直 接展开为矩阵与因子矩阵的乘法,用GPU中的一个线程计算一个张量元素的方式,本发明 提出的按切片的方式能够很好的利用GPU内存体系中的共享内存,大大提高了数据使用的 局部性,减少了线程计算时从全局内存访问数据的次数,从而加速了张量重构。本发明相 较于串行算法达到了几倍至数十倍的加速比,并且加速比随着数据规模的增大而增大。在 三维地震数据可视化中,提高了数据的张量近似处理阶段和张量重构的体绘制阶段的计算 效率。
本发明采用CPU-GPU异构平台,CPU为Intel(R)Core(TM)i5-6600CPU@3.30GHz, 主存为8.00GB,GPU为Geforce GTX1050Ti,操作系统为Windows 10Pro,软件平台为VisualStudio 2010和CUDA 8.0。注意,SP在Fermi架构推出后,已改为CUDA Core,且CUDA Core 拥有比SP更强的处理能力。
仿真数据采用的是真实地震数据,将其按不同数据规模进行分块,然后分别使用秩 -Rn=In/2的Tucker分解,其中Rn为核心张量的秩,In为原始张量的维度。如表1所示, 为不同数据规模的两种方式的高阶正交迭代的执行时间对比表,
表1、不同数据规模的两种方式的高阶正交迭代的执行时间对比表
数据规模 | HOOI执行时间(ms) | GHOOI执行时间(ms) | 加速比 |
25 | 723 | 617 | 1.17 |
26 | 3491 | 2714 | 1.27 |
27 | 39640 | 13495 | 2.74 |
28 | 535070 | 117340 | 4.54 |
29 | 13906789 | 1923484 | 7.23 |
其中三维数据体的数据估摸大小从25至29,可以看出并行HOOI相对比HOOI在执行时间上随着数据规模的增加呈现持续快速减少的趋势,执行时间加速比越来越大,其中对于没有测试更大规模数据的原因在于串行方式的高阶正交迭代的执行时间过长。实验证明的并行高阶正交迭代是有效的,对于规模越大的三维张量数据,加速效率越明显,节省的时间越多。如表2所示,为不同数据规模的Tucker分解的执行时间对比表,
表2、不同数据规模的Tucker分解的执行时间对比表
数据规模 | CPU执行时间(ms) | GPU执行时间(ms) | 加速比 |
25 | 785 | 948 | 0.83 |
26 | 3394 | 3341 | 1.01 |
27 | 40364 | 14704 | 2.71 |
28 | 553074 | 127183 | 4.33 |
29 | 14373401 | 2041677 | 7.04 |
本发明随着数据规模的增加也呈现出了越来越高的加速比,因此,本发明在面对实际 地震数据时能够有效地提升算法的执行效率,对实际应用有很好的作用。如表3所示,为 不同规模数据的Tucker重构过程时间对比表,
表3所示,为不同规模数据的Tucker重构过程时间对比表
数据规模 | CPU执行时间(ms) | GPU执行时间(ms) | 加速比 |
25 | 129 | 89 | 1.44 |
26 | 1350 | 547 | 2.47 |
27 | 15568 | 3863 | 4.03 |
28 | 245731 | 32248 | 7.62 |
29 | 3854192 | 343204 | 11.23 |
可以看出重构过程相较于分解过程取得了更好的加速比。
如图2所示,为不同数据规模的三维数据的高阶正交迭代Tucker分解及重构的加速比 示意图。随着数据维度大小的增长,本发明的GHOOL加速也逐渐增大,其中Tucker重构的 加速比增加尤其明显。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的 原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通 技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体 变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (5)
1.一种基于GPU的张量分解及重构方法,其特征在于,包括以下步骤:
A、获取大规模数据的张量及秩,对张量进行分解得到初始核心张量及因子矩阵,并设定最优条件ε,初始化迭代次数l为0;
B、依次选取一个方向,对其它方向的因子矩阵求转置,基于GPU并行地将张量与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量;
C、将步骤B得到的最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量C,判断||Cl+1||2-||Cl||2是否小于最优条件ε;若是,则完成张量分解及重构;若否,则将迭代次数l递增1,返回步骤B。
2.如权利要求1所述的基于GPU的张量分解及重构方法,其特征在于,所述步骤B依次选取一个方向,对其它方向的因子矩阵求转置,基于GPU并行地将张量与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量,具体为:
对于第l+1次迭代过程,选取方向In的因子矩阵进行优化,求解方向I1-In-1及In+1-IN的因子矩阵的转置,将张量A与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积,得到选取方向的最优核心张量,表示为:
其中,Pl+1为第l+1次迭代过程得到的方向In的最优核心张量,为方向In+1的因子矩阵的转置,N为张量维度。
3.如权利要求2所述的基于GPU的张量分解及重构方法,其特征在于,所述基于GPU并行地将张量A与其它方向的因子矩阵的转置沿着不同方向作张量与矩阵的乘积具体为:
将张量A按切片或纤维的形式与其它方向的因子矩阵的转置进行n-mode乘积,表示为:
其中,jn为第N维度的一行或一列数据,为的j1-th行,:表示选取该维度的一行或一列数据,j1-th表示第j1行数据。
4.如权利要求3所述的基于GPU的张量分解及重构方法,其特征在于,所述将张量与因子矩阵进行n-mode乘积时,先将张量沿一个方向展开为一个矩阵,再将展开矩阵的列向量按其它方向的大小组成一个新矩阵,并行地与该方向的因子矩阵作矩阵乘法;再将矩阵乘法得到的结果进行转置后,直接与其它方向的因子矩阵作矩阵乘法。
5.如权利要求4所述的基于GPU的张量分解及重构方法,其特征在于,所述步骤C将步骤B得到的最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量C,具体为:首先将最优核心张量的展开矩阵进行转置,再将展开矩阵与其转置矩阵相乘,进行矩阵的奇异值分解得到最优核心张量的因子矩阵,最后将最优核心张量与因子矩阵依次作张量与矩阵的乘积,得到核心张量C。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810744533.9A CN109033030B (zh) | 2018-07-09 | 2018-07-09 | 一种基于gpu的张量分解及重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810744533.9A CN109033030B (zh) | 2018-07-09 | 2018-07-09 | 一种基于gpu的张量分解及重构方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109033030A true CN109033030A (zh) | 2018-12-18 |
CN109033030B CN109033030B (zh) | 2022-05-20 |
Family
ID=64641077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810744533.9A Active CN109033030B (zh) | 2018-07-09 | 2018-07-09 | 一种基于gpu的张量分解及重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109033030B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885628A (zh) * | 2019-03-20 | 2019-06-14 | 上海燧原智能科技有限公司 | 一种张量转置方法、装置、计算机及存储介质 |
CN110059291A (zh) * | 2019-03-15 | 2019-07-26 | 上海大学 | 一种基于gpu的三阶低秩张量补全方法 |
CN110059290A (zh) * | 2019-03-15 | 2019-07-26 | 上海大学 | 一种基于gpu的三阶低秩张量计算方法 |
CN110310219A (zh) * | 2019-06-12 | 2019-10-08 | 上海大学 | 一种基于gpu及张量的数据采样及解码方法 |
CN111737007A (zh) * | 2020-07-24 | 2020-10-02 | 北京一流科技有限公司 | 数据对象的分频处理系统及其方法 |
CN113256585A (zh) * | 2021-05-24 | 2021-08-13 | 北京理工大学 | 基于时空张量分解的红外视频运动小目标实时检测方法 |
CN115309713A (zh) * | 2022-09-29 | 2022-11-08 | 江西锦路科技开发有限公司 | 交通数据压缩方法、装置、电子设备及存储介质 |
CN118642863A (zh) * | 2024-08-16 | 2024-09-13 | 南京理工大学 | Spark框架下GPU使能的多层次张量CP分解分布式并行加速方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012133185A1 (ja) * | 2011-03-31 | 2012-10-04 | 独立行政法人理化学研究所 | 脳波解析装置、脳波解析方法、プログラム、及び記録媒体 |
CN106646595A (zh) * | 2016-10-09 | 2017-05-10 | 电子科技大学 | 一种基于张量的自适应秩截断的地震数据压缩方法 |
US20170168991A1 (en) * | 2015-12-10 | 2017-06-15 | Significs And Elements, Llc | Systems and methods for selective expansive recursive tensor analysis |
CN107507253A (zh) * | 2017-08-15 | 2017-12-22 | 电子科技大学 | 基于高阶张量近似的多属性体数据压缩方法 |
-
2018
- 2018-07-09 CN CN201810744533.9A patent/CN109033030B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012133185A1 (ja) * | 2011-03-31 | 2012-10-04 | 独立行政法人理化学研究所 | 脳波解析装置、脳波解析方法、プログラム、及び記録媒体 |
US20170168991A1 (en) * | 2015-12-10 | 2017-06-15 | Significs And Elements, Llc | Systems and methods for selective expansive recursive tensor analysis |
CN106646595A (zh) * | 2016-10-09 | 2017-05-10 | 电子科技大学 | 一种基于张量的自适应秩截断的地震数据压缩方法 |
CN107507253A (zh) * | 2017-08-15 | 2017-12-22 | 电子科技大学 | 基于高阶张量近似的多属性体数据压缩方法 |
Non-Patent Citations (4)
Title |
---|
OGUZ KAYA ET AL.: "High Performance Parallel Algorithms for the Tucker Decomposition of Sparse Tensors", 《2016 45TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING》 * |
彭立宇: "基于高阶张量的多属性压缩融合体绘制方法研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊)》 * |
李鹏程: "基于张量分解的极化SAR图像分类", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊)》 * |
王晏民 等: "《海量精细点云数据组织与管理》", 30 April 2015 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059291A (zh) * | 2019-03-15 | 2019-07-26 | 上海大学 | 一种基于gpu的三阶低秩张量补全方法 |
CN110059290A (zh) * | 2019-03-15 | 2019-07-26 | 上海大学 | 一种基于gpu的三阶低秩张量计算方法 |
CN109885628A (zh) * | 2019-03-20 | 2019-06-14 | 上海燧原智能科技有限公司 | 一种张量转置方法、装置、计算机及存储介质 |
CN110310219A (zh) * | 2019-06-12 | 2019-10-08 | 上海大学 | 一种基于gpu及张量的数据采样及解码方法 |
CN111737007A (zh) * | 2020-07-24 | 2020-10-02 | 北京一流科技有限公司 | 数据对象的分频处理系统及其方法 |
CN113256585A (zh) * | 2021-05-24 | 2021-08-13 | 北京理工大学 | 基于时空张量分解的红外视频运动小目标实时检测方法 |
CN115309713A (zh) * | 2022-09-29 | 2022-11-08 | 江西锦路科技开发有限公司 | 交通数据压缩方法、装置、电子设备及存储介质 |
CN118642863A (zh) * | 2024-08-16 | 2024-09-13 | 南京理工大学 | Spark框架下GPU使能的多层次张量CP分解分布式并行加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109033030B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033030B (zh) | 一种基于gpu的张量分解及重构方法 | |
CN108170639B (zh) | 基于分布式环境的张量cp分解实现方法 | |
Gong et al. | Efficient nonnegative matrix factorization via projected Newton method | |
Jalby et al. | Stability analysis and improvement of the block Gram–Schmidt algorithm | |
Choi et al. | High-performance dense tucker decomposition on GPU clusters | |
US11620357B2 (en) | GPU-based third-order low rank tensor calculation method and apparatus | |
Liu et al. | High-performance tensor learning primitives using GPU tensor cores | |
Huang et al. | High performance hierarchical tucker tensor learning using gpu tensor cores | |
CN109753682B (zh) | 一种基于gpu端的有限元刚度矩阵模拟方法 | |
Zhang | Clcnet: Improving the efficiency of convolutional neural network using channel local convolutions | |
Li et al. | DiVIT: Algorithm and architecture co-design of differential attention in vision transformer | |
CN117808659A (zh) | 用于执行多维卷积运算方法、系统、设备和介质 | |
CN117278049A (zh) | 基于权重化qr分解的omp信号重构方法及装置 | |
CN103942805A (zh) | 基于局部多原子匹配追踪的图像稀疏分解快速方法 | |
Li et al. | High-performance tensor decoder on GPUs for wireless camera networks in IoT | |
Marcellino et al. | A gpu-accelerated svd algorithm, based on qr factorization and givens rotations, for dwi denoising | |
Xu et al. | CUR and Generalized CUR Decompositions of Quaternion Matrices and their Applications | |
Zhang et al. | Expanding the edge: Enabling efficient winograd cnn inference with deep reuse on edge device | |
Van de Geijn | Implementing the QR-Algorithm on an Array of Processors | |
Kaloorazi et al. | Randomized ULV decomposition for approximating low-rank matrices | |
Chao et al. | Parallel optimization of K-SVD algorithm for image denoising based on Spark | |
Wang et al. | An efficient architecture for floating-point eigenvalue decomposition | |
Fu et al. | Fast grouped high-order SVD method for Poisson noise removal in video sequential images | |
JP7058810B2 (ja) | 信号処理システム | |
Soh et al. | Dynamic Tensor Linearization and Time Slicing for Efficient Factorization of Infinite Data Streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |