没有合适的资源?快使用搜索试试~ 我知道了~
首页论文研究-基于CUDA的高速FFT计算.pdf
论文研究-基于CUDA的高速FFT计算.pdf
需积分: 0 173 浏览量
更新于2023-05-31
评论
收藏 601KB PDF 举报
针对快速傅里叶算法FFT在图形图像处理和科学计算领域的重要作用,提出了一种基于CUDA的高速FFT计算方法,在分析GPU硬件平台执行模式及FFT算法并行性特征的基础上,采用多线程并行的映射方法实现算法,并从存储层次优化算法。实验结果表明该算法的高效性,优化后的FFT加速比能达到CUFFT库加速比的26倍。
资源详情
资源评论
资源推荐

收稿日期: 2010唱09唱17; 修回日期: 2010唱11唱09 基金项目: 国家“863” 计划资助项目(2009AA01Z110) ;西北工业大学研究生创新资助项
目(09024)
作者简介: 赵丽丽(1985唱) ,女,甘肃环县人,主要研究方向为流处理器体系结构、编程模型( dubly@126.com) ;张盛兵(1968唱) ,男,教授,博士,
主要研究方向为 SoC 系统、处理器体系结构;张萌(1978唱),男,讲师,博士,主要研究方向为体系结 构、快速 建模;姚涛(1982唱) ,男,博士,主要研究
方向为体系结构、多核处理器.
基 于 CUDA 的 高 速 FFT 计 算
倡
赵丽丽, 张盛兵, 张 萌, 姚 涛
(西北工业大学 计算机学院, 西安 710072)
摘 要: 针对快速傅里叶算法 FFT 在图形图像处理和科学计算领域的重要作用,提出了一种基于 CUDA 的高速
FFT 计算方法,在分析 GPU 硬件平台执行模式及 FFT 算法并行性特征的基础上,采用多线程并行的映射方法实
现算法,并从存储层次优化算法。 实验结果表明了该算法的高效性,且优化后的 FFT 加速比能达到 CUFFT 库加
速比的 2 ~6 倍。
关键词: 图形处理器; 统一计算架构; 映射策略; 存储层次
中图分类号: TP312 文献标志码: A 文章编号: 1001唱3695(2011)04唱1556唱04
doi:10.3969 /j.issn.1001唱3695.2011.04.100
High performance FFT computation based on CUDA
ZHAO Li唱li, ZHANG Sheng唱bing, ZHANG Meng, YAO Tao
(School of Computer Science & Technology, Northwestern Polytechnical University, Xi’ an 710072, China)
Abstract: The Fourier transform is essential for many image processing and scientific computing techniques.This paper presen唱
ted an implementation to accelerate FFT computation based on CUDA.Based on the analysis of the GPU architecture and algo唱
rithm parallelism feature, brought a mapping strategy used multithread, and explored the optimization in memory hierarchy.The
results on CUDA show an improvement, the average speedup reaches 2 ~6X compared with CUFFT supplied by NVIDIA library.
Key words: GPU(graphics processor units); CUDA(compute unified device architecture); mapping strategy; memory hie唱
rarchy
0 引言
快速傅里叶变换 FFT
[1]
(fast Fourier translation)自其诞生的
四十多年时间中一直受到科学研究和工程计算的广泛应用,特
别是在量子物理、光谱分析、音/视频流信号处理、石油勘探、地
震预报、天气预报、概率论、编码理论、医学断层诊断等领域。
FFT 算法具有计算密集型和存储密集型的特点,被用做 HPC
[2]
、
NAS
[3]
的并行测试基准。 由于 FFT 的分治特点,许多新型的处
理器架构相继出现,如 Cell、Imagine 以及图形处理单元(GPU)。
Firestream 等人都在研究 FFT 算法的并行计算的实现。
微电子产业的发展使得 GPU 性能迅速提高。 GPU 通过增
加并行计算和存储器控制单元提高计算能力和存储带宽,而成
本较之多处理器的工作站则显著降低。 面对 GPU 巨大的计算
资源和较高的可编程能力,人们已经不满足将 GPU 的应用只
局限于处理图形渲染计算任务,而更加关注基于 GPU 的通用
计算 GPGPU
[4]
(general purpose GPU)。
Kenneth 等人
[5]
最早开始研究 FFT 算法在 GPU 上的实现,
采用 OpenGL 和 Cg 语言开发应用程序,实现对 GPU 中定点单
元和段单元的程序控制,但程序向硬件映射的限制较多,控制
复杂。 随着 GPU 的发展,相应的 GPU 可编程平台也得到发
展。 2007 年 NVIDIA 公司推出的统一计算平台 CUDA
[6]
,使用
CUDA 指令集(ISA)以及 GPU 内部的并行计算引擎,提出一种
在高性能图形处理单元加速应用的解决方案。 其实现的 FFT
库,即 CUFFT
[7]
库,是基于 FFTW
[8]
的移植,较之 CPU 已经能
达到很高的加速比,但还没有充分发挥 GPU 多线程执行的潜
力。 本文通过深入分析 FFT 算法的并行性特征,提出一种优
化的线程并行映射方法,充分利用算法的同址特点以及存储架
构特点,提高算法并行度,实现了对 FFT 算法的加速及优化。
1 GPU唱CPU 协同的 CUDA 编程
目前主流的 GPGPU 均采用 CPU唱GPU 异构核 协同 的架
构
[10]
。 CUDA 编 程模型 中,GPU 经 北 桥 通 过 PCI唱E 总 线 与
CPU 连接,CPU 负责逻辑性较强的事务计算,GPU 主要是以大
量线程实现面向吞吐量的数据并行计算,适合处理计算密集度
高、逻辑分支简单的大规模数据并行任务。
CUDA 编程模型中将 CPU 作为主机(host),GPU 作为协处
理器或是设备端(device)。 一个完整的 CUDA 程序包括一系
列的 host 端的串行处理步骤和 device 端的 kernel 函数并行步
骤,其运行流程如图 1 所示。 主机端负责初始化 GPU 设备、准
备数据、分配显存空间及发起 host 到 device 的数据传输,数据
通过 PCI唱E 总线从主存拷贝到显存。 设备端从显存读取数据,
进行并行计算,输出结果回存显存。 主机端再将结果数据拷贝
到主存,释放显存空间,完成一个完整的 CUDA 应用。
可编程 GPU 已发展成为一种高度并行化、多线程、多核的
第 28 卷第 4 期
2011 年 4 月
计 算 机 应 用 研 究
Application Research of Computers
Vol畅28 No畅4
Apr畅2011
















weixin_39841856
- 粉丝: 484
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0