相关资料:
基于CPU-GPU 异构机群的FDTD 并行算法加速研究(一)
基于CPU-GPU 异构机群的FDTD 并行算法加速研究(二)
3 测试结果与分析
实验平台包括 HD5870 GPU、Tesla C2050 GPU 和IntelXeon X5650 处理器机群,其主要的处理器体系结构参数如表3 所示。实验中所使用的数据集与第二节分析程序中的数据一致,如表1 所示。
为了实验的对比分析,我们实现了4 个版本的FDTD程序:CPU 上执行的FDTD-serial 串行程序、多核CPU 上执行的FDTD-MPI 并行程序、ATI GPU 上执行的FDTDOpenCL加速程序和NVIDIA GPU 上执行的FDTD-CUDA加速程序。目前而言,单计算可以满足所测试FDTD实验场景的需求,所以不开启OpenCL 的双浮点运算支持。评价总体性能的标准为GPU 版相对CPU 版的加速比,计算公式为CPU 执行时间/GPU 执行时间。
3.1 GPU 加速分析
图 7 显示FDTD 在SMALL 数据集下,在1 个CPU 核、4 个CPU 核、8 个CPU 核、Tesla C2050 GPU 和HD5870 GPU下计算时间对比。多CPU 核使用MPI 调度数据,GPU 加速代码为OpenCL.由图可见,在SMALL 数据集下,使用HD5870,OpenCL 加速相对CPU 加速比可达到8.11,且性能比8 个CPU 的MPI 加速性能还要好。
图8 显示的是SMALL 数据集下各个GPU 优化的函数和CPU 版程序中对应函数的执行时间对比,单位为ms.图8 的数据表明,update_H_PML 和SAR_EH_CPX 的计算密度较高,加速比也较大,达到了40 多倍加速。
3.2 扩展性分析
3.2.1 数据规模的扩展性能
我们在 Nvidia Tesla C2050 GPU 集群上对MEDIUM 和LARGE 数据集进行了测试,两个数据集的计算时间相对CPU 的计算时间加速比如图9 所示。
由图 9 可见,对于MEDIUM 数据集,CUDA 的实现则获得21.41 倍的加速。从NVIDIA Fermi 卡上的OpenCL和CUDA 性能接近来推断:如果扩大实验中所使用AMDGPU 内存使得可以运行同样大的问题规模,AMD GPU 上的OpenCL 程序也能获得更高的加速比。
图10 显示对MEDIUM 数据集几个内核函数在上述环境下相对单CPU 函数运行时间的加速比,在一个GPU 卡上运行,OpenCL 与CUDA 性能相差不多,对于计算密度较高的SAR_EH_CPX Kernel 函数,OpenCL 相对CUDA执行性能更高。
3.2.2 多GPU 的扩展性能
对 270*140*830 的LARGE 数据集,单GPU 无法运行,实现的FDTD 的MPI+CUDA 版代码,通过MPI 划分、调度数据,使用多个GPU 核实现FDTD 的加速。图9 和10分别展示了在4 个GPU 核以及8 个GPU 核上,整体运行时间和函数相对CPU 的加速比。
综上所述,当问题规模较小时,SIMD 单元性能没有得到充分发挥,而数据集的增大使得并发的线程数进一步增加,对掩盖访存延迟,提高整体效率有利。因此,对于未来性能更高的硬件平台、更大的数 据集,在GPU 上进行并行计算的优势还可进一步扩大。对于FDTD 这样的具有高强度计算量并且计算数据流只有有限的或没有数据相关性的高性能的计算系统,GPU 的使用具有较好的前途。在通常情况下,如果模型空间非常大以至于导致流处理器总是处于忙碌状态,那么GPU 程序也比CPU 程序快几倍。
如果FDTD模型空间足够大,就可以更好地发挥GPU效能。
4 相关工作
近年来,由于GPU 在浮点密集型应用上加速优势,针对FDTD 的GPU 移植和优化也开展了相应的研究。邵桢等人GeForce 7 系列图形卡上用OpenGL 编程环境对FDTD实现了GPU 并行程序,相对Intel P4 处理器获得了12 倍左右的加速。GPGPU 技术的发展使得GPU 体系结构和编程环境都发生重大的变革,如单指令多线程(SIMT)和CUDA编程导致算法的优化和实现有很大的变化,本论文工作重点研究了结合新一代 NVIDIA GPGPU 体系结构的特点如共享存储器和线程分组重新设计了并行FDTD 算法,包括优化全局存储访问的并行规约算法。基于CUDA 结构,杜刘革等和胡媛等先后对FDTD 进行了加速研究,并相对当时的CPU 获得了约20-70 倍不等的加速效果,但这些工作都是基于G80 和GT200 上一代GPU 结构上开展的。本研究工作在新的Fermi 架构上做了进一步优化,相对目前主流CPU 对一下函数获得了超过100 倍的加速比。改算法也成功并扩展到了OpenCL编程模型和ATI GPGPU结构上,此外,本文描述了和体系结构相关的优化系统如存储器优化、寄存器选择和线程映射等。相对以前的其他工作,本研究不仅仅关注基于GPU 结构的FDTD 算法的优化,还实现了基于CPU-GPU 异构机群的大规模并行FDTD 程序,基于MPI+CUDA 的实现证明FDTD 并行程序能够适应目前流行的异构超级计算机系统。总之,本研究首次对FDTD 并行程序优化涵盖了CUDA、OpenCL 和MPI主流高性能计算编程模型,并在NVIDIA 和ATI 的主流的GPU 进行了实践,在GPU 机群系统上进行了全面的实验对比。
5 结论
本文研究了时域有限差分方法 FDTD 在主流NVIDIA和ATI GPU上加速计算,在异构集群上实现了MPI+CUDA/OpenCL 的并行程序,加速的并行FDTD 程序相对CPU 串行程序和8 个CPU 核的MPI 并行程序,分别获得了超过8倍和1.5 倍的加速,并在多个GPU 卡上获得了接近线性加速的扩展性能。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。