用于三角矩阵求逆的方法、设备和介质技术

技术编号:37546986 阅读:23 留言:0更新日期:2023-05-12 16:21
本公开的实施例涉及用于三角矩阵求逆的方法、设备和介质。根据该方法,将阶数为2

【技术实现步骤摘要】
用于三角矩阵求逆的方法、设备和介质


[0001]本公开的实施例总体涉及通信
,并且更具体地涉及一种用于三角矩阵求逆的方法、设备和介质。

技术介绍

[0002]基于图形处理单元(graphics processing unit,此后简称为GPU)的异构计算已经成为当前的科研前沿,无论是在传统科学计算领域,还是新兴的人工智能方向,GPU都以极高的硬件性能成为重要的计算支柱。在传统科学计算领域,求解线性系统是一个非常重要的课题,在进行线性系统的求解时,通常需要通过LU分解将相关矩阵(例如,图形矩阵)分解为一个下三角矩阵(即L矩阵)和一个上三角矩阵(即U矩阵)),然后再基于L矩阵进行前向迭代或者基于U矩阵进行反向迭代来实现相应的求解。然而,对于含有多个右端项(Right Hand Side)的线性系统而言,直接使用前向迭代求解或者反向迭代求解都存在并行性不足的困境,无法充分发挥GPU的全部算力,因此在这种情况下,还需要对各个三角矩阵进行求逆,然后再将该三角矩阵的逆矩阵直接乘以多个右端项,这种算法有着更好的并行性,更适合GPU的异构计算场景。由于这样的三角矩阵的规模一般都非常大(其阶数通常大于或等于3),因此找到合适的对三角矩阵进行求逆的方法非常重要。
[0003]然而,目前用于对三角矩阵进行求逆的方法在每一次迭代时,线程束仅计算一列元素,并且线程束的每一线程计算当前列的一个元素,而且由于每次迭代都具有对角线上的元素,因此线程束中经常具有大量的线程处于空闲状态,导致无法充分发挥线程束的算力,因此计算性能仍不够理想

技术实现思路

[0004]针对上述问题,本公开提供了一种用于三角矩阵求逆的方法、设备和介质,使得在进行三角矩阵的求逆时,能够充分发挥线程束的算力,由此有助于提高计算性能。
[0005]根据本公开的第一方面,提供了一种用于三角矩阵求逆的方法,包括:将阶数为2
n
的待求逆三角矩阵存储到共享内存中,所述阶数小于或等于允许访问所述共享内存的线程束中包括的线程的数目,其中n为大于或等于1的整数;将所述待求逆三角矩阵具有非零元素的三角部分分割成不同阶数的多个分块,所述多个分块分别包括一个或多个第一到第n+1分块,其中每一第一分块形成一个第一三角矩阵,每一第m分块与相邻的两个第m

1三角矩阵形成一个第m三角矩阵,其中m为大于等于2且小于等于n+1的整数,其中第n+1三角矩阵指示所述待求逆三角矩阵的所述三角部分;以及利用所述线程束中包括的2
n
个线程,按从第一三角矩阵、第二三角矩阵一直到第n+1三角矩阵的顺序进行n+1次迭代求逆计算,以最终确定所述待求逆三角矩阵的逆。
[0006]根据本公开的第二方面,提供了一种计算设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的
第一方面的方法。
[0007]在本公开的第三方面中,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中所述计算机指令用于使计算机执行本公开的第一方面的方法。
[0008]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0009]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
[0010]图1示出了现有技术中对下三角矩阵进行求逆的方法的说明性示意图。
[0011]图2示出了根据本公开的实施例的用于三角矩阵求逆的方法200的流程图。
[0012]图3示出了示例性待求逆三角矩阵的分割和线程分配的说明性示意图。
[0013]图4示出了根据本公开的实施例的按从第一三角矩阵的逆、第二三角矩阵的逆一直到第n+1三角矩阵的逆的顺序进行n+1次迭代的方式来最终确定所述待求逆三角矩阵的逆的方法400的流程图。
[0014]图5示出了确定每一第k分块的逆的方法500的流程图。
[0015]图6示出了根据本公开的实施例的电子设备600的框图。
具体实施方式
[0016]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0017]在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0018]如上所述,目前对三角矩阵进行求逆的方法在每一次迭代时,线程束仅计算一列元素,并且线程束的每一线程计算当前列的一个元素,而且由于每次迭代都具有对角线上的元素,因此线程束中经常具有大量的线程处于空闲状态,导致无法充分发挥线程束的算力,因此计算性能仍不够理想。
[0019]为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于三角矩阵求逆的方法,包括:将阶数为2
n
的待求逆三角矩阵存储到共享内存中,所述阶数小于或等于允许访问所述共享内存的线程束中包括的线程的数目,其中n为大于或等于1的整数;将所述待求逆三角矩阵具有非零元素的三角部分分割成不同阶数的多个分块,所述多个分块包括多个第一到第n+1分块,其中每一第一分块形成一个第一三角矩阵,每一第m分块与相邻的两个第m

