席宁
【摘要】 本文基于NVIDIA公司的CUDA平台,提出将CUDA技术的通用计算能力应用到虚拟无线电的数据处理中,提高系统的数据处理能力,通过与CPU平台作对比进行性能的分析和比较得出,通过扩展GPU板卡可以有效的提高工作站的计算能力,可以有效的减少虚拟无线电计算机集群中处理节点计算机的数量,可以减小系统体积和系统成本。
【关键词】 CUDA GPU FFT 傅里叶变换
一、试验方案的选择
考虑到试验方案要有比较高的计算密度,使CPU和GPU满负荷的工作,能更好的比较两者在满负荷最大计算能力的差别,所以在仿真实验中选择了FFT快速傅里叶变换作为一个高密度乘法和加法运算任务交给CPU和GPU做处理,并比较两者在相同乘法和加法运算量下的计算能力表现。
二、基于CUDA技术实现GPU通用计算与CPU的性能比较
GPU的CUDA技术非常适合大数据量的并行计算,通过在MATLAB仿真环境下对FFT快速傅里叶变换计算速度的比较,观察NVIDIA公司新技术CUDA对FFT算法的加速效果,发现存在的问题和作出分析。
2.1 试验方案和试验条件
在使用MATLAB仿真之前,需要安装最新的驱动程序和CUDA工具包和CUDA的SDK包。安装NVIDIA公司提供的插件Matlab_CUDA1.1后,即可在MATLAB的开发环境里调用GPU的硬件资源进行计算。
2.2 CUDA架构下程序流程
仿真程序将做二维N阶随机矩阵的FFT快速傅里叶变换,程序调用了CUFFT库中的cufftExecC2C(cufftHandle plan,cufftComplex *idata,cufftComplex *odata,int direction)基于复数的快速傅里叶变换函数实现FFT计算,不同的N将得有不同的计算速度,可以得到使用CUDA技术时的计算时间,同时与不使用CUDA的基于CPU的计算时间比较,观察CUDA对FFT的加速效果。……