基于ICCG法的飞行器部件强度校核快速计算方法
发布时间:2021-11-04 09:36
为满足可重复使用飞行器结构故障快速校核计算的求解要求,以GPU(Graphics Processing Unit)作为协处理器,利用其高度并行化、高显存带宽的优势完成稀疏线性方程组的加速求解。鉴于线性方程组的求解最为耗时,采用不完全Cholesky分解的共轭梯度法(ICCG)完成机翼算例的计算,在GTX1060显卡上较E3 1230V5有最高约25倍的加速比。结果表明,基于CUDA的ICCG算法能够满足至少60 000阶矩阵的飞行器有限元模型的相关计算。
【文章来源】:计算机科学. 2020,47(S2)北大核心CSCD
【文章页数】:5 页
【部分图文】:
程序框架时序图
图1中最为重要的步骤即CPU上的任务划分和数据分割。通常情况下,稀疏矩阵经带宽优化可化为带状稀疏矩阵,用分块矩阵形式表示。以有两个计算节点的计算集群为例,计算节点0负责计算前两行,即子矩阵A11-A23均放至计算节点0进行计算。计算节点1负责计算后两行,以此表征节点间的任务级并行。而节点内部的两部GPU分别负责计算任意一行,用以表征节点内的并行层级;当矩阵较小时各GPU仅需调用一次SpMV函数,如图2(a)所示;当矩阵较大数据传输耗时较多时采用流[20]形式进行计算,用以表示GPU内部并行层级,如图2(b)所示。记计算节点数目为N,节点内流的数目为S,每个计算节点内的GPU数目为in,其中n<N。若SpMV在第n个节点内计算时,第i个GPU上的第s个流对应计算编号A的子矩阵,即该GPU计算当前子矩阵所在行的所有数据。该方案的优点是在一个GPU内易实现Thrust库[21]的求和操作,但在原矩阵带宽变化较大时会出现负载不均衡的现象,不易保证硬件利用率。由于P2P[22]技术的出现,不同GPU显存可以通过PCIE总线直连,因此本文应用任务结构体,采用更为高效的多流策略[23],如算法2所示。
针对运载器机翼在飞行过程中的动载荷问题,在CAE软件中建模并在Abaqus中用三维8节点六面体单元划分该示例模型,通过控制各边上的节点数目得到不同阶数的稀疏矩阵,如图3所示。inp文件输出的节点、单元、材料、载荷信息通过函数接口导入并计算总刚度矩阵。因在计算时总刚度矩阵不变,载荷向量待定,故在对比计算效率时仅统计载荷向量从主机端至显卡(后称设备端)的拷贝花销、解算时间、位移向量从设备端至主机端的拷贝花销这3项。为加快内存拷贝速度,主机端内存分配均采用锁页内存,通过cudamallochost函数申请空间[7];因在Windows系统下,CPU端的计时器精度为1 ms,设备端采用CUDA自带cudaEvent_t类计时,精度为0.5 μs。迭代终止条件为迭代循环内向量内积小于1×10-7或迭代10 000次。
【参考文献】:
期刊论文
[1]基于CUDA的大规模稀疏矩阵的PCG算法优化[J]. 郑经纬,安雪晖,黄绵松. 清华大学学报(自然科学版). 2014(08)
[2]考虑气动—推进—弹性耦合的高超声速飞行器面向控制建模与分析[J]. 张希彬,宗群,曾凡琳. 宇航学报. 2014(05)
[3]GPU上计算流体力学的加速[J]. 董廷星,李新亮,李森,迟学斌. 计算机系统应用. 2011(01)
[4]高超声速飞行器气动弹性力学研究综述[J]. 杨超,许赟,谢长川. 航空学报. 2010(01)
本文编号:3475477
【文章来源】:计算机科学. 2020,47(S2)北大核心CSCD
【文章页数】:5 页
【部分图文】:
程序框架时序图
图1中最为重要的步骤即CPU上的任务划分和数据分割。通常情况下,稀疏矩阵经带宽优化可化为带状稀疏矩阵,用分块矩阵形式表示。以有两个计算节点的计算集群为例,计算节点0负责计算前两行,即子矩阵A11-A23均放至计算节点0进行计算。计算节点1负责计算后两行,以此表征节点间的任务级并行。而节点内部的两部GPU分别负责计算任意一行,用以表征节点内的并行层级;当矩阵较小时各GPU仅需调用一次SpMV函数,如图2(a)所示;当矩阵较大数据传输耗时较多时采用流[20]形式进行计算,用以表示GPU内部并行层级,如图2(b)所示。记计算节点数目为N,节点内流的数目为S,每个计算节点内的GPU数目为in,其中n<N。若SpMV在第n个节点内计算时,第i个GPU上的第s个流对应计算编号A的子矩阵,即该GPU计算当前子矩阵所在行的所有数据。该方案的优点是在一个GPU内易实现Thrust库[21]的求和操作,但在原矩阵带宽变化较大时会出现负载不均衡的现象,不易保证硬件利用率。由于P2P[22]技术的出现,不同GPU显存可以通过PCIE总线直连,因此本文应用任务结构体,采用更为高效的多流策略[23],如算法2所示。
针对运载器机翼在飞行过程中的动载荷问题,在CAE软件中建模并在Abaqus中用三维8节点六面体单元划分该示例模型,通过控制各边上的节点数目得到不同阶数的稀疏矩阵,如图3所示。inp文件输出的节点、单元、材料、载荷信息通过函数接口导入并计算总刚度矩阵。因在计算时总刚度矩阵不变,载荷向量待定,故在对比计算效率时仅统计载荷向量从主机端至显卡(后称设备端)的拷贝花销、解算时间、位移向量从设备端至主机端的拷贝花销这3项。为加快内存拷贝速度,主机端内存分配均采用锁页内存,通过cudamallochost函数申请空间[7];因在Windows系统下,CPU端的计时器精度为1 ms,设备端采用CUDA自带cudaEvent_t类计时,精度为0.5 μs。迭代终止条件为迭代循环内向量内积小于1×10-7或迭代10 000次。
【参考文献】:
期刊论文
[1]基于CUDA的大规模稀疏矩阵的PCG算法优化[J]. 郑经纬,安雪晖,黄绵松. 清华大学学报(自然科学版). 2014(08)
[2]考虑气动—推进—弹性耦合的高超声速飞行器面向控制建模与分析[J]. 张希彬,宗群,曾凡琳. 宇航学报. 2014(05)
[3]GPU上计算流体力学的加速[J]. 董廷星,李新亮,李森,迟学斌. 计算机系统应用. 2011(01)
[4]高超声速飞行器气动弹性力学研究综述[J]. 杨超,许赟,谢长川. 航空学报. 2010(01)
本文编号:3475477
本文链接:https://www.wllwen.com/kejilunwen/hangkongsky/3475477.html