预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN109522127A(43)申请公布日2019.03.26(21)申请号201811378843.X(22)申请日2018.11.19(71)申请人西安交通大学地址710049陕西省西安市碑林区咸宁西路28号(72)发明人张兴军赵文强董小社李靖波雷雨鲁晨欣周剑锋伍卫国邹年俊何峰(74)专利代理机构西安通大专利代理有限责任公司61200代理人徐文权(51)Int.Cl.G06F9/50(2006.01)权利要求书1页说明书5页附图1页(54)发明名称一种基于GPU的流体机械仿真程序异构加速方法(57)摘要本发明公开了一种基于GPU的流体机械仿真程序异构加速方法,步骤包括热点分析,寻找具有加速潜力的子程序;主机设备间的数据传输的减免;内存访问的合并以及多种类型内存的利用,提升有效内存利用率以及计算访存比;代码重构暴露数据并行性,GPUkernel显式全局同步有损数据并行性,应尽力避免;串行算法的GPU适配,通过将串行算法替换为具有相同功能的并行算法;线程分配参数的调整,通过调整线程分配,使得线程计算时延被充分隐藏,提升计算吞吐;若是经过以上步骤达到理想效果,则加速完成,否则从热点分析开始新的一轮迭代直到达到满意效果。本发明提供了一种针对流体机械仿真程序特性的GPU加速方法,修改后的程序能达到理想的加速效果。CN109522127ACN109522127A权利要求书1/1页1.一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,包括以下步骤:步骤1,通过使用静态分析和动态分析结合的方式,对流体机械仿真程序进行热点分析;并对选中的热点进行初步并行化实现;步骤2,针对步骤1中初步的并行化程序,对于主机设备间数据传输密集的部分,将中间结果移植到GPU端,减小主机设备间数据传输;步骤3,针对步骤2中的程序,通过分配网格数据的内存布局,使得同一个线程束内的线程读取并更新在内存中相邻的网格数据,并根据程序特性利用共享内存、常量内存和纹理内存,充分发挥并行性;步骤4,通过代码重构暴露数据并行性;步骤5,串行算法的GPU适配;对于步骤4中的程序,如果有个别串行算法运行时间占比大并且不能在GPU端运行,求解方程时用迭代法替代消元法;步骤6,线程分配参数的调整,确定能最大化隐藏访存时延,提升计算吞吐的线程分配;步骤7,测试完成步骤1到步骤6的程序的加速效果,若是加速比符合预期,则加速完成;否则从步骤1开始新的一轮加速迭代;直到达到满意的加速效果。2.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤1中,通过对热点部分运行时间占比的收集分析,找出程序中运行时间占比大的部分,针对该部分进行并行优化,得到加速的理论上限。3.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤2中,将通过将整个多重网格放在GPU端进行加速,将中间结果全部放在GPU端。4.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤3中,通过调整数据在全局内存中的布局使得相邻的硬件线程处理内存中连续的数据,提升内存访问的有效带宽;并通过对共享内存,纹理内存,常量内存的利用,减小线程对全局内存带宽的访问压力,提升加速比。5.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤4中,对于移植为并行版本后,会产生数据竞争的部分,通过计算方式、计算次序的调整避免数据竞争;对于无法通过上述方式避免的部分,应该通过终止当前GPU内核,启动新GPU内核的方式引入全局同步。6.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤5中,对于程序中不可并行的串行算法,用具有相同功能且具有数据并行性的的算法替换,将并行算法实现在GPU上。7.根据权利要求1所述的一种基于GPU的流体机械仿真程序异构加速方法,其特征在于,步骤6中,在上述步骤完成后,通过反复的实验,找出合适的线程网格、线程块分配参数,确定出该程序和硬件的最佳匹配。2CN109522127A说明书1/5页一种基于GPU的流体机械仿真程序异构加速方法技术领域[0001]本发明属于流体力学和高性能计算交叉领域,特别涉及一种基于GPU的流体机械仿真程序异构加速方法。背景技术[0002]计算流体力学是流体力学领域的重要技术之一,通过使用数值方法在计算机中对流体力学的控制方程进行求解,从而可预测流场的流动。随着计算机计算能力的提升,可以构建越来越精细的流体力学模型。同时,为了更精确的计算流体力学的流场变化,使流场运动更加“真实”,流体力学模型也日益精细,这对计算能力也提出了更高的要求。[0003]随着单核芯片晶体管密度和频