线性求解器的加速方法、存储数据库及GPU系统技术方案

技术编号:16930855 阅读:25 留言:0更新日期:2018-01-03 00:59
本发明专利技术实施例提供了一种线性求解器的加速方法、存储数据库及图形处理器系统,其中所述存储数据库包括:第一存储单元,用于存储任务块的网格单元标识;第二存储单元,用于存储内部面的标识以及与所述内部面标识相对应的内部面数据,所述内部面是连接两个网格单元的平面,映射为同一个网格单元标识的内部面标识所对应的内部面数据存储在所述第二存储单元的相邻存储区域;索引单元,用于构建并存储所述网格单元标识的索引范围,所述索引范围包含所述网格单元标识与所述内部面标识的映射关系。本发明专利技术实施例所提供的线性求解器的加速方法、存储数据库及图形处理系统,能实现对线性求解器进行加速运算,提高计算效率。

The acceleration method, storage database and GPU system for linear solver

The embodiment of the invention provides an accelerating method, linear solver storage database and graphics processor system, wherein the storage database includes a first storage unit for grid unit identifies a task block; the second storage unit used for internal data storage within the surface and the inner surface of logo and logo corresponding the plane is the plane, the internal connection of two grid units, corresponding to the internal surface mapping identifies the same grid unit identifies the internal surface data stored in the storage area adjacent to the second storage unit; the index unit is used to build and store the index range of mesh mark, the index range contains the mapping relation of the inner mesh unit identification and the identification of the surface. The acceleration method, storage database and graphic processing system of the linear solver provided by the embodiment of the invention can accelerate the operation of the linear solver and improve the computation efficiency.

【技术实现步骤摘要】
线性求解器的加速方法、存储数据库及GPU系统
本专利技术涉及线性计算领域,尤其涉及一种线性求解器的加速方法、存储数据库及图形处理器(GraphicsProcessingUnit,GPU)系统。
技术介绍
在工业仿真领域,一个常见的问题就是对稀疏线性方程组的求解,例如对方程进行求解,其中:A表示离散矩阵,j表示待求解的向量,b表示离散方程组的源项。在实际计算的时候,可以将离散矩阵A的对角、上三角和下三角元素分别存储在三个向量中,其中上三角元素与下三角元素共用两个索引向量,用于获取元素在矩阵中的位置。这种存储方式被广泛地应用于工业仿真领域,并且这种存储方式还可以与预处理共轭梯度法(PreconditionedConjugateGradient,PCG)、预处理双共轭梯度法(PreconditionedBi-ConjugateGradient,PBiCG)、几何代数多重网格法(Geometric-algebraicAulti-gridSolvers,GAMG)等线性求解算法结合,实现相应的线性求解器。在现有技术中,线性求解的过程中会有大量的线性代数运算,如内积、矩阵向量乘法等,运算量比较大,因此如果将线性求解的全部工作交给CPU去完成,受CPU自身架构的限制,其运算效率会很低,无法满足目前工业仿真的要求。
技术实现思路
本专利技术提供了一种线性求解器的加速方法、存储数据库及图形处理器系统,克服了现有技术中线性求解器运算效率低的问题。本专利技术实施例提供了一种存储数据库,所述存储数据库包括:第一存储单元,用于存储网格单元标识;第二存储单元,用于存储内部面的标识以及与所述内部面标识相对应的内部面数据,所述内部面是连接两个网格单元的平面,映射为同一个网格单元标识的内部面标识所对应的内部面数据存储在所述第二存储单元的相邻存储区域;索引单元,用于构建并存储所述网格单元标识的索引范围,所述索引范围包含所述网格单元标识与所述内部面标识的映射关系。优选地,所述网格单元标识用整数表示,所述内部面标识也使用整数表示;两个网格单元通过内部面相连接时,标识小的网格单元是内部面的所有者网格单元,标识大的网格单元是内部面的邻居网格单元。优选地,所述索引单元,还用于统计内部面标识所对应的网格单元标识,构建网格单元标识与所述内部面标识的对应关系。优选地,所述索引单元构建的网格单元标识与所述内部面标识的对应关系中还包括所述网格单元标识的索引范围,所述索引范围表示每个网格单元标识所对应的内部面标识个数。优选地,根据第一存储单元中所存储的网格单元标识查找该网格单元标识所对应的索引范围;根据所述索引范围确定该网格单元标识所对应的内部面标识,将所述第二存储单元中相邻存储区域存储的所述内部面标识所对应的内部面数据全部读取出来。本专利技术实施例还提供了一种线性求解器的加速方法,使用前述任一所述的存储数据库,所述方法包括:GPU将待计算的任务块划分为网格单元,确定所述网格单元的网格单元标识;根据所述网格单元标识以及所述网格单元的检索范围确定所述网格单元标识所对应的内部面标识,根据所述内部面标识读取与所述内部面标识所对应的内部面数据;根据所述读取到的内部面数据进行计算。优选地,所述根据所述网格单元标识以及所述网格单元的检索范围确定所述网格单元标识所对应的内部面标识,根据所述内部面标识读取与所述内部面标识所对应的内部面数据,包括:GPU根据所述网格单元的标识,从存储数据库中获取所述网格单元标识的索引范围;根据所述网格单元的索引范围确定所述内部面标识,并根据所述内部面标识确定与所述内部面标识相对应的内部面数据的存储区域,读取所述存储区域内的内部面数据。优选地,所述加速方法还包括构建存储数据库,具体的:统计所述待计算任务块的内部面标识所对应的网格单元标识,构建所述网格单元标识与所述内部面标识的对应关系;将映射为相同网格单元标识的内部面标识所对应的内部面数据保存在所述存储数据库中相邻的存储区域内。优选地,所述构建的网格单元标识与所述内部面标识的对应关系中还包括所述网格单元标识的索引范围,所述索引范围表示每个网格单元标识所对应的内部面标识个数。本专利技术实施例还提供了一种GPU系统,包括前述任一所述的存储数据库。本专利技术实施例还提供了一种GPU系统,所述系统包括存储器和处理器,其中:所述存储器,用于存储代码;所述处理器,用于执行所述存储器中的代码,执行所述存储器中的代码能实施前述任一所述的方法步骤。本专利技术实施例所提供的一种线性求解器的加速方法、存储数据库及图形处理器系统,具有以下有益效果:本专利技术实施例所提供的技术方案,利用GPU强大的并行计算能力,将密集的计算任务交给了GPU完成,大幅提升了计算速度;通过MPI接口实现了任务级并行,可以将多个任务分配到多个GPU中,可以更加充分地利用硬件资源;同时将映射为同一个网格单元标识的内部面标识所对应的内部面数据存储在连续的存储区域,便于GPU的读取和访问。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述汇总所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例中GPU并行计算示意图;图2A是本专利技术实施例中阻塞式发送/接收流程示意图;图2B是本专利技术实施例中非阻塞式发送/接收流程示意图;图3是本专利技术实施例中数乘运算示意图;图4是本专利技术实施例中优化前cellid和faceid的对应关系示意图;图5是本专利技术实施例中网格单元与内部面的结构示意图;图6是本专利技术实施例中网格单元与索引的示意图;图7是本专利技术实施例中优化后的cellid和faceid的对应关系示意图;图8是本专利技术实施例中存储数据库的存储空间优化前后对比示意图;图9是本专利技术实施例所提供的存储数据库的结构示意图;图10是本专利技术实施例所提供的线性求解器的加速方法的流程示意图;图11是本专利技术实施例所提供的GPU系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一:鉴于图形处理器(GraphicsProcessingUnit,GPU)本身强大的运算能力,在本专利技术实施例所提供的线性求解器中引入GPU,因此本专利技术实施例所提供的线性求解器的加速方法可以应用在具有多个图形处理器(GraphicsProcessingUnit,GPU)的计算环境中。如图1所示,本专利技术实施例中可以将计算任务分配到多个GPU上,例如GPU1、GPU2、GPU3和GPU4,多个GPU之间可以通过消息传递接口(MessagePassingInterface,MPI)进行通信。通过MPI接口,可以将计算任务进行任务级的并行,充分利用GPU的并行计算能力。在一个优选的方案中,在计算流体力学(ComputationalFluidDynamics,CFD)领域,当所创建的网格比较大时,往往会把网格划分为多个子域,分别对这些子域分别进行求解,此时使本文档来自技高网...
线性求解器的加速方法、存储数据库及GPU系统

