[发明专利]一种线性方程组的数据处理方法及装置有效
申请号: | 201210027340.4 | 申请日: | 2012-02-08 |
公开(公告)号: | CN102609393A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 张清;沈铂;吴庆;廖文军 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F17/11 | 分类号: | G06F17/11 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 线性方程组 数据处理 方法 装置 | ||
技术领域
本发明涉及计算机高性能计算领域、科学与工程数值计算领域,具体涉及一种线性方程组的数据处理方法及装置。
背景技术
近几年来,世界上和我国高性能计算机得发展取得了长足的进展。每秒百万亿次、数千万亿次超级计算机相继研究成功、并投入工业生产,使得以前许多无法求解和研究的问题成为可能。
大规模的科学与工程数值计算是高性能计算重要应用领域之一,其中线性方程组的求解是一个非常普遍的问题,它在很多工程领域被涉及,如石油勘探、天气预报,湍流模拟等。
对于工业生产上某些领域,一些功能的核心算法涉及到线性方程组的求解,目前,人们往往使用大规模的CPU集群来进行处理,其原理是一个CPU核处理一个线性方程组或是多个核处理一个线性方程组,最后将各个CPU核的结果汇总输出。这种做法CPU集群的维护管理费用、功耗都非常高,而且其处理的时间长,远远满足不了工业生产的需求。随着GPU(Graphic Processing Unit,图形处理器)的出现,GPU利用其众核处理能力,其性能峰值和内存带宽远远高于CPU,而且十分适合解线程方程组这种密集计算型算法案例,目前通常的做法是一个GPU Kenrel计算一个方程,如开源magma库的LU分解求解线性方程组就是采用这种处理方法,其非常适合对于大型线程方程组的求解,但是对于工业上多次求解线程方程组,将出现GPU Kernel的反复调用问题,造成一些额外调用开销。
可见,为满足工业生产的需求,需要一种针对不同规模的线性方程组求解的方案。
发明内容
本发明所要解决的技术问题是,提供一种线性方程组的数据处理方法及装置,能够针对不同规模的线性方程组进行求解。
为了解决上述技术问题,本发明公开了一种线性方程组的数据处理方法,包括:
系统根据图形处理器(GPU)显存大小及所要计算的线性方程组系数矩阵维度大小确定GPU一次性并行求解的最大线性方程组个数M;
当M大于或等于GPU的流处理器个数时,确定当前所要计算的是小型线性方程组,则通过一个GPU内核(Kernel)一次性应并行求解M个方程直到求解完整个线性方程组;
当M小于GPU的流处理器个数时,确定当前所要计算的是大型线性方程组,则调用基于GPU和众核架构的矩阵代数库进行运算,其中,一次求解一个线性方程组。
较佳地,上述方法中,系统根据GPU显存大小及所要计算的线性方程组系数矩阵维度大小确定GPU一次性并行求解的最大线性方程组个数M的过程如下:
确定GPU可利用的显存空间W,根据线性方程组系数矩阵的维度大小,计算求解一个线性方程组所需显存空间W0;统计求解线性方程组额外的辅助数据所需显存空间W1;再根据GPU可利用显存空间W、求解线性方程组额外的辅助数据所需显存空间W1和一个线性方程组所需显存空间W0,计算一次性并行求解的最大线性方程组个数M,其中:
M=(W-W1)/W0。
较佳地,上述方法中,通过一个GPU Kernel一次性应并行求解M个方程直到求解完整个线性方程组的过程如下:
确定计算统一设备架构(CUDA)线程模型,将M个线性方程组设计为一个网格(Grid),其中每一个线性方程组设计为一个线程块(GPU Block),每一个线程块的线程(Thread)数根据系数矩阵的维度变动而动态调整;
确定CUDA并行算法,利用GPU线程并行进行消元操作,一个GPUBlock包括多个线程束(warp),一个线程束负责一列的消元,多个线程束并行消去多列;一个线程束内一个线程负责一列中一行的消元,多个线程实现并行多行消元;
确定CUDA内存模型,所述CUDA内存模型支持全局内存使用、共享内存使用和第一级缓存使用。
较佳地,上述方法中,所述全局内存使用指:一个线程束内的32个线程同时访问全局内存中的连续内存。
较佳地,上述方法中,所述共享内存使用指:将每个块中公共的数据,放入共享内存中。
较佳地,上述方法中,所述第一级缓存使用指:将局部多次访问的数据放置在第一级缓存中。
本发明还公开了一种线性方程组的数据处理装置,包括:
第一单元,根据GPU显存大小及所要计算的线性方程组系数矩阵维度大小确定GPU一次性并行求解的最大线性方程组个数M;
第二单元,判断M是否大于或等于GPU的流处理器个数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210027340.4/2.html,转载请声明来源钻瓜专利网。