FFT-GPU-Accel
Fast Fourier Transform Acceleration Algorithm. (Accelerated by CUDA)
简要介绍
基于FFT的蝶形公式,利用GPU的多核心优势,结合蝶形公式算法中同一层级的运算因子互不干扰的特点,对算法进行了并行化优化处理,加速效果十分显着。
在同一测试机器上,速度能达到Matlab(R2017b)的数十倍。
核心算法
基于快速傅里叶变换的蝶形公式,对于N元待转换信号,蝶形公式为logN层级的子运算,每层的子运算中,运算因子在同层中互不干扰,因此只要利用好CUDA的__syncthreads()函数,在此基础上便可进一步利用GPU的单个线程来纵向处理每一个运算因子。
优化处理
注意到蝶形公式中的旋转因子Wn^k大量重复出现,因此必须要对旋转因子做好预处理工作。由于预处理数据是静态的,故可考虑将其放入纹理单元以加
2022-05-25 22:22:20
242KB
C++
1