CN101847086A - 一种基于循环雅克比的实对称阵特征分解装置 - Google Patents
一种基于循环雅克比的实对称阵特征分解装置 Download PDFInfo
- Publication number
- CN101847086A CN101847086A CN 201010177436 CN201010177436A CN101847086A CN 101847086 A CN101847086 A CN 101847086A CN 201010177436 CN201010177436 CN 201010177436 CN 201010177436 A CN201010177436 A CN 201010177436A CN 101847086 A CN101847086 A CN 101847086A
- Authority
- CN
- China
- Prior art keywords
- module
- row
- angle
- coordinate
- rotation
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 65
- 230000008901 benefit Effects 0.000 claims description 44
- 238000000354 decomposition reaction Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 7
- 230000007935 neutral effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
Images
Landscapes
- Digital Computer Display Output (AREA)
Abstract
本发明提供了一种基于循环雅克比的实对称阵特征分解装置,包括:存储模块,用于保存并更新N阶实对称阵A和正交阵Q的元素;并按照预置循环遍历顺序读取A的ap,p,aq,q,ap,q传送到求角模块,读取A的左乘、右乘元素和Q的右乘元素传送到旋转模块;求角模块,用于对ap,p,aq,q,ap,q组成的复数做求角计算,将旋转角度传送到旋转模块;K个旋转模块,用于根据旋转角度对A的左乘、右乘元素或Q的右乘元素进行旋转计算,将旋转得到的数据输出至存储模块进行更新;其中K为并行度;控制模块,用于控制存储模块的数据读取和更新,以及求角模块的求角计算和旋转模块的旋转计算。通过本发明,在合理的硬件资源下实现了较高的运算性能,解决运算性能和资源消耗之间的矛盾。
Description
技术领域
本发明涉及矩阵计算与集成电路技术领域,特别是涉及一种基于循环雅克比的实对称阵特征分解装置。
背景技术
实对称阵的特征分解是线性代数中一种重要的矩阵分解,在信号处理、统计学等领域有着重要的应用。循环雅克比(Cyclic Jacobi)算法是用来计算实对称矩阵全部特征值及其对应特征向量的一种变换方法,其基本思想是通过一组平面旋转变换(正交相似变换)将对称矩阵A转换为对角阵,从而求得全部特征值和特征向量,该方法能在求特征值同时求得相当精确的近似正交规范特征向量。
采用循环雅克比(Cyclic Jacobi)算法来实现特征分解,通常包括两类实现方法:一类是基于脉动阵列结构的处理系统,另一类是基于单一运算模块的处理系统。
其中,对于基于脉动阵列结构的处理系统,由于脉动阵列拥有很高的计算并行度,并且阵列的结构与循环雅克比算法相互吻合,因此具有非常强大的计算性能。但是它的缺点也非常明显,对于维度为N的矩阵,其需要N2/4个运算模块,故在实现上需要消耗大量的硬件资源。在现有的FPGA芯片中,很难实现大规模矩阵的特征分解。
基于单一运算模块的处理系统,现有技术通常采用一个求角模块和一个旋转模块实现了特征分解处理系统,这种实现方法的缺点是计算性能相对较差,计算效率不高。还有一种方法是采用两个CORDIC模块实现特征分解处理系统,其中一个CORDIC模块用于求角和旋转,另一个只用于旋转,以提高求角计算模块的使用效率,该方法可采用了一定程度的流水线技术,使得系统的计算性能有所提高,但尽管如此,该系统的并行度并没有变化,计算性能相对还是不高。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够一种基于循环雅克比的实对称阵特征分解实现方案,可以在合理的硬件资源条件下实现较高的运算性能,解决运算性能和资源消耗之间的矛盾。
发明内容
本发明所要解决的技术问题是提供一种基于循环雅克比的实对称阵特征分解装置,可以在合理的硬件资源条件下实现较高的运算性能,解决运算性能和资源消耗之间的矛盾。
为了解决上述问题,本发明公开了一种基于循环雅克比的实对称阵特征分解装置,包括:
存储模块,用于分别保存并更新N阶实对称阵A和正交阵Q的各个元素;以及按照预置循环遍历顺序,读取A的元素ap,p,aq,q,ap,q(p=1,2,...,N;q=1,2,...,N;p≠q)传送到求角模块,并相应的依次读取A的左乘元素、A的右乘元素和Q的右乘元素,传送到K个旋转模块;
求角模块,用于针对元素ap,p,aq,q,ap,q组成的复数进行求角计算,得到旋转角度并传送到K个旋转模块;
K个旋转模块,用于根据所述旋转角度,分别针对A的左乘元素、A的右乘元素或者Q的右乘元素进行旋转计算,并将旋转后得到的数据元素输出至存储模块进行更新;其中,K为并行度;
控制模块,用于通过存储控制信号控制存储模块的数据读取和更新,以及通过运算使能信号控制求角模块的求角计算和旋转模块的旋转计算。
进一步,所述旋转单元的旋转计算依次包括:A左乘、A右乘和Q右乘操作;
针对元素ap,p,aq,q,ap,q,A的左乘元素为A的第p行和第q行的对应元素,A的右乘元素为A的第p列和第q列的对应元素,Q的右乘元素为Q的第p列和第q列的对应元素。
优选的,所述装置完成一次循环遍历包括N-1组元素的遍历,每组元素的遍历包括N/2次操作,一次操作通过旋转模块完成3N次旋转计算;则每组元素的遍历进行3次可并行的N2/2个旋转计算。
优选的,所述并行度K的最大值为N2/2。
优选的,在N-1组元素的遍历中,针对第一组各个元素中的apq,p取值为1,3,5,...,N-1,q=p+1;
则进行一次循环遍历,各组元素之间的变换顺序依次为:
第一个元素的行坐标不变,列坐标传到后一个元素的列坐标;
中间元素的行坐标传到前一个元素的行坐标,列坐标传到后一个元素的列坐标;其中,第二个元素的行坐标传到前一个元素的列坐标;
最后一个元素的行坐标传到前一个元素的行坐标,列坐标传到自身的行坐标。
优选的,针对一组元素,旋转模块完成A右乘操作后,由求角模块进行下一组元素的求角计算。
进一步,控制模块的运算使能信号对A左乘、A右乘和Q右乘的使能周期均为N2/(2K)。
进一步,一组元素的遍历操作周期为:N2/(2K)+N2/(2K)+求角计算延迟+旋转计算延迟。
优选的,所述各个模块通过总线进行数据传送;其中,
存储模块通过求角输入总线将相应的数据元素传送至求角模块;存储模块通过旋转输入总线将相应的数据元素传送至旋转模块;求角模块通过角度总线将旋转角度分别传送到K个旋转模块;K个旋转模块通过输出总线将旋转后得到的数据元素传送回存储模块。
优选的,所述控制模块还用于通过总线选择信号控制存储模块将读取的数据元素传送到求角输入总线或旋转输入总线;以及通过总线控制信号控制求角输入总线、角度总线和旋转输入总线、输出总线将相应的数据元素输入至对应的求角模块、旋转模块、存储模块中。
与现有技术相比,本发明具有以下优点:
(1)、并行度可配置。本发明在循环雅克比算法的基础上,采用了可配置并行化技术。不同于现有技术中的资源节省但运算性能不高的运算模块结构,和运算性能高但资源消耗严重的脉动阵列结构,本发明提出的可配置结构的特征分解装置,非常好的解决了运算性能与资源消耗之间的矛盾,使得对于不同规模的特征分解问题,在现有FPGA硬件资源的条件下,达到了最佳的运算性能。
(2)、优化的遍历顺序。本发明优化了循环雅克比算法在遍历矩阵元素时的顺序,使得在整个计算过程中,可以同时进行的旋转计算数始终保持最高的N2/2。也就是说,当硬件资源满足时,本发明可以配置系统的并行度为N2/2,即系统包含N2/2个旋转模块,相比脉动阵列结构的并行度还要高出一倍。
(3)、深度流水处理。本发明在实现过程中采用了深度流水处理,使得运算模块在进行大量计算的时候达到了很高的数据吞吐率。即在每一组操作时,当完成矩阵A的右乘操作之后即进行下一组元素的求角计算,而不是等到所有旋转操作完成再开始,很大程度的节省了一组操作所需时间,提高了系统的整体性能。
附图说明
图1是本发明一种基于循环雅克比的实对称阵特征分解装置实施例的结构图;
图2是本发明实施例所述的存储模块的结构图;
图3是针对8阶实对称矩阵的各组元素之间的变化过程示意图;
图4是本发明实施例所述求角模块和旋转模块的时序关系图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在介绍本发明的具体实施方式之前,首先对循环雅克比算法进行说明。对于一个实对称阵A,若存在正交阵Q,可以将其相似变换为一个对角阵∑,如下式所示:
QTAQ=∑;
其中,上标T表示对向量或矩阵的转置。则∑对角线上的元素即为A的特征值,而Q中各列即为相应的特征向量。记旋转矩阵为W(p,q,θ),其中p>q,旋转矩阵中的元素定义如下:wpp=cosθ,wpq=sinθ,wqp=-sinθ,wqq=cosθ,而其余对角线元素都为1,非对角线元素都为0,
将旋转矩阵对称的作用于对称阵A,得到A′=W(p,q,θ)TAW(p,q,θ),要使得旋转后矩阵中(p,q),(q,p)位置的元素为零,则可以确定θ的值:
这样,矩阵A中(p,q),(q,p)位置的能量就被转移到对角线上了。循环雅克比算法就是通过一系列这样的旋转操作,将矩阵A中非对角元素的能量逐步转移到对角线上,当非对角元素能量之和小于某个值时,我们即可认为A已经相似成一个对角阵了,即完成了特征分解操作。循环雅克比算法如表1所示。
表1循环雅克比算法
旋转模块的个数即为系统的并行度,这在本发明中是可以配置的。
步骤二:使用坐标旋转数字计算(CORDIC,Coordinate Rotation DigitalComputer)单元生成两类运算模块,分别为求角模块和旋转模块。其中求角模块根据输入的ap,p,aq,q,ap,q,p≠q,计算旋转操作所需角度θp,q,而旋转模块则将输入的XIN和YIN所组成的复数XIN+jYIN旋转θp,q角度。
步骤三:用两个双端口RAM(随机存取储存器)组成存储模块,分别用于保存算法中的N阶方阵A和Q。由于系统对数据读取的频率较高,存储模块的地址采用矩阵坐标的比特位合并方式生成。而控制两个RAM的信号和选择总线的信号由另外的控制信号生成。
步骤四:确定循环雅克比算法中遍历矩阵元素的顺序,使得系统能够同时进行N2/2个旋转计算而不会有相互之间的干扰。本发明将一次遍历分为N-1组操作,每组操作要进行3次可并行的N2/2个旋转计算,分别对应对矩阵A的左乘,对矩阵A的右乘和对矩阵Q的右乘。
步骤五:根据所确定的遍历顺序实现控制模块,产生控制其他模块工作的信号。其中主要包括RAM控制信号,总线选择信号,总线控制信号和运算模块使能信号这四类控制信号。这四类控制信号以一组操作为周期,控制其他模块协同工作,最终实现完整的特征分解的功能。
参照图1,示出了本发明一种基于循环雅克比的实对称阵特征分解装置实施例的结构图,包括:
存储模块101,用于分别保存并更新N阶实对称阵A和正交阵Q的各个元素;以及按照预置循环遍历顺序,读取A的元素ap,p,aq,q,ap,q(p=1,2,...,N;q=1,2,...,N;p≠q)传送到求角模块,并相应的依次读取A的左乘元素、A的右乘元素和Q的右乘元素,传送到K个旋转模块;
求角模块102,用于针对元素ap,p,aq,q,ap,q组成的复数进行求角计算,得到旋转角度并传送到K个旋转模块;
K个旋转模块103,用于根据所述旋转角度,分别针对A的左乘元素、A的右乘元素或者Q的右乘元素进行旋转计算,并将旋转后得到的数据元素输出至存储模块进行更新;其中,K为并行度;
控制模块104,用于通过存储控制信号控制存储模块的数据读取和更新,以及通过运算使能信号控制求角模块的求角计算和旋转模块的旋转计算。
其中,所述旋转单元的旋转计算依次包括:A左乘、A右乘和Q右乘操作;针对元素ap,p,aq,q,ap,q,A的左乘元素为A的第p行和第q行的对应元素,A的右乘元素为A的第p列和第q列的对应元素,Q的右乘元素为Q的第p列和第q列的对应元素。
在本发明的优选实施例中,所述各个模块通过总线进行数据传送;所述总线包括求角输入总线105、旋转输入总线106、角度总线107和输出总线108;其中,存储模块通过求角输入总线将相应的数据元素传送至求角模块;存储模块通过旋转输入总线将相应的数据元素传送至旋转模块;求角模块通过角度总线将旋转角度分别传送到K个旋转模块;K个旋转模块通过输出总线将旋转后得到的数据元素传送回存储模块。
所述控制模块还用于通过总线选择信号控制存储模块将读取的数据元素传送到求角输入总线或旋转输入总线;以及通过总线控制信号控制求角输入总线、角度总线和旋转输入总线、输出总线将相应的数据元素输入至对应的求角模块、旋转模块、存储模块中。
下面对所述装置进行具体说明。
一、各个模块的运行实现:
对于每一次操作,首先,存储模块根据预置遍历顺序读取矩阵A的元素ap,p,aq,q,ap,q并传送到求角输入总线;然后上述元素输入至求角模块,在求角模块中计算得到旋转角度并传送到角度总线;同时,存储模块还将读取旋转操作中对应的行列的元素,并传送到旋转输入总线;之后,角度总线和旋转输入总线并行的向K个旋转模块输入旋转的数据元素与旋转角度,旋转模块计算得到旋转后的数据将传送到输出总线;最后输出总线将数据传送回存储模块。这样就完成了一次操作。而在每次操作中,控制模块将输出控制信号来控制存储模块和总线的数据读写和传输。
对照表1中(2.2)和(2.3),一次操作即将矩阵A(p,q)位置的元素旋转为零,这样的一次操作总共需要完成3N次旋转计算。
二、求角模块和旋转模块的实现:
本发明是由两类运算模块构成,分别为求角模块和旋转模块。求角模块对于输入的ap,p,aq,q,ap,q,p≠q,进行求角计算并输出旋转角度θp,q。实际上,求角模块是先将输入的数据构成复数ap,p-aq,q+j(2ap,q),然后再将该复数旋转至实数轴,其旋转的角度的一半就是θ。旋转模块对于输入的XIN,YIN和θp,q,通过旋转计算输出XOUT=XINcosθ-YINsinθ和YOUT=XINsinθ+YINcosθ。实际上,旋转模块是将复数XIN+jYIN旋转角度θ,旋转后的复数,其实部即为输出的XOUT,虚部则为输出的YOUT。例如,对于A的左乘,可以分别将A的第p行的第n(n=1,2,......N)个元素A(p,n)作为XIN,将A的第q行的第n个元素A(q,n)作为YIN,进行旋转操作;对于A的右乘,可以分别将A的第p列的第n(n=1,2,......N)个元素A(n,p)作为XIN,将A的第q列的第n个元素A(n,q)作为YIN,进行旋转操作;对于Q的右乘,可以分别将Q的第p列的第n(n=1,2,......N)个元素Q(n,p)作为XIN,将Q的第q行的第n个元素Q(n,q)作为YIN,进行旋转操作。
因此,求角模块和旋转模块的计算主体都是幅旋转,前者为旋转求角,后者为已知角度做旋转。在具体实施例,这两个模块都可以用坐标旋转数字计算(CORDIC,Coordinate Rotation Digital Computer)单元来实现。例如,在Xilinx公司出品的开发软件ISE中集成了具有CORDIC功能的IPcore,可以直接用于实现上述两个基本模块。
三、存储模块的实现:
在本发明的具体实施例中,所述的存储模块的结构图如图2所示。该存储模块由两个双端口随机存取储存器(RAM)组成,RAM A和RAM B分别保存算法中的N阶方阵A和Q。由于RAM是线性存储,一个地址对应矩阵的一个元素。为了方便地址信号的生成,将矩阵中(i,j)位置的元素保存在地址(i-1)2n+(j-1)的空间中,其中2n为不小于N的最小的2的幂,这样生成地址信号就无需乘加运算,而仅需比特位合并即可。
这两个RAM的四个数据端口都是双向输入输出端口,由于数据输入与输出的时间不同,因此不会造成冲突。输出的数据将总线选择信号被选择传送到求角输入总线或者旋转输出总线上,并在所述总线上封装成特定的数据形式,输入到求角模块和旋转模块相应的输入端,例如,将ap,p-aq,q作为求角模块的实部进行输入,将2ap,q作为求角模块的实部进行输入;旋转模块的数据封装可参见上述XIN、YIN的输入。而输出总线上的数据将传回到RAM中对应的地址中。在存储模块数据元素输入输出的过程中,由控制模块产生这两个RAM的存储控制信号(包括地址信号和读写控制信号),而总线选择信号也由控制信号产生。
四、预置循环遍历顺序
在实现控制模块之前,需要先确定在表1中遍历矩阵的顺序。在每一次遍历中,我们需要针对所有的非对角元素做一次对称旋转操作。这些操作的结果是使得该元素及其对称元素被旋转至零。由于这样的操作只涉及矩阵中的两行与两列,因此可以同时进行N/2个对称旋转操作。
在本发明的优选实施例中,所述装置完成一次循环遍历包括N-1组元素的遍历,每组元素的遍历包括N/2次操作,一次操作通过旋转模块完成3N次旋转计算;则每组元素的遍历进行3次可并行的N2/2个旋转计算。
下面,以一个8阶实对称矩阵为例,选择第一组操作针对的元素为(1,2),(3,4),(5,6)和(7,8),即
A′=W(7,8)TW(5,6)TW(3,4)TW(1,2)TAW(1,2)W(3,4)W(5,6)W(7,8)
Q′=QW(1,2)W(3,4)W(5,6)W(7,8)
根据表1中的步骤(2.1),可以知道上述四个旋转操作中的角度θ1,2,θ3,4,θ5,6,θ7,8可以同时计算出来,而不会有相互之间的干扰。而对于矩阵A来说,左乘W(1,2)T,W(3,4)T,W(5,6)T和W(7,8)T是分别对它的第1、2两行,3、4两行,5、6两行和7、8两行做操作,因此这四个左乘矩阵可以同时作用在矩阵A上,而不会有相互之间的干扰。同理,A的四个右乘矩阵和Q的四个右乘矩阵也可以同时作用。
由于一个旋转矩阵对应N(在本实施例中N为8)个旋转计算,因此,可以同时进行N/2×N=N2/2个旋转计算,这也是本发明中最大的并行度,即并行度K的最大值max{K}=N2/2。而在实际情况中,K往往根据硬件资源的多少取N2/2的一个因子。在本发明的实施例中,并行度也即旋转模块的个数K是可以调整的。在资源允许的条件下,增加并行度将有效的提高系统的运算性能。
对于这样一组元素操作,先做对A左乘的N2/2个旋转计算,再做对A右乘的旋转计算,最后做对Q右乘的旋转计算,总共需要做3×N2/2=3N2/2个旋转计算。
为了能够使每一组操作都能达到上述的效果,必须要设定合适的遍历顺序。在本发明的优选实施例中,在N-1组元素的遍历中,针对第一组各个元素中的apq,p取值为1,3,5,...,N-1,q=p+1;
则进行一次循环遍历,各组元素之间的变换顺序依次为:
第一个元素的行坐标不变,列坐标传到后一个元素的列坐标;
中间元素的行坐标传到前一个元素的行坐标,列坐标传到后一个元素的列坐标;其中,第二个元素的行坐标传到前一个元素的列坐标;
最后一个元素的行坐标传到前一个元素的行坐标,列坐标传到自身的行坐标。
如图3所示,为针对8阶实对称矩阵各组元素之间的变化过程示意图,其示意了从当前组的4个元素到下一组的4个元素的变换。
其中每个小矩形表示一个元素的坐标,左边方格表示行坐标,右边表示列坐标。如表2所示,为一次遍历循环中,按照上述变换规则得到的各组元素顺序。需要注意的是,由于A为实对称阵,而每个元素对应的是对称旋转操作,因此遍历到元素(i,j)即相当于对元素(j,i)进行操作。可以发现,这七组元素遍历了矩阵所有的下三角元素,即表1中的步骤(2)。而且当第七组再按照图3规律向下变换时,得到的第八组元素与第一组元素是完全相同的。
表2针对8阶实对称矩阵,一次循环中各组元素顺序
第一组: | (1,2) | (3,4) | (5,6) | (7,8) |
第二组: | (1,3) | (5,2) | (7,4) | (8,6) |
第三组: | (1,5) | (7,3) | (8,2) | (6,4) |
第四组: | (1,7) | (8,5) | (6,3) | (4,2) |
第五组: | (1,8) | (6,7) | (4,5) | (2,3) |
第一组: | (1,2) | (3,4) | (5,6) | (7,8) |
第六组: | (1,6) | (4,8) | (2,7) | (3,5) |
第七组: | (1,4) | (2,6) | (3,8) | (5,7) |
根据上述顺序,例如,由第一组元素向第二组元素进行变换,
第1个元素的行坐标(1)不变,列坐标(2)传到第2个元素的列坐标;
第2个元素的行坐标(3)传到第1个元素的列坐标,列坐标(4)传到第3个元素的列坐标;
第3个元素的行坐标(5)传到第2个元素的行坐标,列坐标(6)传到第4个元素的列坐标;
第4个元素的行坐标(7)传到第3个元素的行坐标,列坐标(8)传到自身的行坐标。
五、控制模块的实现:
根据上述预置循环遍历顺序,就可以实现本发明实施例中的控制模块。所述控制模块主要产生四类控制信号,分别为存储控制信号、总线选择信号、总线控制信号和运算模块使能信号。这些信号协同工作,保证了系统中的运算模块能够正常的运行,从而使得整个系统能够实现特征分解的功能。
如图4所示,为本发明实施例所述求角模块和旋转模块的时序关系图。由于系统运行以一组操作为周期,所以这里只给出第一组操作的时序。下面将结合这个时序图对上述控制信号进行说明。
在第一组操作的求角输入之前,RAM控制信号从保存实对称阵A的RAMA中依次读取a11、a22、a12、a33、a44、a34、a55、a66、a56......一直到aN-1,N-1、aN,N、aN-1,N,例如对于8阶实对称矩阵,直到a88,a78a77,a88,a78。总线选择信号将这些数据选择传送到求角输入总线,然后总线控制信号控制求角输入总线将接收到的数据封装成求角模块可以接受的形式,例如对于元素a11、a22、a12,将a11-a22作为求角模块的实部进行输入,将2a12作为求角模块的虚部进行输入;求角模块输入并使能N/2个周期,经过一定延迟之后输出旋转角度到角度总线;在角度总线接收数据时,存储控制信号开始从RAM A中依次读取矩阵A第1、2行,第3、4行,第5、6行......直到第N-1、N行的数据元素,总线选择信号将这些数据选择传送到旋转输入总线,然后总线控制信号控制旋转输入总线将接收到的数据封装成K个旋转模块可以同时接受的形式,例如对于A的左乘,数据封装的形式为:第一对输入到旋转模块XIN和YIN的数据分别是A(p,1)和A(q,1),......第n对输入到旋转模块XIN和YIN的数据分别是A(p,n)和A(q,n)等等。旋转模块同时从旋转输入总线和角度总线输入数据并开始使能,由于总共需要N2/2次旋转计算,存在K个旋转模块,故需要使能N2/(2K)个周期,经过一定延迟之后输出旋转结果到输出总线,然后总线选择信号选择接收输出总线的数据并保存到RAM A中,此时完成的是行变换操作,即对矩阵A左乘操作。
在输入完对A矩阵左乘操作的数据后,依次再输入对A矩阵右乘的数据和对Q矩阵右乘的数据进行旋转操作,此时RAM控制信号先从RAM A中读取矩阵A的第1、2列,3、4列,5、6列......直到第N-1、N列的数据元素,再从RAM B中读取矩阵Q的第1、2列,3、4列,5、6列......直到第N-1、N列的数据元素,其他控制信号同左乘操作。
在本发明的优选实施例中,旋转模块可采用了深度流水处理,即针对一组元素,完成对A右乘操作后,进行下一组元素的求角操作,而不是等到所有旋转操作完成再开始下一组的操作。所述A左乘、A右乘和Q右乘的使能周期均为N2/(2K)。由此可以计算一组元素的遍历操作周期:
组操作周期=N2/(2K)+N2/(2K)+求角计算延迟+旋转计算延迟
在进行第二组操作的时候,所有的控制信号与第一组时相同,以下各组均类似。例如,对于8阶是对称矩阵,只是取数据的顺序由原先的(1,2),(3,4),(5,6),(7,8)变换为(1,3),(5,2),(7,4),(8,6),如表2所示。
本发明实施例基于循环雅克比算法,通过优化遍历矩阵元素的顺序,使得算法在理论上可以达到最大的并行化。而在具体实现中,本发明可以根据对称阵的规模和硬件资源动态的选择并行度,从而在计算性能与硬件消耗上达到最佳的平衡。
以上对本发明所提供的一种基于循环雅克比的实对称阵特征分解装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于循环雅克比的实对称阵特征分解装置,其特征在于,包括:
存储模块,用于分别保存并更新N阶实对称阵A和正交阵Q的各个元素;以及按照预置循环遍历顺序,读取A的元素ap,p,aq,q,ap,q(p=1,2,...,N;q=1,2,...,N;p≠q)传送到求角模块,并相应的依次读取A的左乘元素、A的右乘元素和Q的右乘元素,传送到K个旋转模块;
求角模块,用于针对元素ap,p,aq,q,ap,q组成的复数进行求角计算,得到旋转角度并传送到K个旋转模块;
K个旋转模块,用于根据所述旋转角度,分别针对A的左乘元素、A的右乘元素或者Q的右乘元素进行旋转计算,并将旋转后得到的数据元素输出至存储模块进行更新;其中,K为并行度;
控制模块,用于通过存储控制信号控制存储模块的数据读取和更新,以及通过运算使能信号控制求角模块的求角计算和旋转模块的旋转计算。
2.如权利要求1所述的装置,其特征在于,所述旋转单元的旋转计算依次包括:A左乘、A右乘和Q右乘操作;
针对元素ap,p,aq,q,ap,q,A的左乘元素为A的第p行和第q行的对应元素,A的右乘元素为A的第p列和第q列的对应元素,Q的右乘元素为Q的第p列和第q列的对应元素。
3.如权利要求1所述的装置,其特征在于,所述装置完成一次循环遍历包括N-1组元素的遍历,每组元素的遍历包括N/2次操作,一次操作通过旋转模块完成3N次旋转计算;则每组元素的遍历进行3次可并行的N2/2个旋转计算。
4.如权利要求3所述的装置,其特征在于,
所述并行度K的最大值为N2/2。
5.如权利要求4所述的装置,其特征在于,在N-1组元素的遍历中,针对第一组各个元素中的apq,p取值为1,3,5,...,N-1,q=p+1;
则进行一次循环遍历,各组元素之间的变换顺序依次为:
第一个元素的行坐标不变,列坐标传到后一个元素的列坐标;
中间元素的行坐标传到前一个元素的行坐标,列坐标传到后一个元素的列坐标;其中,第二个元素的行坐标传到前一个元素的列坐标;
最后一个元素的行坐标传到前一个元素的行坐标,列坐标传到自身的行坐标。
6.如权利要求1所述的装置,其特征在于,
针对一组元素,旋转模块完成A右乘操作后,由求角模块进行下一组元素的求角计算。
7.如权利要求6所述的装置,其特征在于,
控制模块的运算使能信号对A左乘、A右乘和Q右乘的使能周期均为N2/(2K)。
8.如权利要求7所述的方法,其特征在于,一组元素的遍历操作周期为:
N2/(2K)+N2/(2K)+求角计算延迟+旋转计算延迟。
9.如权利要求1所述的装置,其特征在于,所述各个模块通过总线进行数据传送;其中,
存储模块通过求角输入总线将相应的数据元素传送至求角模块;
存储模块通过旋转输入总线将相应的数据元素传送至旋转模块;
求角模块通过角度总线将旋转角度分别传送到K个旋转模块;
K个旋转模块通过输出总线将旋转后得到的数据元素传送回存储模块。
10.如权利要求9所述的装置,其特征在于,
所述控制模块还用于通过总线选择信号控制存储模块将读取的数据元素传送到求角输入总线或旋转输入总线;以及通过总线控制信号控制求角输入总线、角度总线和旋转输入总线、输出总线将相应的数据元素输入至对应的求角模块、旋转模块、存储模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010177436A CN101847086B (zh) | 2010-05-14 | 2010-05-14 | 一种基于循环雅克比的实对称阵特征分解装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010177436A CN101847086B (zh) | 2010-05-14 | 2010-05-14 | 一种基于循环雅克比的实对称阵特征分解装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101847086A true CN101847086A (zh) | 2010-09-29 |
CN101847086B CN101847086B (zh) | 2012-10-10 |
Family
ID=42771713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010177436A Expired - Fee Related CN101847086B (zh) | 2010-05-14 | 2010-05-14 | 一种基于循环雅克比的实对称阵特征分解装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101847086B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722412A (zh) * | 2011-03-31 | 2012-10-10 | 国际商业机器公司 | 组合计算装置和方法 |
CN106919537A (zh) * | 2017-03-07 | 2017-07-04 | 电子科技大学 | 一种基于FPGA的Jacobi变换的高效实现方法 |
CN109740114A (zh) * | 2018-12-28 | 2019-05-10 | 中国航天科工集团八五一一研究所 | 基于fpga的实对称矩阵特征分解实时处理方法 |
WO2020206716A1 (zh) * | 2019-04-10 | 2020-10-15 | 浙江大学 | 一种用于FPGA的并行Jacobi计算加速实现方法 |
CN114237548A (zh) * | 2021-11-22 | 2022-03-25 | 南京大学 | 基于非易失性存储器阵列的复数点乘运算的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007062104A2 (en) * | 2005-11-23 | 2007-05-31 | Tensorcomm, Inc. | Systems and methods for implementing cordic rotations for projectors and related operators |
CN101086699A (zh) * | 2007-07-12 | 2007-12-12 | 浙江大学 | 基于单fpga的矩阵乘法器装置 |
CN101533387A (zh) * | 2009-04-24 | 2009-09-16 | 西安电子科技大学 | 基于fpga的边角块稀疏矩阵并行lu分解器 |
-
2010
- 2010-05-14 CN CN201010177436A patent/CN101847086B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007062104A2 (en) * | 2005-11-23 | 2007-05-31 | Tensorcomm, Inc. | Systems and methods for implementing cordic rotations for projectors and related operators |
CN101086699A (zh) * | 2007-07-12 | 2007-12-12 | 浙江大学 | 基于单fpga的矩阵乘法器装置 |
CN101533387A (zh) * | 2009-04-24 | 2009-09-16 | 西安电子科技大学 | 基于fpga的边角块稀疏矩阵并行lu分解器 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722412A (zh) * | 2011-03-31 | 2012-10-10 | 国际商业机器公司 | 组合计算装置和方法 |
US9021501B2 (en) | 2011-03-31 | 2015-04-28 | International Business Machines Corporation | Combinatorial computing |
US9021500B2 (en) | 2011-03-31 | 2015-04-28 | International Business Machines Corporation | Rule based combinatorial computing for map/reduce platform |
CN106919537A (zh) * | 2017-03-07 | 2017-07-04 | 电子科技大学 | 一种基于FPGA的Jacobi变换的高效实现方法 |
CN109740114A (zh) * | 2018-12-28 | 2019-05-10 | 中国航天科工集团八五一一研究所 | 基于fpga的实对称矩阵特征分解实时处理方法 |
CN109740114B (zh) * | 2018-12-28 | 2023-07-28 | 中国航天科工集团八五一一研究所 | 基于fpga的实对称矩阵特征分解实时处理方法 |
WO2020206716A1 (zh) * | 2019-04-10 | 2020-10-15 | 浙江大学 | 一种用于FPGA的并行Jacobi计算加速实现方法 |
CN114237548A (zh) * | 2021-11-22 | 2022-03-25 | 南京大学 | 基于非易失性存储器阵列的复数点乘运算的方法及系统 |
CN114237548B (zh) * | 2021-11-22 | 2023-07-18 | 南京大学 | 基于非易失性存储器阵列的复数点乘运算的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101847086B (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108416436B (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN101847086B (zh) | 一种基于循环雅克比的实对称阵特征分解装置 | |
US20190026626A1 (en) | Neural network accelerator and operation method thereof | |
CN109447241B (zh) | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 | |
CN107993186A (zh) | 一种基于Winograd算法的3D CNN加速方法及系统 | |
CN101763445B (zh) | 一种高光谱图像降维芯片 | |
US11693662B2 (en) | Method and apparatus for configuring a reduced instruction set computer processor architecture to execute a fully homomorphic encryption algorithm | |
CN106940815A (zh) | 一种可编程卷积神经网络协处理器ip核 | |
Ballard et al. | Communication lower bounds for matricized tensor times Khatri-Rao product | |
CN107341133B (zh) | 基于任意维数矩阵lu分解的可重构计算结构的调度方法 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN115344236B (zh) | 多项式乘法运算方法、多项式乘法器、设备及介质 | |
Zhang et al. | cuTensor-Tubal: Efficient primitives for tubal-rank tensor learning operations on GPUs | |
CN105608059A (zh) | 一种基于改进的按位替换法求矩阵三角分解的模块 | |
Haghi et al. | A reconfigurable compute-in-the-network fpga assistant for high-level collective support with distributed matrix multiply case study | |
CN104850529A (zh) | 基于Zynq开发平台构建LS-SVM模型的加速计算片上系统 | |
CN101827044B (zh) | 一种基于混合qr分解的最小二乘fpga求解装置 | |
US20160226468A1 (en) | Method and apparatus for parallelized qrd-based operations over a multiple execution unit processing system | |
CN103329003A (zh) | 信号处理电路和超声诊断装置 | |
CN102970545A (zh) | 一种基于二维离散小波变换算法的静态图像压缩方法 | |
CN110890120B (zh) | 基于阻变存储器的通用区块链应用处理加速方法及系统 | |
CN104268124A (zh) | 一种fft实现装置和方法 | |
WO2021026196A1 (en) | Configuring a reduced instruction set computer processor architecture to execute a fully homomorphic encryption algorithm | |
CN103902762A (zh) | 一种针对正定对称矩阵进行最小二乘方程求解的电路结构 | |
Lu et al. | High-performance homomorphic matrix completion on GPUs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121010 Termination date: 20150514 |
|
EXPY | Termination of patent right or utility model |