System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向IGA的多GPU/CPU并行求解方法及设备技术_技高网

一种面向IGA的多GPU/CPU并行求解方法及设备技术

技术编号:40547564 阅读:4 留言:0更新日期:2024-03-05 19:05
本发明专利技术属于等几何分析相关技术领域,其公开了一种面向IGA的多GPU/CPU并行求解方法及设备,该方法包括以下步骤:(1)根据待求解的IGA刚度矩阵的规模与本地GPU/CPU的数量及计算能力构建多设备并行框架;(2)将IGA刚度矩阵转化为CSR格式或BSR格式,并将刚度矩阵分配给多个计算设备;(3)采用L1范数方法计算每个计算设备的预处理矩阵;(4)确定每次迭代的共轭搜索方向与迭代步长;在SPMV求解前进行不同设备间的数据通信,最终更新本次迭代的解向量,计算每个计算设备上的残差值并在主线程实现多设备结果的合并,重复这个过程直到满足收敛条件,继而完成求解。本发明专利技术极大程度上提升了等几何分析的求解效率与最大可求解规模。

【技术实现步骤摘要】

本专利技术属于等几何分析相关,更具体地,涉及一种面向iga的多gpu/cpu并行求解方法及设备。


技术介绍

1、目前常用的工业软件中,结构拓扑优化是依靠有限元分析来实现的。然而,由于有限元分析网格只是对几何模型的近似表示,导致在cae(computer aided engineering,cae)和cad(computer aided design,cad)模型之间存在耗时且繁琐的转换过程,无法实现建模、分析和拓扑优化的闭环。同时,在有限元分析(finite element analysis,fea)中,相邻单元之间的连续性较低,严重限制了结构响应分析的精度。为了提高分析精度,不断细分网格又会带来计算成本的增加。为了解决上述问题并实现cad/cae模型的一体化,等几何分析(isogeometric analysis,iga)近年来受到广泛关注和快速发展,通过使用nurbs样条曲线将几何信息直接用于数值分析,完美地解决了上述有限元分析的缺点。凭借其高精度和高效率的优势,等几何分析在拓扑优化中得到了广泛应用。

2、尽管iga方法由于其采用nurbs样条作为基函数导致的高阶连续性,使其在分析精度方面表现出色,但随之而来的数据密度倍数增加使得其计算时间成本较高,这增加了iga在实际应用中的成本,导致了iga方法对自由度需求较高的工程应用较为无力。这是因为iga方法采用nurbs基函数替代fea的拉格朗日插值函数,nurbs本身的高阶连续性导致了更高数据密度的单元刚度矩阵;另一方面相同的自由度下,iga方法的控制点重用性导致了其单元总数大于fea方法。这两者共同增加了刚度矩阵的数据量,使得iga方法的实现过程异常艰难,其中求解过程占据了总时间的70%,成为iga方法的瓶颈。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本专利技术提供了一种面向iga的多gpu/cpu并行求解方法及设备,以突破目前iga方法效率的瓶颈,使得单机求解高分辨率模型成为可能。

2、为实现上述目的,按照本专利技术的一个方面,提供了一种面向iga的多gpu/cpu并行求解方法,该方法包括以下步骤:

3、(1)根据待求解的iga刚度矩阵的规模与本地的gpu/cpu的数量及计算能力构建多设备并行框架;其中,iga刚度矩阵是采用等几何分析进行结构拓扑优化的待优化结构的刚度矩阵;

4、(2)将iga刚度矩阵转化为csr格式或者bsr格式,并基于多设备并行框架将转化后的刚度矩阵分配给多个计算设备;

5、(3)采用l1范数方法计算每个计算设备的预处理矩阵,并进行迭代前的变量初始化;

6、(4)利用openmp开启多个cpu线程控制多个计算设备进行线性运算以对预处理方程进行求解,确定每次迭代的共轭搜索方向与迭代步长;在spmv求解前进行不同设备间的数据通信,使得搜索向量保持数据同步,最终更新本次迭代的解向量,计算每个计算设备上的残差值并在主线程实现多设备结果的合并,重复这个过程直到满足收敛条件,继而完成求解。

7、进一步地,首先得到待求解的iga刚度矩阵数据规模,然后得到本地的gpu/cpu设备数量以及对应的设备性能参数,之后选择最佳计算设备数量来构建多设备并行架构。

8、进一步地,所设计的并行架构利用openmp并行规范实现外部任务级并行方案,利用cuda通用并行编程模型实现各gpu的内部数据级别并行。

9、进一步地,用吞吐量gflop来近似表示第i个计算设备的计算能力,按照各设备的gflop大小分配计算负载;构建并行架构所需的性能参数有:cpu吞吐量、内存容量、以及拥有的内核数量、逻辑处理器数量、pcie总线带宽、gpu型号、吞吐量和显存容量。

10、进一步地,构建多设备并行架构的流程为:

11、1)判断gpu显存容量与iga刚度矩阵大小关系;当gpu显存容量不足以承载iga刚度矩阵时,将cpu也纳入并行框架,利用cpu的内存空间储存额外的按行分块刚度矩阵;

12、2)在采用纯gpu运算框架下,判断算力最高的单块gpu卡能否存储iga刚度矩阵,若可以则采用避免多设备数据通信的单块gpu卡求解刚度矩阵,否则选择使用多块gpu卡;

13、3)根据iga刚度矩阵实际规模与pci-e总线带宽确定参与运算的gpu数量。

14、进一步地,将gpu间数据传输用d2d表示,cpu间数据传输用h2h表示,cpu与gpu间数据传输用d2h与h2d表示。

