矩阵求逆处理方法和装置的制造方法

文档序号:8258462阅读:726来源:国知局
矩阵求逆处理方法和装置的制造方法
【技术领域】
[0001] 本发明涉及数据处理领域,具体而言,涉及一种矩阵求逆处理方法和装置。
【背景技术】
[0002] 在现在数字化产业领域中,由于计算机技术的飞速发展,越来越多其他领域的技 术开始被囊括进来,也越来越多的依靠数字化技术带来明显的产业推动能力,特别是制造 业领域,由于设计、仿真分析在产品开发过程中所占有的比重增加,以及计算机便利的快速 计算分析能力,现代制造业的产品开发流程几乎完全是基于数字化技术之上。也正是这种 依赖关系,促使计算机软硬件不断更新换代以满足日益提升的性能需求。
[0003] 对于矩阵的计算通常包括限单元法和有限差分法以及边界元法。相对于有限单元 法和有限差分法,边界元法因其高精度及降维优势,更适合于快速预处理、自适应结构分析 的过程。但采用边界元法得到的系数矩阵具有稠密且非对称的劣势,传统边界元法的求解 效率以及求解问题规模都受到了限制。很多学者通过引入快速数值计算算法,如快速多极 等,加速边界元求解计算过程,提高求解问题规模。然而,对于时间相关的工程问题,在时域 或频域利用边界元法求解时,由于基本解的复杂性以及时域离散或转换需求,上述数值算 法不能取得很好的计算效果。尤其是涉及〇(N 3)计算复杂度的矩阵求逆运算消耗了数值运 算过程中的大量时间。
[0004] Hackbusch在1999年提出了基于遗传树结构的数值求解算法加速算法。利用矩阵 分块,并将相容子块利用外乘法近似表示,从而压缩矩阵数据存储,减少参与矩阵运算的数 据量,同时利用递归思想,借助遗传树结构,提出了近似求逆方法。但这种方法对于计算效 率提升有限,同时由于是近似拟合,计算精度无法得到保证。此外,由于矩阵求逆运算中较 强的数据关联性,难以利用中央处理器(CPU)多核并行计算提升降低计算时间耗费,这使 得矩阵求逆的过程中计算效率较低。
[0005] 针对现有技术中矩阵求逆过程中计算效率低的问题,目前尚未提出有效的解决方 案。

【发明内容】

