基于Brook的GPU通用计算研究

基于Brook的GPU通用计算研究

论文摘要

近年来,图形处理器(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 为什么要使用Brook
  • 3.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-FFT
  • 4.2.2 频域抽取法DIF-FFT
  • 4.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核心代码
  • 作者简历 攻读硕士期间完成的主要工作
  • 致谢
  • 相关论文文献

    标签:;  ;  

    基于Brook的GPU通用计算研究
    下载Doc文档

    猜你喜欢