基于多核dsp的并行矩阵全选主元高斯约旦求逆算法的制作方法

文档序号:6378945阅读:306来源:国知局
专利名称:基于多核dsp的并行矩阵全选主元高斯约旦求逆算法的制作方法
技术领域
本发明属于移动通信领域,具体的讲,涉及一种基于多核DSP的并行矩阵全选主元高斯约旦求逆算法。
背景技术
矩阵求逆是工程实践中常用也是较为繁琐的运算过程,现有的普通矩阵求你算法种类繁多,其中绝对大部分的算法复杂程度可以满足一般的工程应用要求 。然而随着应用的日益复杂,这些的矩阵求逆算法已经不能满足高速运算的要求。因此现有技术中为了满足矩阵求逆高速运算的要求,提出了一些高速的求逆算法,但是这些算法都是针对一些特殊矩阵而实现,如针对三对角线矩阵、五对角线矩阵和三角矩阵逆矩阵的算法,这些算法对矩阵的类型有特定的要求,因此开发出既能针对所有矩阵均可实现求逆功能、并且满足高速运算要求的求逆算法已成为现阶段人们研究的重点。

发明内容
本发明的目的在于克服现有技术中关于求逆矩阵的算法不能满足所有矩阵,并且现有的矩阵求逆算法已经不能满足高速运算要求的缺陷,提供一种基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,充分地发挥多核DSP的高性能优势,解决上述缺陷。本发明采用的技术方案如下
基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,通过以下步骤实现
(1)共有P块处理器,将处理器依次编号为O (p-1),并通过第O号处理器对原矩阵A进行全选主元,得到主行元素,其中P为正整数;
(2)将进行了全选主元后的矩阵A划分为P块子矩阵,第O号处理器保留其中一个子矩阵,并将另外P-I块子矩阵分别发送给第I (P-I)号处理器,使每个处理器分别接收一块子矩阵;
(3)拥有当前主行元素的处理器对主行元素进行更新,并将更新后的主行元素发送给除第O号处理器和自身处理器外其余的处理器;
(4)除第O号处理器和自身处理器外其余的处理器收到更新后的主行元素数值后,第I (P-1)号处理器分别对自身的子矩阵进行更新;之后分别将自身的子矩阵回传给第O号处理器;
(5)第O号处理器进行整理,再进行全选主元;
(6)选择原矩阵A主行元素的下一行元素作为新的主行元素,重复步骤(3) (5),直到主行元素遍历完原矩阵的所有对角线元素,此时第O号处理器整理得到的矩阵即为原矩阵A的逆矩阵。为了便于查询,所述步骤(I)和步骤(6)中对原矩阵A进行全选主元后,记录交换元素的行列号。为了分散计算,所述步骤(2)中具体实现步骤如下(2a)从原矩阵中的第O行开始,依次将原矩阵的第j行分配给第(j mod p)号的处理器,其中所述j为整数且j彡O;
(2b)每一个处理器中被分配的所有行组成一个子矩阵,在所有子矩阵形成后,第O号处理器保留其中一个子矩阵,并将另外P-I块子矩阵分别发送给第I (P-I)号处理器,使每个处理器分别接收一块子矩阵。再进一步的,所述步骤(3)中子矩阵中拥有当前主行的处理器利用公式
和公式
对主行元素进行更新,其中式中为子矩阵中元素值a力更新后子矩阵中的元素值,η为子矩阵行数,j为整数且O彡j < n, k为整数且O彡k < η,同时j关k。为了满足不同数据传输要求,所述步骤(3)中拥有当前主行的处理器利用公式对 主行元素进行更新后,使用EDMA3或SRIO将更新后的主行元素发送给第I (p-Ι)号处理器中除自身处理器外其余的处理器。为了更新自身的矩阵,所述步骤(4)中I (P-I)号处理器使用公式
% = 4.-
和公式
对自身的子矩阵进行更新,其中i为整数且O < i < n,同时i古k。为了再次满足不同数据传输要求,所述步骤(5)中第I (P-I)号处理器中的子矩阵完成更新后,使用EDMA3或SRIO将其子矩阵回传给第O号处理器。与现有技术相比,本发明具有以下有益效果
(I)本发明利用多核DSP平台进行矩阵的求逆计算,即将矩阵划分为多个子矩阵并将每个子矩阵放入每一个处理器,每一个处理器对于自身子矩阵再分别进行更新,这样分散了矩阵求逆计算,可以有效地提高矩阵求逆运算的速度;通过实验证明,在矩阵阶数越大,并且并行运算的处理器个数越多时,运算速度越快,效果越明显。(2)本发明通过全选主元高斯约旦算法达到了占用内存小的同时求解精度高、运算速度快的效果,高斯约旦算法主要为求解矩阵的逆矩阵,采用多核DSP平台通过高斯约旦算法求解矩阵的逆矩阵,结合了多核平台与高斯约旦算法共同的优点,达到了事半功倍的效果。因为其不仅大大提高了求解的速度,同时还提高了矩阵的求解精度,质量和速度同时得到了保证。(3)本发明采用的是多核DSP,DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件。它不仅具有可编程性,而且实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色,多核DSP被应用于本发明,在很大程度上提高了相互通信的处理器之间的数据交换速度。
(4)本发明通过行交叉划分将矩阵A划分为P块子矩阵,即将原矩阵的第j行分配给第(j mod p)号的处理器,再由分配该处理器所有原矩阵的行组成一个子矩阵,在分配好所有的子矩阵后,将其中的P-I块子矩阵发送给对应的第I (P-I)号处理器。该方法被称为行交叉法,通过上述方法来划分矩阵A的P块子矩阵,不仅简便快捷,充分发挥了多核处理器的优势,同时还保证了后面步骤的正常执行。(5)本发明还使用了 EDMA3或SRIO将子矩阵从第O号处理器发送给其余处理器,或者将其余处理器的子矩阵回传给第O号处理器,EDMA3或SRIO能满足不同的数据传输需求,是未来十几年中嵌入式系统互联的最佳选择之一。


