《基于多核DSP的并行矩阵全选主元高斯约旦求逆算法.pdf》由会员分享,可在线阅读,更多相关《基于多核DSP的并行矩阵全选主元高斯约旦求逆算法.pdf(12页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102880594 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 0 5 9 4 A *CN102880594A* (21)申请号 201210394327.2 (22)申请日 2012.10.17 G06F 17/16(2006.01) (71)申请人电子科技大学 地址 611731 四川省成都市高新区(西区)西 源大道2006号 (72)发明人王坚 李玉柏 李桓 杨凯琪 (74)专利代理机构成都顶峰专利事务所(普通 合伙) 51224 代理人成实 (54) 发明名称 基于多核DSP的并行矩阵全选主元高斯约旦 求逆算法 (57) 摘要 本。
2、发明提供了一种基于多核DSP的并行矩阵 全选主元高斯约旦求逆算法,解决了现阶段关于 求逆矩阵的算法不能满足所有矩阵,并且现有的 矩阵求逆算法已经不能满足高速运算要求的缺 陷。本发明将矩阵A划分为p块子矩阵后依此发 送给1(p-1)号处理器,拥有当前主行元素的处 理器对主行元素进行更新,并发送给除第0号处 理器和自身处理器外其余的处理器后,1(p-1) 号处理器一样对自身的子矩阵进行更新,并分别 将自身的子矩阵回传给第0号处理器,然后选择 上一主行元素的下一行元素作为新的主行元素重 复上述过程,直到主行元素遍历完原矩阵的所有 对角线元素。通过上述方案,本发明达到了既能针 对所有矩阵可实现求逆功能。
3、、又满足高速运算要 求的效果。 (51)Int.Cl. 权利要求书2页 说明书6页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 6 页 附图 3 页 1/2页 2 1.基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特征在于,通过以下步骤 实现: (1)共有p块处理器,将处理器依次编号为0(p-1),并通过第0号处理器对原矩阵 A进行全选主元,得到主行元素,其中p为正整数; (2)将进行了全选主元后的矩阵A划分为p块子矩阵,第0号处理器保留其中一个子矩 阵,并将另外p-1块子矩阵分别发送给第1(p-1)号处理器,使每个处理器分别接收一块。
4、 子矩阵; (3)拥有当前主行元素的处理器对主行元素进行更新,并将更新后的主行元素发送给 除第0号处理器和自身处理器外其余的处理器; (4)除第0号处理器和自身处理器外其余的处理器收到更新后的主行元素数值后,第 1(p-1)号处理器分别对自身的子矩阵进行更新;之后分别将自身的子矩阵回传给第0号 处理器; (5)第0号处理器进行整理,再进行全选主元; (6)选择原矩阵A主行元素的下一行元素作为新的主行元素,重复步骤(3)(5),直 到主行元素遍历完原矩阵的所有对角线元素,此时第0号处理器整理得到的矩阵即为原矩 阵A的逆矩阵。 2.根据权利要求1所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算。
5、法,其特 征在于,所述步骤(1)和步骤(6)中对原矩阵A进行全选主元后,记录交换元素的行列号。 3.根据权利要求2所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特 征在于,所述步骤(2)中具体实现步骤如下: (2a)从原矩阵中的第0行开始,依次将原矩阵的第j行分配给第(j mod p)号的处理 器,其中所述j为整数且j0; (2b)每一个处理器中被分配的所有行组成一个子矩阵,在所有子矩阵形成后,第0号 处理器保留其中一个子矩阵,并将另外p-1块子矩阵分别发送给第1(p-1)号处理器,使 每个处理器分别接收一块子矩阵。 4.根据权利要求3所述的基于多核DSP的并行矩阵全选主元高斯约旦。
6、求逆算法,其特 征在于,所述步骤(3)中子矩阵中拥有当前主行的处理器利用公式: 和公式: 对主行元素进行更新,其中式中为子矩阵中元素值,为更新后子矩阵中的元素 值, n为子矩阵行数,j为整数且0jn,k为整数且0kn,同时jk。 5.根据权利要求4所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其 特征在于,所述步骤(3)中拥有当前主行的处理器利用公式对主行元素进行更新后,使用 EDMA3或SRIO将更新后的主行元素发送给第1(p-1)号处理器中除自身处理器外其余的 处理器。 6.根据权利要求5所述的基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,其特 权 利 要 求 书CN 102。
7、880594 A 2/2页 3 征在于,所述步骤(4)中1(p-1)号处理器使用公式: 和公式: 对自身的子矩阵进行更新,其中i为整数且0in,同时ik。 7.根据权利要求16任意一项所述的基于多核DSP的并行矩阵全选主元高斯约旦求 逆算法,其特征在于,所述步骤(5)中第1(p-1)号处理器中的子矩阵完成更新后,使用 EDMA3或SRIO将其子矩阵回传给第0号处理器。 权 利 要 求 书CN 102880594 A 1/6页 4 基于多核 DSP 的并行矩阵全选主元高斯约旦求逆算法 技术领域 0001 本发明属于移动通信领域,具体的讲,涉及一种基于多核DSP的并行矩阵全选主 元高斯约旦求逆算法。
8、。 背景技术 0002 矩阵求逆是工程实践中常用也是较为繁琐的运算过程,现有的普通矩阵求你算法 种类繁多,其中绝对大部分的算法复杂程度可以满足一般的工程应用要求。然而随着应用 的日益复杂,这些的矩阵求逆算法已经不能满足高速运算的要求。 0003 因此现有技术中为了满足矩阵求逆高速运算的要求,提出了一些高速的求逆算 法,但是这些算法都是针对一些特殊矩阵而实现,如针对三对角线矩阵、五对角线矩阵和三 角矩阵逆矩阵的算法,这些算法对矩阵的类型有特定的要求,因此开发出既能针对所有矩 阵均可实现求逆功能、并且满足高速运算要求的求逆算法已成为现阶段人们研究的重点。 发明内容 0004 本发明的目的在于克服现。
9、有技术中关于求逆矩阵的算法不能满足所有矩阵,并且 现有的矩阵求逆算法已经不能满足高速运算要求的缺陷,提供一种基于多核DSP的并行矩 阵全选主元高斯约旦求逆算法,充分地发挥多核DSP的高性能优势,解决上述缺陷。 0005 本发明采用的技术方案如下: 基于多核DSP的并行矩阵全选主元高斯约旦求逆算法,通过以下步骤实现: (1)共有p块处理器,将处理器依次编号为0(p-1),并通过第0号处理器对原矩阵 A进行全选主元,得到主行元素,其中p为正整数; (2)将进行了全选主元后的矩阵A划分为p块子矩阵,第0号处理器保留其中一个子矩 阵,并将另外p-1块子矩阵分别发送给第1(p-1)号处理器,使每个处理器。
10、分别接收一块 子矩阵; (3)拥有当前主行元素的处理器对主行元素进行更新,并将更新后的主行元素发送给 除第0号处理器和自身处理器外其余的处理器; (4)除第0号处理器和自身处理器外其余的处理器收到更新后的主行元素数值后,第 1(p-1)号处理器分别对自身的子矩阵进行更新;之后分别将自身的子矩阵回传给第0号 处理器; (5)第0号处理器进行整理,再进行全选主元; (6)选择原矩阵A主行元素的下一行元素作为新的主行元素,重复步骤(3)(5),直 到主行元素遍历完原矩阵的所有对角线元素,此时第0号处理器整理得到的矩阵即为原矩 阵A的逆矩阵。 0006 为了便于查询,所述步骤(1)和步骤(6)中对原矩。
11、阵A进行全选主元后,记录交换 元素的行列号。 0007 为了分散计算,所述步骤(2)中具体实现步骤如下: 说 明 书CN 102880594 A 2/6页 5 (2a)从原矩阵中的第0行开始,依次将原矩阵的第j行分配给第(j mod p)号的处理 器,其中所述j为整数且j0; (2b)每一个处理器中被分配的所有行组成一个子矩阵,在所有子矩阵形成后,第0号 处理器保留其中一个子矩阵,并将另外p-1块子矩阵分别发送给第1(p-1)号处理器,使 每个处理器分别接收一块子矩阵。 0008 再进一步的,所述步骤(3)中子矩阵中拥有当前主行的处理器利用公式: 和公式: 对主行元素进行更新,其中式中为子矩阵。
12、中元素值,为更新后子矩阵中的元素 值, n为子矩阵行数,j为整数且0jn,k为整数且0kn,同时jk。 0009 为了满足不同数据传输要求,所述步骤(3)中拥有当前主行的处理器利用公式对 主行元素进行更新后,使用EDMA3或SRIO将更新后的主行元素发送给第1(p-1)号处理 器中除自身处理器外其余的处理器。 0010 为了更新自身的矩阵,所述步骤(4)中1(p-1)号处理器使用公式: 和公式: 对自身的子矩阵进行更新,其中i为整数且0in,同时ik。 0011 为了再次满足不同数据传输要求,所述步骤(5)中第1(p-1)号处理器中的子 矩阵完成更新后,使用EDMA3或SRIO将其子矩阵回传给。
13、第0号处理器。 0012 与现有技术相比,本发明具有以下有益效果: (1)本发明利用多核DSP平台进行矩阵的求逆计算,即将矩阵划分为多个子矩阵并将 每个子矩阵放入每一个处理器,每一个处理器对于自身子矩阵再分别进行更新,这样分散 了矩阵求逆计算,可以有效地提高矩阵求逆运算的速度;通过实验证明,在矩阵阶数越大, 并且并行运算的处理器个数越多时,运算速度越快,效果越明显。 0013 (2)本发明通过全选主元高斯约旦算法达到了占用内存小的同时求解精度高、运 算速度快的效果,高斯约旦算法主要为求解矩阵的逆矩阵,采用多核DSP平台通过高斯约 旦算法求解矩阵的逆矩阵,结合了多核平台与高斯约旦算法共同的优点,。
14、达到了事半功倍 的效果。因为其不仅大大提高了求解的速度,同时还提高了矩阵的求解精度,质量和速度同 时得到了保证。 0014 (3)本发明采用的是多核DSP,DSP是一种独特的微处理器,是以数字信号来处理 大量信息的器件。它不仅具有可编程性,而且实时运行速度可达每秒数以千万条复杂指令 程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处 理能力和高运行速度,是最值得称道的两大特色,多核DSP被应用于本发明,在很大程度上 提高了相互通信的处理器之间的数据交换速度。 说 明 书CN 102880594 A 3/6页 6 0015 (4)本发明通过行交叉划分将矩阵A划分为p。
15、块子矩阵,即将原矩阵的第j行分配 给第(j mod p)号的处理器,再由分配该处理器所有原矩阵的行组成一个子矩阵,在分配好 所有的子矩阵后,将其中的p-1块子矩阵发送给对应的第1(p-1)号处理器。该方法被 称为行交叉法,通过上述方法来划分矩阵A的p块子矩阵,不仅简便快捷,充分发挥了多核 处理器的优势,同时还保证了后面步骤的正常执行。 0016 (5)本发明还使用了EDMA3或SRIO将子矩阵从第0号处理器发送给其余处理器, 或者将其余处理器的子矩阵回传给第0号处理器,EDMA3或SRIO能满足不同的数据传输需 求,是未来十几年中嵌入式系统互联的最佳选择之一。 附图说明 0017 图1为本发明。
16、实施例1中并行算法流程图。 0018 图2为本发明实施例1中主行元素位于第0号处理器子矩阵时的通信示意图。 0019 图3为本发明实施例2中主行元素位于第1号处理器子矩阵时的通信示意图。 0020 图4为本发明实施例3中主行元素位于第2号处理器子矩阵时的通信示意图。 0021 图5为本发明实施例4中主行元素位于第3号处理器子矩阵时的通信示意图。 具体实施方式 0022 下面结合附图与实施例对本发明作进一步说明,本发明的实施方式包括但不限于 下列实施例。 0023 实施例1 如图1所示的基于多核DSP的并行矩阵求逆算法,该算法为全选主元高斯约旦算法,占 用内存小,运算速度快且精度较高,易于并行实。
17、现等。 0024 高斯约旦求逆算法矩阵元素的每次更新都是以对角线上的元素为基础,分别对该 元素同行不同列,同列不同行以及既不同列也不同行的元素以不同的公式进行更新。其中 每一次更新中当前对角线元素所在的行称为主行,主行上的各矩阵元素称为主行元素,其 余矩阵元素称为非主行元素。 0025 如图1、2所示,本实施例中使用j=5块处理器对n阶矩阵A求逆,处理器从0到4 进行编号。其中数字信号处理器DSP1中包括第0号处理器、第1号处理器和第2号处理器, 为三核处理器;数字信号处理器DSP2包括第3号处理器和第4号处理器,为双核处理器。 图2为本实施例中主行元素位于第0号处理器子矩阵时的通信示意图。具。
18、体的并行算法如 下: 第1步:第0号处理器对原矩阵A进行全选主元,并记录交换元素的行列号。 0026 其中所述全选主元即主列消元,并得到主行元素,这里的主行为矩阵A的第一行。 0027 第2步:将矩阵A划分为5个子矩阵,其中具体实现步骤如下: (2a)从矩阵A中的第一行开始,依次将原矩阵的每一行进行分配,即将第j行分配给第 (j mod 5)号的处理器,其中所述j为正整数; 其中mod为取余运算,即计算j除以5的余数; (2b)每一个处理器中被分配的所有行组成一个子矩阵,在所有子矩阵形成后,将其中 的4块子矩阵发送给对应的第14号处理器。 说 明 书CN 102880594 A 4/6页 7 。
19、0028 第3步:其中子矩阵中拥有主行的处理器为第0号处理器,因此第0号处理器利用 公式: 和公式: 对主行元素进行更新,并使用EDMA3将更新后的主行元素发送给第1号处理器、第2号 处理器,使用SRIO将更新后的主行元素发送给第3号处理器、第4号处理器,其中式中 为子矩阵中元素值,为更新后子矩阵中的元素值, n为子矩阵行数,j为整数且0j n,k为整数且0kn,同时jk。 0029 第4步:其余处理器根据接收到更新后的主行元素数值后,使用公式 和公式 对其子矩阵进行更新,其中i为整数且0in,同时ik。 0030 第5步:第1 4号处理器的子矩阵完成更新后,第1号处理器、第2号处理器使 用E。
20、DMA3,同时第3号处理器、第4号处理器使用SRIO将其子矩阵回传给第0号处理器。 0031 第6步:第0号处理器对来自其他处理器的矩阵进行整理,得到一个新的完整的矩 阵,再对其进行全选主元,并记录交换元素的行列号。 0032 第7步:选择主行的下一行作为新的主行,重复第三到第六步,直到主元遍历完原 矩阵的所有对角线元素,此时第0号处理器整理得到矩阵就是原矩阵的逆矩阵。 0033 实施例2 与实施例1的区别在于步骤35不同。 0034 本实施例步骤35具体实现方式如下: 第3步:其中子矩阵中拥有主行的处理器第1号处理器,因此第1号处理器利用公式: 和公式: 对主行元素进行更新,并使用EDMA3。
21、将更新后的主行元素发送给第2号处理器,使用 SRIO将更新后的主行元素发送给第3号处理器、第4号处理器,其中式中为子矩阵中 元素值,为更新后子矩阵中的元素值, n为子矩阵行数,j为整数且0jn,k为整数 且0kn,同时jk,如图3所示,该图为主行元素位于第1号处理器子矩阵时的通信 示意图。 0035 第4步:其余处理器根据接收到更新后的主行元素数值,使用公式: 说 明 书CN 102880594 A 5/6页 8 和公式: 对其子矩阵进行更新,其中i为整数且0in,同时ik。 0036 第5步: 第24号处理器的子矩阵完成更新后,第1号处理器、第2号处理器使 用EDMA3,同时第3号处理器、第。
22、4号处理器使用SRIO将其子矩阵回传给第0号处理器。 0037 其余步骤与实施例1相同。 0038 实施例3 与实施例1的区别在于步骤35不同。 0039 本实施例步骤35具体实现方式如下: 第3步:其中子矩阵中拥有主行的处理器为第2号处理器,因此第2号处理器利用公 式: 和公式: 对主行元素进行更新,并使用EDMA3将更新后的主行元素发送给第1号处理器,使用 SRIO将更新后的主行元素发送给第3号处理器、第4号处理器。 0040 第4步:其余处理器根据接收到更新后的主行元素数值后,使用公式 和公式 对其子矩阵进行更新,其中i为整数且0in,同时ik。 0041 第5步: 第1号处理器、第3号。
23、处理器、第4号处理器的子矩阵完成更新后,第1 号处理器、第2号处理器使用EDMA3,同时第3号处理器、第4号处理器使用SRIO将其子矩 阵回传给第0号处理器,其中式中为子矩阵中元素值,为更新后子矩阵中的元素值, n为子矩阵行数,j为整数且0jn,k为整数且0kn,同时jk。如图4所示, 该图为主行元素位于第2号处理器子矩阵时的通信示意图。 0042 其余步骤与实施例1相同。 0043 实施例4 与实施例1的区别在于步骤35不同。 0044 本实施例步骤35具体实现方式如下: 第3步:其中子矩阵中拥有主行的处理器为第3号处理器,因此第3号处理器利用公 式: 说 明 书CN 102880594 A。
24、 6/6页 9 和公式: 对主行元素进行更新,并使用SRIO将更新后的主行元素发送给第1号处理器、第2号 处理器,使用EDMA3将更新后的主行元素发送给第4号处理器。 0045 第4步:其余处理器根据接收到更新后的主行元素数值后,使用公式 和公式 对其子矩阵进行更新,其中i为整数且0in,同时ik。 0046 第5步:从第14号处理器的子矩阵完成更新后,第1号处理器、第2号处理器 使用SRIO同时第4号处理器使用EDMA3将其子矩阵回传给第0号处理器,其中式中为 子矩阵中元素值,为更新后子矩阵中的元素值, n为子矩阵行数,j为整数且0jn, k为整数且0kn,同时jk。如图5所示,该图为主行元。
25、素位于第3号处理器子矩阵 时的通信示意图。 0047 根据本发明的内容,将并行的高斯约旦求逆算法在TMS320C6474ENM板上进行了 实现,得出的逆矩阵结果正确。 0048 表1 高斯约旦算法在不同平台下占用的CPU时钟数 矩阵阶数12 24 36 48 单核1,224,192 9,454,188 31,486,992 74,354,646 两核1,242,591 9,640,287 32,343,931 77,696,788 四核1,098,168 8,089,545 26,910,182 66,073,290 其中,TMS320C6474DSP的CPU时钟频率为1GHz。 0049 通过上述表格得到,当参与运算的处理器个数较大以及矩阵的阶数较大时,算法 的效果非常好。 0050 按照上述实施例,便可很好的实现本发明。 说 明 书CN 102880594 A 1/3页 10 图1 说 明 书 附 图CN 102880594 A 10 2/3页 11 图2 图3 说 明 书 附 图CN 102880594 A 11 3/3页 12 图4 图5 说 明 书 附 图CN 102880594 A 12 。