论文摘要
近年来,图形处理器(GPU)处理速度的增长远远超越了摩尔定律的制约,而GPU固有的并行处理特点和逐步提高的可编程能力,使得将GPU应用于通用并行计算成为了当前的研究热点。本文首先介绍了图形处理的基本原理、GPU的体系结构,阐述了当前流行的两个通用图形接口OpenGL和DirectX,总结了GPU通用并行计算的流程。直接在GPU上编程对图形硬件知识要求很高,而一些高级图形编程语言的出现很好的解决了这个问题,其中最典型的代表是BrookGPU系统。其次,本文研究了BrookGPU的设计原理、体系结构、编程环境及Brook程序的编译和运行过程。由于数据映射方式是利用Brook编程的基础,本文重点分析了Brook在GPU上的数据映射方式,并通过相关实验验证了其映射方式的有效性。再次,以FFT算法为例深入研究如何利用Brook设计基于GPU的并行算法。现有的一些FFT并行算法不符合GPU单指令多数据流、并行单元之间不能进行数据交换的特点。在深入剖析FFT算法后,提出了适合于GPU的FFT并行算法,为面向GPU通用计算的并行算法设计与实现提供了理论依据和实践指导。最后,使用BrookGPU对GPU的并行计算能力进行了测试,结果表明,对于规模较小,或需要频繁进行数据传输的问题,GPU计算效率提高并不明显;但是对于大规模、计算密集型的问题,GPU的计算效率要远远高于CPU。
论文目录
表目录图目录摘要ABSTRACT第一章 引言1.1 GPU的发展史1.1.1 GPU发展1.1.2 GPU特点1.1.3 利用GPU进行通用计算1.2 论文主要内容1.2.1 研究的背景1.2.2 研究的目的和意义1.2.3 研究的主要内容1.2.4 论文的组织第二章 相关工作2.1 图形处理体系结构2.1.1 GPU体系结构2.1.2 可编程图形流水线和可编程部件2.2 GPU编程方法研究2.2.1 OpenGL图形接口2.2.2 DirectX图形接口2.3 用GPU进行通用计算的相关研究第三章 Brook—GPU通用流语言3.1 为什么要使用Brook3.2 Brook与其它绘制语言在编程模式上的比较3.3 Brook简介3.4 Brook结构分析3.4.1 流计算模式3.4.2 Brook语言设计目标3.4.3 BrookGPU的体系架构3.5 Brook编程环境3.5.1 Brook程序中的数据结构3.5.2 Kernel函数3.5.3 归约操作(Reduction)3.5.4 分散(ScatterOp)和集合操作(GatherOp)3.5.5 Brook的语言特点3.6 Brook中数据映射的实现3.6.1 流的映射3.6.2 内核函数的映射3.6.3 归约的映射3.7 brook程序的编译和运行3.8 本章小结第四章 利用Brook在GPU上实现FFT算法4.1 离散傅利叶变换(DFT)4.1.1 DFT的定义4.1.2 直接计算DFT的特点4.1.3 减少运算量改善DFT运算效率的基本途径4.2 两类改进办法4.2.1 时域抽取法DIT-FFT4.2.2 频域抽取法DIF-FFT4.2.3 FFT在CPU上的实现4.3 并行FFT及在GPU上的实现4.3.1 对FFT算法的改进4.3.2 利用Brook实现FFT算法4.3.3 Brook编程小结4.4 测试与分析4.4.1 Brook运行环境的搭建4.4.2 测试结果及分析第五章 结束语5.1 工作总结5.2 进一步的研究工作参考文献附录1 qffi核心代码作者简历 攻读硕士期间完成的主要工作致谢
相关论文文献
标签:通用计算论文; 并行算法论文;