[发明专利]一种线性方程组的数据处理方法及装置有效
| 申请号: | 201210027340.4 | 申请日: | 2012-02-08 |
| 公开(公告)号: | CN102609393A | 公开(公告)日: | 2012-07-25 |
| 发明(设计)人: | 张清;沈铂;吴庆;廖文军 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
| 主分类号: | G06F17/11 | 分类号: | G06F17/11 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
| 地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 线性方程组 数据处理 方法 装置 | ||
1.一种线性方程组的数据处理方法,其特征在于,该方法包括:
系统根据图形处理器(GPU)显存大小及所要计算的线性方程组系数矩阵维度大小确定GPU一次性并行求解的最大线性方程组个数M;
当M大于或等于GPU的流处理器个数时,确定当前所要计算的是小型线性方程组,则通过一个GPU内核一次性应并行求解M个方程直到求解完整个线性方程组;
当M小于GPU的流处理器个数时,确定当前所要计算的是大型线性方程组,则调用基于GPU和众核架构的矩阵代数库进行运算,其中,一次求解一个线性方程组。
2.如权利要求1所述的方法,其特征在于,系统根据GPU显存大小及所要计算的线性方程组系数矩阵维度大小确定GPU一次性并行求解的最大线性方程组个数M的过程如下:
确定GPU可利用的显存空间W,根据线性方程组系数矩阵的维度大小,计算求解一个线性方程组所需显存空间W0;统计求解线性方程组额外的辅助数据所需显存空间W1;再根据GPU可利用显存空间W、求解线性方程组额外的辅助数据所需显存空间W1和一个线性方程组所需显存空间W0,计算一次性并行求解的最大线性方程组个数M,其中:
M=(W-W1)/W0。
3.如权利要求1或2所述的方法,其特征在于,通过一个GPU内核一次性应并行求解M个方程直到求解完整个线性方程组的过程如下:
确定计算统一设备架构(CUDA)线程模型,将M个线性方程组设计为一个网格,其中每一个线性方程组设计为一个线程块,每一个线程块的线程数根据系数矩阵的维度变动而动态调整;
确定CUDA并行算法,利用GPU线程并行进行消元操作,一个线程块包括多个线程束,一个线程束负责一列的消元,多个线程束并行消去多列;一个线程束内一个线程负责一列中一行的消元,多个线程实现并行多行消元;
确定CUDA内存模型,所述CUDA内存模型支持全局内存使用、共享内存使用和第一级缓存使用。
4.如权利要求3所述的方法,其特征在于,所述全局内存使用指:
一个线程束内的32个线程同时访问全局内存中的连续内存。
5.如权利要求3所述的方法,其特征在于,所述共享内存使用指:
将每个块中公共的数据,放入共享内存中。
6.如权利要求3所述的方法,其特征在于,所述第一级缓存使用指:
将局部多次访问的数据放置在第一级缓存中。
7.一种线性方程组的数据处理装置,其特征在于,该装置包括:
第一单元,根据图形处理器(GPU)显存大小及所要计算的线性方程组系数矩阵维度大小确定GPU一次性并行求解的最大线性方程组个数M;
第二单元,判断M是否大于或等于GPU的流处理器个数;
第三单元,当M大于或等于GPU的流处理器个数时,确定当前所要计算的是小型线性方程组,通过一个GPU内核一次性应并行求解M个方程直到求解完整个线性方程组;
第四单元,当M小于GPU的SM流处理器个数时,确定当前所要计算的是大型线性方程组,调用基于GPU和众核架构的矩阵代数库进行运算,其中,一次求解一个线性方程组。
8.如权利要求7所述的装置,其特征在于,
所述第一单元,计算确定GPU可利用的显存空间W,根据线性方程组系数矩阵的维度大小,计算求解一个线性方程组所需显存空间W0;统计求解线性方程组额外的辅助数据所需显存空间W1;再根据GPU可利用显存空间W、求解线性方程组额外的辅助数据所需显存空间W1和一个线性方程组所需显存空间W0,计算一次性并行求解的最大线性方程组个数M,其中:
M=(W-W1)/W0。
9.如权利要求7或8所述的装置,其特征在于,
所述第三单元,确定计算统一设备架构(CUDA)线程模型,将M个线性方程组设计为一个网格,其中每一个线性方程组设计为一个线程块,每一个线程块的线程数根据系数矩阵的维度变动而动态调整;
确定CUDA并行算法,利用GPU线程并行进行消元操作,一个GPU块包括多个线程束,一个线程束负责一列的消元,多个线程束并行消去多列;一个线程束内一个线程负责一列中一行的消元,多个线程实现并行多行消元;
确定CUDA内存模型,所述CUDA内存模型支持全局内存使用、共享内存使用和第一级缓存使用。
10.如权利要求9所述的装置,其特征在于,
所述全局内存使用指:一个线程束内的32个线程同时访问全局内存内中的连续内存;
所述共享内存使用指:将每个块中公共的数据,放入共享内存中;
所述第一级缓存使用指:将局部多次访问的数据放置在第一级缓存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210027340.4/1.html,转载请声明来源钻瓜专利网。





