[发明专利]一种利用GPU对小矩阵求逆的方法有效
申请号: | 201110407357.8 | 申请日: | 2011-12-08 |
公开(公告)号: | CN102567283A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 隋丹;李云洲;周春晖;赵熠飞;赵明;王京 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 gpu 矩阵 方法 | ||
1.一种利用GPU对小矩阵求逆的方法,其特征在于,包括步骤:
B:在GPU的共享存储器上创建维度为K×(N×N)的二维数组sm_a,创建两个维度为K×N的二维数组sm_is和sm_js;K和N均为大于0的自然数;
C:将GPU的全局存储器中的K个N阶方阵并行存储到所述共享存储器的二维数组sm_a中;
D:利用所述二维数组sm_is和sm_js,在所述共享存储器中完成对所述K个N阶方阵的求逆处理。
2.如权利要求1所述的方法,其特征在于,所述步骤D中,利用所述二维数组sm_is和sm_js,并采用全选主元高斯消去法,在所述共享存储器中并行完成对所述K个N阶方阵的求逆处理。
3.如权利要求1所述的方法,其特征在于,所述步骤D具体包括步骤:
D1:将K个N阶方阵A分别作为初始的当前方阵;
D2:判断K个当前方阵是否是1阶方阵,如果是,退出;否则,将K个当前方阵中的最大元素的行下标分别存储到所述二维数组sm_is中,列下标分别存储到所述二维数组sm_js中;
D3:对K个当前方阵,分别用所述行下标和列下标的组合对应的元素替换K个当前方阵中最上一行的对角线元素;
D4:对K个当前方阵中的非对角线元素根据如下公式按照从上至下并且从左至右的顺序进行更新:
A(k,j)=A(k,j)/A(k,k);
A(i,j)=A(i,j)-A(i,k)×A(k,j);
A(i,k)=-A(i,k)/A(k,k);
其中,0≤i,j≤N-1,i≠k,j≠k,i≠j;
D5:对K个当前方阵,分别删除最上一行和最左一列,得到新的K个当前方阵,执行步骤D2。
4.如权利要求1所述的方法,其特征在于,在所述步骤B之前还包括步骤A:选择由二维计算线程组成的线程块,所述线程块的第一维的数值对应待处理方阵的阶数,设定为N,第二维的数值对应待处理方阵的个数,设定为K。
5.如权利要求1所述的方法,其特征在于,在所述步骤D之后还包括步骤E:将所述K个N阶方阵的求逆结果从所述共享存储器转移到所述全局存储器。
6.如权利要求1所述的方法,其特征在于,所述N的取值为2、4或者8。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110407357.8/1.html,转载请声明来源钻瓜专利网。