【技术保护点】
一种存储数据库,其特征在于:所述存储数据库包括:第一存储单元,用于存储网格单元标识;第二存储单元,用于存储内部面的标识以及与所述内部面标识相对应的内部面数据,所述内部面是连接两个网格单元的平面,映射为同一个网格单元标识的内部面标识所对应的内部面数据存储在所述第二存储单元的相邻存储区域;索引单元,用于构建并存储所述网格单元标识的索引范围,所述索引范围包含所述网格单元标识与所述内部面标识的映射关系。

【技术特征摘要】
1.一种存储数据库,其特征在于:所述存储数据库包括:第一存储单元,用于存储网格单元标识;第二存储单元,用于存储内部面的标识以及与所述内部面标识相对应的内部面数据,所述内部面是连接两个网格单元的平面,映射为同一个网格单元标识的内部面标识所对应的内部面数据存储在所述第二存储单元的相邻存储区域;索引单元,用于构建并存储所述网格单元标识的索引范围,所述索引范围包含所述网格单元标识与所述内部面标识的映射关系。2.根据权利要求1所述的存储数据库,其特征在于:所述网格单元标识用整数表示,所述内部面标识也使用整数表示;两个网格单元通过内部面相连接时,标识小的网格单元是内部面的所有者网格单元,标识大的网格单元是内部面的邻居网格单元。3.根据权利要求2所述的存储数据库,其特征在于:所述索引单元,还用于统计内部面标识所对应的网格单元标识,构建网格单元标识与所述内部面标识的对应关系。4.根据权利要求3所述的存储数据库,其特征在于:所述索引单元构建的网格单元标识与所述内部面标识的对应关系中还包括所述网格单元标识的索引范围,所述索引范围表示每个网格单元标识所对应的内部面标识个数。5.根据权利要求1至4任一所述的存储数据库,其特征在于:根据第一存储单元中所存储的网格单元标识查找该网格单元标识所对应的索引范围;根据所述索引范围确定该网格单元标识所对应的内部面标识,将所述第二存储单元中相邻存储区域存储的所述内部面标识所对应的内部面数据全部读取出来。6.一种线性求解器的加速方法,其特征在于:使用如权利要求1至5任一所述的存储数据库,所述方法包括:GPU将待计算的任务块划分为网格单元,确定所述...

【专利技术属性】
技术研发人员:朱兆生童潮臻吴健明
申请(专利权)人:浙江远算云计算有限公司杭州远算科技有限公司
类型:发明
国别省市:浙江,33

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

1