基于混合异构的PCG算法及其在桥梁工程中的应用
作者单位:重庆交通大学
学位级别:硕士
导师姓名:王小松
授予年度:2024年
学科分类:081406[工学-桥梁与隧道工程] 08[工学] 0814[工学-土木工程] 082301[工学-道路与铁道工程] 0823[工学-交通运输工程]
摘 要:桥梁作为重要的交通基础设施,采用实体建模进行结构精细化分析,能更精准地反映结构的实际受力情况,更有效的评估其结构性能。但这也将面临着计算时间长和内存需求高的挑战。为适应桥梁结构精细化分析的需求,本文针对CPU与GPU混合异构的PCG算法开展研究,以实现大规模线性方程组求解的高效并行计算。本文的主要研究内容为: (1)介绍了线性方程组迭代求解的共轭梯度法(PCG)和3种不同的预处理算法。基于多个算例的刚度矩阵数据,开展不同PCG算法预处理性能的评估,最终选定基于SSOR改进的预处理法作为本文PCG算法。针对选定的PCG算法开展两种不同收敛条件下的求解性能对比研究,选定基于目标值变化量的收敛准则。对比分析不同刚度矩阵大小时PCG算法的求解性能,给出了工程问题背景下的最优松弛系数区间。 (2)介绍了大型稀疏矩阵的3种数据存储格式。考虑到PCG算法中存在的上、下三角矩阵求解,选用CSR存储格式开展刚度矩阵的存储。在阐述GPU编程基本架构及其实现流程的基础上,基于CUDA编程计算平台、使用C++语言实现了CPU+GPU混合异构的PCG算法模块HPCG。 (3)基于HPCG,针对GPU编程特性开展优化策略研究。首先,通过分配页锁内存,利用CUDA流异步并行机制,实现多数据并行传输,有效改善了异构编程中CPU与GPU数据通信受带宽限制以及数据传输过程中的启动延迟问题,实现了数据加速访问。其次,针对向量点积计算,提出一种线程束Warp级快速归约求和策略,优化后的算法相对于CPU串行方法、cublas Ddot方法以及二分归约方法,分别最高实现91.45倍、8.4倍以及1.88倍有效加速。最后,针对稀疏上三角矩阵的链式回代求解,提出基于CSC存储格式的求解方法,优化后的算法相对于CPU串行方法以及当前Sync-Free Sp TRSV方法分别最高实现4.69倍以及1.90倍有效加速。 (4)针对塔架法兰盘精细化分析模型和变截面连续梁分析模型的静力分析线性方程组,分别开展HPCG求解性能应用和对比研究。HPCG的最大求解误差为0.87%。在未知自由度为223万时,HPCG相对于CPU串行求解器可提速7.846倍,相对于6核CPU并行求解器可提速1.894倍;在未知自由度为375万时,HPCG相对于CPU串行求解器可提速7.936倍,相对于6核CPU并行求解器可提速1.985倍。在实际工程应用中,HPCG体现出较好的准确性和较大的加速性能。