一种大型稀疏矩阵加速求解方法、系统及存储介质技术方案

技术编号:35192161 阅读:22 留言:0更新日期:2022-10-12 18:13
本发明专利技术公开一种大型稀疏矩阵加速求解方法、系统及存储介质,属于电磁学计算领域。针对现有大型稀疏矩阵求解效率慢且精度差的问题,本发明专利技术提供一种大型稀疏矩阵加速求解方法,包括:对初始有限元矩阵进行还原端口节点的连接关系,得到还原后的二次有限元矩阵;将二次有限元矩阵转化为无定向图;对无定向图进行分解,并且通过评价函数选择最优分解;根据最优分解对二次有限元矩阵的节点重新编号;根据节点的重新编号对二次有限元矩阵重新排序,生成新的最终有限元矩阵;对最终有限元矩阵进行求解。本发明专利技术通过还原端口节点连接关系保证后续求解精度,通过将矩阵转化为无定向图之后进行分解得到最优分解,按照最优分解进行后续操作提高矩阵求解速度。提高矩阵求解速度。提高矩阵求解速度。

【技术实现步骤摘要】
一种大型稀疏矩阵加速求解方法、系统及存储介质


[0001]本专利技术属于计算电磁学
,更具体地说,涉及一种大型稀疏矩阵加速求解方法、系统及存储介质。

技术介绍

[0002]现代EDA仿真工具,无论是电路分析,还是3D电磁场分析,都面临一个随着仿真规模越来越大,计算越来越慢的问题。对于电路问题,计算速度变慢来源于复杂电路中数量巨大的电压节点和分支电流节点;对于3D电磁场问题,如果是用有限元分析,计算速度变慢则来源于稠密的网格数量。数学上来说,庞大数量的电压和电流节点,或者是稠密的网格数量,都对应着一个超大维度的稀疏矩阵。如何在保证计算精度的情况下,快速有效的求解大规模稀疏矩阵,是现代EDA行业所面临的共同难题。面对这个问题,传统的做法是通过编写更高效的稀疏矩阵求解器来完成,比如一些著名的矩阵求解软件Umfpack,Pardiso,KLU等等。使用这些矩阵求解程序来求解大规模矩阵,其计算效率远远大于自己编写的矩阵求解程序。然而,这些通用的矩阵求解软件,并不擅长处理EDA行业中面临的具体问题,譬如分析带有ibis模型的非线性电路,或者是分析电路板的DC电压等等。前者由于非线性的影响,使得计算过程中每一个时间步都要面临大矩阵求逆的问题,而后者可以通过把电源平面和地平面分开考虑,使得大矩阵可以严格退耦。上述问题都是传统矩阵求解器本身所不能解决的问题,需要新的思路和方法。
[0003]在EDA行业中普遍使用的计算方法是利用3D电磁场理论以及有限元算法,来分析chip/package/board的信号/电源完整性以及电磁兼容问题是非常有效和成熟的手段,譬如Ansys公司的HFSS,Cadance的Clerity3D等,这些工具就是使用有限元对3D电磁场进行计算和分析的。但是随着信号工作频率越来越高,芯片尺度越来越小,芯片内部结构越来越复杂。商用EDA仿真工具在处理这类问题时,由于3D建模对精细网格的要求,使得计算复杂度越来越大,网格所对应的未知量的个数从几万,几十万上升到几百万不等,这种情况下,矩阵求解变得更加缓慢。一个设计,工程师通常需要等待几天甚至几周才能得到一个计算结果,耗时严重,对于EDA设计人员以及芯片设计和生产企业更是非常严重的问题。
[0004]针对上述问题也进行了相应的改进,如中国专利申请号CN202110024925.X,公开日为2021年4月30日,该专利公开了一种稀疏矩阵加速计算方法,先读取第一读取待相乘的第一稀疏矩阵,对第一稀疏矩阵进行非零检测,并根据检测结果生成第一稀疏矩阵每行数据的第一状态信息并存储至寄存器;以及将检测到的第一稀疏矩阵的非零数据存储至RAM;然后再读取待相乘的第二稀疏矩阵,对第二稀疏矩阵进行非零检测,并根据检测结果生成第二稀疏矩阵每列数据的第二状态信息并存储至寄存器;最后对第一状态信息和第二状态信息进行逻辑运算,根据逻辑运算结果读取RAM中的数据并与第二稀疏矩阵的数据进行乘积运算以得到乘积矩阵的数据。该专利的不足之处在于:虽减少计算过程中数据的读取量从而加快处理速度,但是处理精度无法较好的满足。

技术实现思路

