一种基于GPU的流体机械仿真程序异构加速方法技术

技术编号:20680309 阅读:35 留言:0更新日期:2019-03-27 18:40
本发明专利技术公开了一种基于GPU的流体机械仿真程序异构加速方法,步骤包括热点分析,寻找具有加速潜力的子程序;主机设备间的数据传输的减免;内存访问的合并以及多种类型内存的利用,提升有效内存利用率以及计算访存比;代码重构暴露数据并行性,GPU kernel显式全局同步有损数据并行性,应尽力避免;串行算法的GPU适配,通过将串行算法替换为具有相同功能的并行算法;线程分配参数的调整,通过调整线程分配,使得线程计算时延被充分隐藏,提升计算吞吐;若是经过以上步骤达到理想效果,则加速完成,否则从热点分析开始新的一轮迭代直到达到满意效果。本发明专利技术提供了一种针对流体机械仿真程序特性的GPU加速方法,修改后的程序能达到理想的加速效果。

【技术实现步骤摘要】
一种基于GPU的流体机械仿真程序异构加速方法
本专利技术属于流体力学和高性能计算交叉领域,特别涉及一种基于GPU的流体机械仿真程序异构加速方法。
技术介绍
计算流体力学是流体力学领域的重要技术之一,通过使用数值方法在计算机中对流体力学的控制方程进行求解,从而可预测流场的流动。随着计算机计算能力的提升,可以构建越来越精细的流体力学模型。同时,为了更精确的计算流体力学的流场变化,使流场运动更加“真实”,流体力学模型也日益精细,这对计算能力也提出了更高的要求。随着单核芯片晶体管密度和频率到达瓶颈,多核成为如今提升计算能力的主要方式。NVIDIA,AMD,Intel等公司也提出一系列用于处理密集计算的专用硬件,其中英伟达的GPU在性能和能耗方面都有着优秀的表现。传统的流体机械程序面向CPU架构优化,而随着异构计算的兴起,协处理器架构和CPU架构的差异越来越大,传统的流体机械仿真程序的编写方式与优化方案都不能再直接与新的硬件架构适配。不论是针对新的硬件平台编写流体机械仿真程序,还是将现有的面向CPU的流体机械仿真程序针对GPU进行移植,都需要新的指导方案。在流体机械仿真程序显式求解器中,大多以本文档来自技高网...

【技术保护点】
1.一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,包括以下步骤:步骤1,通过使用静态分析和动态分析结合的方式,对流体机械仿真程序进行热点分析;并对选中的热点进行初步并行化实现;步骤2,针对步骤1中初步的并行化程序,对于主机设备间数据传输密集的部分,将中间结果移植到GPU端,减小主机设备间数据传输;步骤3,针对步骤2中的程序,通过分配网格数据的内存布局,使得同一个线程束内的线程读取并更新在内存中相邻的网格数据,并根据程序特性利用共享内存、常量内存和纹理内存,充分发挥并行性;步骤4,通过代码重构暴露数据并行性;步骤5,串行算法的GPU适配;对于步骤4中的程序,如果有个别串行算法运行时间...

【技术特征摘要】
1.一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,包括以下步骤:步骤1,通过使用静态分析和动态分析结合的方式,对流体机械仿真程序进行热点分析;并对选中的热点进行初步并行化实现;步骤2,针对步骤1中初步的并行化程序,对于主机设备间数据传输密集的部分,将中间结果移植到GPU端,减小主机设备间数据传输;步骤3,针对步骤2中的程序,通过分配网格数据的内存布局,使得同一个线程束内的线程读取并更新在内存中相邻的网格数据,并根据程序特性利用共享内存、常量内存和纹理内存,充分发挥并行性;步骤4,通过代码重构暴露数据并行性;步骤5,串行算法的GPU适配;对于步骤4中的程序,如果有个别串行算法运行时间占比大并且不能在GPU端运行,求解方程时用迭代法替代消元法;步骤6,线程分配参数的调整,确定能最大化隐藏访存时延,提升计算吞吐的线程分配;步骤7,测试完成步骤1到步骤6的程序的加速效果,若是加速比符合预期,则加速完成;否则从步骤1开始新的一轮加速迭代;直到达到满意的加速效果。2.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤1中,通过对热点部分运行时间占比的收集分析,找出程序中运行时间占比大的部分,针对该部分进行并行优化,得到加速的理论上限。3.根...

【专利技术属性】
技术研发人员:张兴军赵文强董小社李靖波雷雨鲁晨欣周剑锋伍卫国邹年俊何峰
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

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

1