15、进一步地,使用多gpu/cpu异构并行框架的spmv等线性运算公式为:

16、

17、

18、

19、

20、式中,aij为第i个计算设备的第j块矩阵,式中∪运算符代表着将向量按下标的顺序进行合并;pj为第j分块刚度矩阵的搜索方向向量;α为搜索向量迭代步长;n为矩阵被分成的块数。

21、进一步地,在每个计算设备上将本地系数矩阵的每一行视作一个行向量,取其l1范数视为其对角矩阵中对应行的值,采用l1范数方法得到每个计算设备上的雅可比预处理矩阵的步骤为:

22、s31根据csr格式的特性得到刚度矩阵每一行非零元素的绝对值累加和,这个过程在所有计算设备上进行;

23、s32根据等几何全局刚度矩阵的行编码,得到各个计算设备上部分刚度矩阵对应的对角线元素的索引,以此索引处刚度矩阵元素的符号作为每一行绝对值和的符号;

24、s33由于雅可比矩阵的预处理矩阵包含对角线项,用选定的松弛因子去乘以s32得到的值的倒数作为本行预处理矩阵的逆阵的元素值,这个过程在所有计算设备上进行;

25、s34在每个计算设备上计算迭代的初始残差r0:

26、

27、本专利技术还提供了一种面向iga的多gpu/cpu并行求解系统,所述系统包括存储器及处理器,所述存储器储存有计算机程序,所述处理器执行所述计算机程序时执行如上所述的面向iga的多gpu/cpu并行求解方法。

28、本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现如上所述的面向iga的多gpu/cpu并行求解方法。

29、总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,本专利技术提供的面向iga的多gpu/cpu并行求解方法及设备主要具有以下有益效果:

30、1.本专利技术利用多个gpu/cpu并行加速改进j-pgg算法计算过程,利用多个gpu/cpu设备带来的额外内存/计算能力提升,极大程度上提升了等几何分析的求解效率与最大可求解规模,使得千万自由度等几何分析方法成为可能,进而提高结构拓扑优化的效率。

31、2.本专利技术提出了一种j-pgg预处理器的改进方法,该方法不同于传统j-pgg只利用系数矩阵对角线项作为预处理矩阵,其采用行向本文档来自技高网...

【技术保护点】

1.一种面向IGA的多GPU/CPU并行求解方法,其特征在于,该方法包括以下步骤:

2.如权利要求1所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:首先得到待求解的IGA刚度矩阵数据规模,然后得到本地的GPU/CPU设备数量以及对应的设备性能参数,之后选择最佳计算设备数量来构建多设备并行架构。

3.如权利要求2所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:所设计的并行架构利用OpenMP并行规范实现外部任务级并行方案,利用CUDA通用并行编程模型实现各GPU的内部数据级别并行。

4.如权利要求2所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:用吞吐量GFLOP来近似表示第i个计算设备的计算能力,按照各设备的GFLOP大小分配计算负载;构建并行架构所需的性能参数有:CPU吞吐量、内存容量、拥有的内核数量、逻辑处理器数量、PCIe总线带宽、GPU型号、吞吐量和显存容量。

5.如权利要求1所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:构建多设备并行架构的流程为:

6.如权利要求1所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:将GPU间数据传输用D2D表示,CPU间数据传输用H2H表示,CPU与GPU间数据传输用D2H与H2D表示。

7.如权利要求1所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:使用多GPU/CPU异构并行框架的SPMV等线性运算公式为:

8.如权利要求1-7任一项所述的面向IGA的多GPU/CPU并行求解方法,其特征在于:在每个计算设备上将本地系数矩阵的每一行视作一个行向量,取其L1范数视为其对角矩阵中对应行的值,采用L1范数方法得到每个计算设备上的雅可比预处理矩阵的步骤为:

9.一种面向IGA的多GPU/CPU并行求解系统,其特征在于:所述系统包括存储器及处理器,所述存储器储存有计算机程序,所述处理器执行所述计算机程序时执行权利要求1-8任一项所述的面向IGA的多GPU/CPU并行求解方法。

10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-8任一项所述的面向IGA的多GPU/CPU并行求解方法。

...

【技术特征摘要】

1.一种面向iga的多gpu/cpu并行求解方法,其特征在于,该方法包括以下步骤:

2.如权利要求1所述的面向iga的多gpu/cpu并行求解方法,其特征在于:首先得到待求解的iga刚度矩阵数据规模,然后得到本地的gpu/cpu设备数量以及对应的设备性能参数,之后选择最佳计算设备数量来构建多设备并行架构。

3.如权利要求2所述的面向iga的多gpu/cpu并行求解方法,其特征在于:所设计的并行架构利用openmp并行规范实现外部任务级并行方案,利用cuda通用并行编程模型实现各gpu的内部数据级别并行。

4.如权利要求2所述的面向iga的多gpu/cpu并行求解方法,其特征在于:用吞吐量gflop来近似表示第i个计算设备的计算能力,按照各设备的gflop大小分配计算负载;构建并行架构所需的性能参数有:cpu吞吐量、内存容量、拥有的内核数量、逻辑处理器数量、pcie总线带宽、gpu型号、吞吐量和显存容量。

5.如权利要求1所述的面向iga的多gpu/cpu并行求解方法,其特征在于:构建多设备并行架构的流程为:

6.如权利要求1所述的面向iga的多gpu/...

【专利技术属性】
技术研发人员:夏兆辉韩锦鹏刘健力范洪硕聂涛
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1