[0005]1、要解决的问题
[0006]针对现有大型稀疏矩阵求解效率慢且精度差的问题,本专利技术提供一种大型稀疏矩阵加速求解方法、系统及存储介质。本专利技术的方法通过还原端口节点连接关系保证后续求解精度,通过将矩阵转化为无定向图之后进行分解得到最优分解,按照最优分解进行后续操作极大的提高了矩阵求解速度。本专利技术的系统结构简单,在满足精度的同时满足处理效率,使得精度与效率得到了较好的平衡。
[0007]2、技术方案
[0008]为解决上述问题,本专利技术采用如下的技术方案。
[0009]一种大型稀疏矩阵加速求解方法,包括以下步骤:
[0010]S1:对初始有限元矩阵进行还原端口节点的连接关系,得到还原后的二次有限元矩阵;
[0011]S2:将二次有限元矩阵转化为无定向图;
[0012]S3:对无定向图进行分解,并且通过评价函数选择最优分解;
[0013]S4:根据最优分解对二次有限元矩阵的节点重新编号;
[0014]S5:根据节点的重新编号对二次有限元矩阵重新排序,生成新的最终有限元矩阵;
[0015]S6:对最终有限元矩阵进行求解。
[0016]更进一步的,所述步骤S2中具体的步骤为:
[0017]S21:定义两个新的数据结构:点和边,点:非零元素所在列即为该行所对应的节点,该行即为非零元素所在的行;边:非零元素所在列所对应的节点形成的边;
[0018]S22:将二次有限元矩阵的每一行非零的元素映射成一个点和点的连接关系;
[0019]S23:每两个点对应一条无定向的边;
[0020]S24:依次重复步骤S22

S23,直至二次有限元矩阵的每一行的非零元素都存在连接关系,最终生成一个无定向图。
[0021]更进一步的,所述步骤S3中评价函数进行如下定义:对于一个矩阵,将其分解成N个子矩阵,N为2的倍数,子矩阵的耦合系数S为耦合矩阵的维度除以子矩阵的平均维度,最优分解即为耦合系数最小值对应的分块个数。
[0022]更进一步的,步骤S3中采用Metis程序进行无定向图的分解。
[0023]更进一步的,所述步骤S1中初始有限原矩阵的来源为:通过读取网格文件,利用网格进行有限元数值建模并创建矩阵。
[0024]更进一步的,步骤S1中在进行初始有限元矩阵生成的同时,提前将端口节点与其它网格节点的连接关系进行备份。
[0025]一种应用如上述任一项大型稀疏矩阵加速求解方法的系统,包括:
[0026]还原模块:用于对初始有限元矩阵进行端口节点连接关系的还原,得到二次有限元矩阵;
[0027]转换模块:用于将二次有限元矩阵转换成无定向图;
[0028]分解模块:用于对无定向图进行分解,并得到最优分解;
[0029]重新编号模块:用于依据分解模块中的最优分解对二次有限元矩阵的节点进行重新编号;
[0030]重新排序模块:用于依据重新编号模块中的节点重新编号对二次有限元矩阵进行重新排序,生成最终有限元矩阵;
[0031]求解模块:用于对重新排序模块中的最终有限元矩阵进行求解。
[0032]控制模块:用于控制各个模块的工作。
[0033]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行上述任一项的方法。
[0034]3、有益效果
[0035]相比于现有技术,本专利技术的有益效果为:
[0036](1)本专利技术在对大型稀疏矩阵进行求解时,通过先对初始有限元矩阵进行端口节点连接关系的还原,使得矩阵拓扑的完备性得到保障,为后续步骤提供精准度和完整度较高的支撑,从而保证整个过程的精度;其次,通过将二次有限元矩阵转化为无定向图随后进行分解,改变了以往直接对网格文件进行分解所带来的成本与效率问题;并且依据最优分解对二次有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大型稀疏矩阵加速求解方法,其特征在于:包括以下步骤:S1:对初始有限元矩阵进行还原端口节点的连接关系,得到还原后的二次有限元矩阵;S2:将二次有限元矩阵转化为无定向图;S3:对无定向图进行分解,并且通过评价函数选择最优分解;S4:根据最优分解对二次有限元矩阵的节点重新编号;S5:根据节点的重新编号对二次有限元矩阵重新排序,生成新的最终有限元矩阵;S6:对最终有限元矩阵进行求解。2.根据权利要求1所述的一种大型稀疏矩阵加速求解方法,其特征在于:所述步骤S2中具体的步骤为:S21:定义两个新的数据结构:点和边,点:非零元素所在列即为该行所对应的节点,该行即为非零元素所在的行;边:非零元素所在列所对应的节点形成的边;S22:将二次有限元矩阵的每一行非零的元素映射成一个点和点的连接关系;S23:每两个点对应一条无定向的边;S24:依次重复步骤S22

S23,直至二次有限元矩阵的每一行的非零元素都存在连接关系,最终生成一个无定向图。3.根据权利要求1所述的一种大型稀疏矩阵加速求解方法,其特征在于:所述步骤S3中评价函数进行如下定义:对于一个矩阵,将其分解成N个子矩阵,N为2的倍数,子矩阵的耦合系数S为耦合矩阵的维度除以子矩阵的平均维度,最优分解即为耦合系数最小值对应的分块个数。4.根据权利要求1或3所述...

【专利技术属性】
技术研发人员:代文亮蒋历国凌峰张健刘萍苗峰
申请(专利权)人:芯和半导体科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1