论文部分内容阅读
快速傅里叶变换(Fast Fourier Transform,FFT)算法是数字信号处理、音视频分析等领域最重要的研究工具之一。龙芯3B处理器主要面向高性能计算等领域,并通过提供向量功能部件以增加其对高性能计算等应用的支持。所以,在龙芯3B处理器上实现高效的FFT算法是必不可少的。然而目前的FFT算法因未能充分利用龙芯3B处理器的向量功能部件,仍面临算法性能较低的问题。因此,在龙芯3B处理器上对FFT算法进行向量化的研究具有重要的意义。针对该问题,本文围绕如何在龙芯3B处理器上实现高效FFT算法这一主题进行展开。本文结合龙芯3B处理器的体系结构特征,采用向量化的方法对串行和并行FFT算法进行优化,最终提升FFT算法在龙芯3B处理器上的性能表现。本文的主要内容包括:1.充分利用龙芯3B处理器对向量化的支持,将串行FFT算法在龙芯3B处理器上进行优化。本文首先针对FFT算法特点分析FFT算法在纵向和横向上的向量化方案。同时对于边界的处理和分块大小进行了相关的讨论。根据边界的不同选择不同的处理方式,使得算法的计算速度达到最优。最后本文结合龙芯3B处理器的体系结构特性,提出了基32迭代的向量化FFT算法。实验结果表明,对于实验所选的测试规模(27,……,216),基32迭代的向量化FFT算法最高性能达到1341.12Mflops,是FFTW软件包的3.51倍;平均性能达到了765.15Mflops,是FFTW软件包的2.12倍。2.将串行FFT算法的向量化方案应用到并行FFT算法中。由于并行FFT算法总共包括两部分,其中第一部分各个处理器核之间不需要通讯。针对这个特点,本文对核与核之间不需要通讯的部分在龙芯3B处理器上采用向量化的方法进行优化。实验结果表明,对于实验所选的测试规模(215,……,224),双核平均加速比为1.96,最大加速比为2.11;四核平均加速比为3.72,最大加速比为3.94;八核平均加速比为5.90,最大加速比为6.25。综上所述,无论是单核还是多核,本文提出的优化方法都能够使得FFT算法在龙芯3B处理器上取得更好的性能表现。