【技术实现步骤摘要】
用于三角矩阵求逆的方法、设备和介质
[0001]本公开的实施例总体涉及通信
,并且更具体地涉及一种用于三角矩阵求逆的方法、设备和介质。
技术介绍
[0002]基于图形处理单元(graphics processing unit,此后简称为GPU)的异构计算已经成为当前的科研前沿,无论是在传统科学计算领域,还是新兴的人工智能方向,GPU都以极高的硬件性能成为重要的计算支柱。在传统科学计算领域,求解线性系统是一个非常重要的课题,在进行线性系统的求解时,通常需要通过LU分解将相关矩阵(例如,图形矩阵)分解为一个下三角矩阵(即L矩阵)和一个上三角矩阵(即U矩阵)),然后再基于L矩阵进行前向迭代或者基于U矩阵进行反向迭代来实现相应的求解。然而,对于含有多个右端项(Right Hand Side)的线性系统而言,直接使用前向迭代求解或者反向迭代求解都存在并行性不足的困境,无法充分发挥GPU的全部算力,因此在这种情况下,还需要对各个三角矩阵进行求逆,然后再将该三角矩阵的逆矩阵直接乘以多个右端项,这种算法有着更好的并行性,更适合GPU的异构计算场景。由于这样的三角矩阵的规模一般都非常大(其阶数通常大于或等于3),因此找到合适的对三角矩阵进行求逆的方法非常重要。
[0003]然而,目前用于对三角矩阵进行求逆的方法在每一次迭代时,线程束仅计算一列元素,并且线程束的每一线程计算当前列的一个元素,而且由于每次迭代都具有对角线上的元素,因此线程束中经常具有大量的线程处于空闲状态,导致无法充分发挥线程束的算力,因此计算性能仍不够理想 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其中...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:上海壁仞智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。