论文部分内容阅读
在等离子体数值模拟中,通过椭圆型偏微分方程求解电磁场是不可或缺的一步。随着模拟规模的不断扩大,计算时间也越来越长。因此在求解方程的算法上进行并行加速研究以减少方程的运算时间,提高等离子体模拟的效率是很有意义的。因此本文进行了多种算法的基于GPU并行加速的研究。绪论部分重点介绍了GPU发展以及CUDA(Computer Unified Device Architecture)的形成。第二章为雅克比迭代算法的GPU并行加速。本文基于雅克比迭代的算法分析、线程分配和存储器选择,提出了一种GPU加速模型。即采用循环体内BOOL值判断的方式消除迭代算法中的数据复制语句ST2,减少了循环体内设备与主机之间线程的切换与计算权利的传递,并且减少了及内存的访问量,从而缩短了运算时间。另外采用纹理存储器存储设备上的数据,减少了数据复用现象,进而减少了GPU的数据读入时间。利用该模型对二维拉普拉斯方程进行了求解,最终结果显示GTX570的最高加速比能达到24倍以上,加速比效率可以达到50%以上。 GT430最高加速比能达到3倍左右,最高加速比效率可以达到60%以上。由GPU的计算精度与串行计算精度的比较可以发现,GPU+CPU的异构模式更加适合进行大规模高精度运算,在没有达到峰值运算能力时,运算规模越大往往加速比越高。为了进一步在算法上提高计算效率,本文引入了DRM(Dimension Reduction Method)和FACR(L)(Fourier analysis-cyclic reduction)两种非迭代型综合算法,并且提出了这两种算法的一种基础性GPU加速方法。首先通过修改FACR(L)算法的计算步骤,调整该算法中FFT算法与循环约化算法运行时间的比例,使运算时间集中于FFT部分。然后采用CUFFT库对计算量较大的FFT部分进行了加速,通过多种方法减少数值与设备间的数据传输,最终达到了提高计算效率的目的。另外本文采用多个实例对DRM与FACR(L)算法的并行加速程序进行了验证比较,测试了不同类型的GPU加速性能。通过对直角坐标系下的拉普拉斯方程、直角坐标系下赫姆霍兹方程、柱坐标系下泊松方程以及柱坐标系下赫姆霍兹方程的求解,得到了在保证计算精度的前提下,GTX570最大加速比为3.8,最大加速比效率为15%的结果;而相应的GT430最大加速比为1.8,最大加速比效率为60%。随着网格数的增加整个程序的加速比在增加,但是由于显存容量的限制,仅得到了一定程度上的加速,与理论值差距较大。