1三角矩阵形成一个第m三角矩阵,其中m为大于等于2且小于等于n+1的整数,其中第n+1三角矩阵指示所述待求逆三角矩阵的所述
三角部分;以及利用所述线程束中包括的2
n
个线程,按从第一三角矩阵、第二三角矩阵一直到第n+1三角矩阵的顺序进行n+1次迭代求逆计算,以最终确定所述待求逆三角矩阵的逆。以此方式,能够充分发挥线程束的算力,提高三角矩阵求逆的计算性能,尤其在待求逆三角矩阵的阶数等于线程束中包括的线程的数目时,由于可以实现线程束中所有线程始终保持满负荷运行,因此计算性能最为优异。
[0020]为了便于理解本专利技术,下面对三角矩阵及其逆矩阵之间的关系进行说明。应了解,下三角矩阵的逆矩阵可被计算为而上三角矩阵的逆矩阵可被计算为根据以上关系式,可以实现对大规模三角矩阵的求逆。在现有技术中,一般利用如图1所示的方法来基于以上关系式来实现对大规模三角矩阵的求逆。
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于三角矩阵求逆的方法,包括:将阶数为2
n
的待求逆三角矩阵存储到共享内存中,所述阶数小于或等于允许访问所述共享内存的线程束中包括的线程的数目,其中n为大于或等于1的整数;将所述待求逆三角矩阵具有非零元素的三角部分分割成不同阶数的多个分块,所述多个分块分别包括一个或多个第一到第n+1分块,其中每一第一分块形成一个第一三角矩阵,每一第m分块与相邻的两个第m

1三角矩阵形成一个第m三角矩阵,其中m为大于等于2且小于等于n+1的整数,其中第n+1三角矩阵指示所述待求逆三角矩阵的所述三角部分;以及利用所述线程束中包括的2
n
个线程,按从第一三角矩阵、第二三角矩阵一直到第n+1三角矩阵的顺序进行n+1次迭代求逆计算,以最终确定所述待求逆三角矩阵的逆。2.根据权利要求1所述的方法,其中每一第一分块指示位于所述待求逆三角矩阵的对角线上的一个元素。3.根据权利要求2所述的方法,其中分割得到的第一分块的数量为2
n
个,并且分割得到的第m分块的数量为2
n

m+1
个,并且每一第一分块的阶数为1,每一第m分块的阶数为2
m
‑2。4.根据权利要求1所述的方法,其中每一第m三角矩阵的逆取决于该第m三角矩阵所包括的两个第m

1三角矩阵的逆以及该第m三角矩阵所包括的第m分块的逆,并且每一第m分块的逆是基于该第m分块以及所述两个第m

1三角矩阵的逆来确定的。5.根据权利要求4所述的方法,其中利用所述线程束中包括的2
n
个线程,按从第一三角矩阵、第二三角矩阵一直到第n+1三角矩阵的顺序进行n+1次迭代求逆计算,以最终确定所述待求逆三角矩阵的逆包括:在第一次迭代求逆计算时,利用所述2
n
个线程的一次并行运算来确定所有第一三角矩阵的逆,其中每一第一三角矩阵的逆为相应第一分块的逆;在第二次迭代求逆计算时,利用所述2
n
个线程的一次并行运算来确定所有第二分块的逆,以便得到所有第二三角矩阵的逆;以及在第k次迭代求逆计算时,利用所述2
n
个线程的2
k
‑3次并行运算来确定所有第k分块的逆,以便得到所有第k三角矩阵的逆,k为大于等于3并且小于等于n+1的整数。6.根据权利要求5所述的方法,其中在第一次迭代求逆计算时,所述2
n
个线程中的每一线程被分配来求解一个第一分块的目标元素,其中每一线程负责求解的目标元素的行号对应于该线程的线程号。7.根据权利要求5所述的方法,其中在第二次迭代求逆计算时,所述2
n
个线程中的每一奇数线程被分配来求解一个第二分块的目标元素,其中每一奇数线程负责求解的目标元素的行号对应于该奇数线程的线程号。8.根据权利要求5所述的方法,其中...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

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

1