图I为本发明一实施例I中并行算法流程图。图2为本发明一实施例I中主行元素位于第O号处理器子矩阵时的通信示意图。图3为本发明一实施例2中主行元素位于第I号处理器子矩阵时的通信示意图。图4为本发明一实施例3中主行元素位于第2号处理器子矩阵时的通信示意图。图5为本发明一实施例4中主行元素位于第3号处理器子矩阵时的通信示意图。
具体实施例方式下面结合附图与实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。实施例I
如图I所示的基于多核DSP的并行矩阵求逆算法,该算法为全选主元高斯约旦算法,占用内存小,运算速度快且精度较高,易于并行实现等。高斯约旦求逆算法矩阵元素的每次更新都是以对角线上的元素为基础,分别对该元素同行不同列,同列不同行以及既不同列也不同行的元素以不同的公式进行更新。其中每一次更新中当前对角线元素所在的行称为主行,主行上的各矩阵元素称为主行元素,其余矩阵元素称为非主行元素。如图1、2所示,本实施例中使用j=5块处理器对η阶矩阵A求逆,处理器从O到4进行编号。其中数字信号处理器DSPl中包括第O号处理器、第I号处理器和第2号处理器,为三核处理器;数字信号处理器DSP2包括第3号处理器和第4号处理器,为双核处理器。图2为本实施例中主行元素位于第O号处理器子矩阵时的通信示意图。具体的并行算法如下
第I步第O号处理器对原矩阵A进行全选主元,并记录交换元素的行列号。其中所述全选主元即主列消元,并得到主行元素,这里的主行为矩阵A的第一行。第2步将矩阵A划分为5个子矩阵,其中具体实现步骤如下
(2a)从矩阵A中的第一行开始,依次将原矩阵的每一行进行分配,即将第j行分配给第(j mod 5)号的处理器,其中所述j为正整数;
其中mod为取余运算,即计算j除以5的余数;
(2b)每一个处理器中被分配的所有行组成一个子矩阵,在所有子矩阵形成后,将其中的4块子矩阵发送给对应的第I 4号处理器。
第3步其中子矩阵中拥有主行的处理器为第O号处理器,因此第O号处理器利用公式
权利要求
1.基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,通过以下步骤实现 (1)共有P块处理器,将处理器依次编号为O (P-1),并通过第O号处理器对原矩阵A进行全选主元,得到主行元素,其中P为正整数; (2)将进行了全选主元后的矩阵A划分为P块子矩阵,第O号处理器保留其中一个子矩阵,并将另外P-I块子矩阵分别发送给第I (P-I)号处理器,使每个处理器分别接收一块子矩阵; (3)拥有当前主行元素的处理器对主行元素进行更新,并将更新后的主行元素发送给除第O号处理器和自身处理器外其余的处理器; (4)除第O号处理器和自身处理器外其余的处理器收到更新后的主行元素数值后,第1 (P-I)号处理器分别对自身的子矩阵进行更新;之后分别将自身的子矩阵回传给第O号处理器; (5)第O号处理器进行整理,再进行全选主元; (6)选择原矩阵A主行元素的下一行元素作为新的主行元素,重复步骤(3) (5),直到主行元素遍历完原矩阵的所有对角线元素,此时第O号处理器整理得到的矩阵即为原矩阵A的逆矩阵。
2.根据权利要求1所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,所述步骤(1)和步骤(6)中对原矩阵A进行全选主元后,记录交换元素的行列号。
3.根据权利要求2所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,所述步骤(2)中具体实现步骤如下 (2a)从原矩阵中的第O行开始,依次将原矩阵的第j行分配给第(j mod p)号的处理器,其中所述j为整数且j≥O; (2b)每一个处理器中被分配的所有行组成一个子矩阵,在所有子矩阵形成后,第O号处理器保留其中一个子矩阵,并将另外P-1块子矩阵分别发送给第1 (P-1)号处理器,使每个处理器分别接收一块子矩阵。
4.根据权利要求3所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,所述步骤(3)中子矩阵中拥有当前主行的处理器利用公式 和公式
5.根据权利要求4所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,所述步骤(3)中拥有当前主行的处理器利用公式对主行元素进行更新后,使用EDMA3或SRIO将更新后的主行元素发送给第1 (p_l)号处理器中除自身处理器外其余的处理器。
6.根据权利要求5所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,所述步骤(4)中I (p-Ι)号处理器使用公式 和公式
7.根据权利要求I 6任意一项所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,所述步骤(5)中第I (p-Ι)号处理器中的子矩阵完成更新后,使用EDMA3或SRIO将其子矩阵回传给第O号处理器。
全文摘要
本发明提供了一种基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,解决了现阶段关于求逆矩阵的算法不能满足所有矩阵,并且现有的矩阵求逆算法已经不能满足高速运算要求的缺陷。本发明将矩阵A划分为p块子矩阵后依此发送给1~(p-1)号处理器,拥有当前主行元素的处理器对主行元素进行更新,并发送给除第0号处理器和自身处理器外其余的处理器后,1~(p-1)号处理器一样对自身的子矩阵进行更新,并分别将自身的子矩阵回传给第0号处理器,然后选择上一主行元素的下一行元素作为新的主行元素重复上述过程,直到主行元素遍历完原矩阵的所有对角线元素。通过上述方案,本发明达到了既能针对所有矩阵可实现求逆功能、又满足高速运算要求的效果。
文档编号G06F17/16GK102880594SQ20121039432
公开日2013年1月16日 申请日期2012年10月17日 优先权日2012年10月17日
发明者王坚, 李玉柏, 李桓, 杨凯琪 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1