陈家杰, 李会元, 张先轶
本文研究六边形区域上快速傅里叶变换(FFTH)的CUDA-MPI算法及其实现. 首先,我们通过充分利用CUDA的层次化并行机制及其库函数, 设计了FFTH的高效率的CUDA算法.对于规模为3×20482的双精度复数类型数据, 我们设计的CUDA程序与CPU串行程序相比可以达到12倍加速比, 如果不计内存和显存之间的数据传输, 则加速比可达40倍;其计算效率与 CUFFT所提供的二维方形区域 FFT程序的效率基本一致.在此基础上, 我们通过研究GPU上分布式并行数据的转置与排序算法, 优化设计了FFTH的CUDA-MPI算法.在3×81922的数据规模、10节点×6GPU的计算环境下, 我们的CUDA-MPI程序与CPU串行程序相比达到了55倍的加速; 其效率比MPI并行版FFTW以及基于CUFFT本地计算和FFTW并行转置的方形区域并行FFT 的效率都要高出很多. FFTH的CUDA-MPI算法研究和测试为大规模CPU+GPU异构计算机系统的可扩展新型算法的探索提供了参考.