[0006] 本发明的主要目的在于提供一种矩阵求逆处理方法和装置,以解决现有技术中矩 阵求逆过程中计算效率低的问题。
[0007] 为了实现上述目的,根据本发明实施例的一个方面,提供了一种矩阵求逆处理方 法。根据本发明的矩阵求逆处理方法包括:获取经过中央处理器扩展后的扩展矩阵,所述扩 展矩阵包括目标矩阵和与所述目标矩阵具有相同大小的单位矩阵;根据所述扩展矩阵利用 统一计算设备架构平台构建全局网格结构,其中,所述全局网格结构包括多个线程;利用所 述全局网格结构采用并行计算的方式依次对所述扩展矩阵的列向量进行计算,采用串行计 算的方式对所述扩展矩阵的行向量的行间数据进行计算,得到计算结果,所述计算结果包 括所述目标矩阵的逆矩阵和与所述逆矩阵具有相同大小的单位矩阵;以及将所述计算结果 输出至所述中央处理器,其中,所述中央处理器从所述计算结果中提取所述逆矩阵。
[0008] 进一步地,根据所述扩展矩阵利用统一计算设备架构平台构建全局网格结构包 括:根据所述扩展矩阵的大小确定分割基数;按照所述分割基数对所述扩展矩阵的行向量 和列向量进行划分,得到多个数据段;以及根据所述分割基数和所述多个数据段的数量构 建线程块结构,形成所述全局网格结构,其中,所述全局网格结构包括与所述多个数据段 一一对应的线程块,每个线程块具有与所述分割基数相同数量的线程。
[0009] 进一步地,利用所述全局网格结构采用并行计算的方式依次对所述扩展矩阵的列 向量进行计算,采用串行计算的方式对所述扩展矩阵的行向量的行间数据进行计算,得到 计算结果包括:计算所述扩展矩阵中当前行向量的系数向量,所述系数向量包括所述扩展 矩阵中所述当前行向量之外的其他行向量对于所述当前行向量的系数;利用所述全局网格 结构中线程计算该线程在所述扩展矩阵的映射位置上的变换结果,用所述变换结果替换在 所述扩展矩阵的映射位置上的数据,得到替换后的扩展矩阵;判断所述当前行向量是否是 所述扩展矩阵的最后一行行向量;如果判断出所述当前行向量不是所述扩展矩阵的最后一 行行向量,则将所述当前行向量的下一行行向量作为所述当前行向量,返回执行计算当前 行向量的系数向量的步骤;以及如果判断出所述当前行向量是所述扩展矩阵的最后一行行 向量,则对所述替换后的扩展矩阵进行单位化处理,得到所述计算结果。
[0010] 进一步地,计算所述扩展矩阵中当前行向量的系数向量包括:获取所述当前行向 量的对角位置数据;获取所述对角位置数据所在的列向量上的数据;依次将对角位置数据 与所述对角位置数据所在的列向量上的数据相除,得到所述系数向量。
[0011] 进一步地,在利用所述全局网格结构中线程计算该线程在所述扩展矩阵的映射位 置上的变换结果之前,所述矩阵求逆处理方法还包括:建立共享显存空间,所述共享显存空 间用于存储所述当前行向量的数据;其中,所述全局网格结构中线程从所述共享显存空间 调用所述当前行向量的数据用于计算该线程在所述扩展矩阵的映射位置上的变换结果。
[0012] 为了实现上述目的,根据本发明实施例的另一方面,提供了一种矩阵求逆处理装 置。根据本发明的矩阵求逆处理装置包括:获取单元,用于获取经过中央处理器扩展后的扩 展矩阵,所述扩展矩阵包括目标矩阵和与所述目标矩阵具有相同大小的单位矩阵;第一建 立单元,用于根据所述扩展矩阵利用统一计算设备架构平台构建全局网格结构,其中,所述 全局网格结构包括多个线程;计算单元,用于利用所述全局网格结构采用并行计算的方式 依次对所述扩展矩阵的列向量进行计算,采用串行计算的方式对所述扩展矩阵的行向量的 行间数据进行计算,得到计算结果,所述计算结果包括所述目标矩阵的逆矩阵和与所述逆 矩阵具有相同大小的单位矩阵;以及输出单元,用于将所述计算结果输出至所述中央处理 器,其中,所述中央处理器从所述计算结果中提取所述逆矩阵。
[0013] 进一步地,所述第一建立单元包括:确定模块,用于根据所述扩展矩阵的大小确定 分割基数;划分模块,用于按照所述分割基数对所述扩展矩阵的行向量和列向量进行划分, 得到多个数据段;以及构建模块,用于根据所述分割基数和所述多个数据段的数量构建线 程块结构,形成所述全局网格结构,其中,所述全局网格结构包括与所述多个数据段一一对 应的线程块,每个线程块具有与所述分割基数相同数量的线程。
[0014] 进一步地,所述计算单元包括:第一计算模块,用于计算所述扩展矩阵中当前行向 量的系数向量,所述系数向量包括所述扩展矩阵中所述当前行向量之外的其他行向量对于 所述当前行向量的系数;第二计算模块,用于利用所述全局网格结构中线程计算该线程在 所述扩展矩阵的映射位置上的变换结果,用所述变换结果替换在所述扩展矩阵的映射位置 上的数据,得到替换后的扩展矩阵;判断模块,用于判断所述当前行向量是否是所述扩展矩 阵的最后一行行向量;所述第一计算模块还用于如果判断出所述当前行向量不是所述扩展 矩阵的最后一行行向量,则将所述当前行向量的下一行行向量作为所述当前行向量,计算 当前行向量的系数向量;以及处理模块,用于如果判断出所述当前行向量是所述扩展矩阵 的最后一行行向量,则对所述替换后的扩展矩阵进行单位化处理,得到所述计算结果。
[0015] 进一步地,所述第一计算模块包括:第一获取子模块,用于获取所述当前行向量的 对角位置数据;第二获取子模块,用于获取所述对角位置数据所在的列向量上的数据;除 法子模块,用于依次将对角位置数据与所述对角位置数据所在的列向量上的数据相除,得 到所述系数向量。
[0016] 进一步地,所述矩阵求逆处理装置还包括:第二建立单元,用于在利用所述全局网 格结构中线程计算该线程在所述扩展矩阵的映射位置上的变换结果之前,建立共享显存空 间,所述共享显存空间用于存储所述当前行向量的数据;所述第二计算模块还用于所述全 局网格结构中线程从所述共享显存空间调用所述当前行向量的数据用于计算该线程在所 述扩展矩阵的映射位置上的变换结果。
[0017] 根据本发明实施例,获取经过中央处理器扩展后的扩展矩阵,根据扩展矩阵利用 统一计算设备架构平台构建全局网格结构,利用全局网格结构采用并行计算的方式依次对 扩展矩阵的列向量进行计算,采用串行计算的方式对扩展矩阵的行向量的行间数据进行计 算,得到计算结果,将计算结果输出至中央处理器,其中,中央处理器从计算结果中提取逆 矩阵,解决了现有技术中矩阵求逆过程中计算效率低的问题,达到了提高矩阵求逆过程中 计算效率的效果。
【附图说明】
[0018] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019] 图1是根据本发明实施例的矩阵求逆处理方法的流程图;
[0020] 图2是根据本发明实施例的全局网格结构的示意图;
[0021] 图3是根
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1