C到CUDA编译架构研究与实现

C到CUDA编译架构研究与实现

论文摘要

近年来,GPU(Graphics Processing Unit,图形处理单元)已被成功地应用于生物医学、金融分析、物理模拟、数据库处理等高性能计算应用,大大扩展了GPU的应用领域。人们也将这类用于图形渲染以外领域的GPU称为GPGPU(General-purpose computation on GPU)。GPU结构的复杂性大大超出了现有的多核处理器,这使得人们很难有效利用其众多的计算资源。以NVIDIA公司推出的CUDA(Compute Unified Device Architecture,统一计算设备架构)为代表的面向GPU的编程模型在一定程度了解决了这一问题。与已有的编程模型相比,CUDA做出了两点改进:一是采用了统一处理架构,二是引入了片内共享存储器,使得其更加适合GPGPU体系结构。然而,由于CUDA模型中采用的多级线程结构以及多级存储结构,程序员必须深入理解并掌握CUDA的结构与特点才有可能开发出高度并行的应用,这无疑增加了程序员的负担。本文提出并实现一种能够减轻程序员负担的源到源编译框架,它不仅能够以较高的自动化程度生成能够在CPU+GPU混合结构上运行的代码,还可以完成一定的优化,提高代码的并行度。本文的研究工作和成果有:1.提出并实现了一个面向CUDA模型的编译框架ICuda该框架能够自动地将串行C代码直接转换为CUDA C代码,实现已有C程序向GPU平台的自动迁移。ICuda能够将程序员从GPU和CUDA的结构细节中解放出来,提高编写高性能并行程序的工作效率。与大多现有框架只适用于以行列式或矩阵计算为主的应用程序相比,ICuda架构则能够面向通用应用程序。2.提出了循环结构并行化代码调度方法将串行代码中的循环结构进行并行化处理,程序的数据结构以及代码结构需要进行一定的变换,以适应面向GPU结构的编程模型,充分发挥GPU结构的性能优势。针对上述问题,本文提出了数据下标变换、共享变量分布式访问两种面向循环结构的并行化代码调度方法。前者用于代码并行化之前,变多重循环结构为单重循环结构,简化循环索引变量;后者用于代码并行化之时,变共享变量的集中式访问为分布式访问,减小线程访存开销。3.提出了一种面向CUDA存储模型的访存优化方法CUDA编程模型提出以来,针对全局存储器空间的结合式访存优化方法就一直是研究的重点。本文充分利用CUDA存储模型提供的多级存储架构,规避这种复杂的针对全局存储器访问的优化,提出了以纹理存储器为主、共享存储器与寄存器为辅的存储布局优化策略,以简单、高效的方法实现CUDA存储模型的访问优化。本文基于SUIF2平台实现了ICuda编译框架,并针对Parboil基准程序包进行了详细的性能测试与分析。实验结果验证了本文所提出的优化方法与ICuda框架的有效性。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪论
  • 1.1 研究背景与意义
  • 1.1.1 多核/众核体系结构的发展
  • 1.1.2 GPU 及编程模型的发展
  • 1.2 CUDA 的研究现状
  • 1.3 本文的主要工作
  • 1.3.1 循环结构并行化代码调度方法
  • 1.3.2 面向CUDA 存储模型的访存优化方法
  • 1.3.3 C 到CUDA 并行化编译架构
  • 1.4 本文的组织结构
  • 第二章 面向CUDA 的SUIF2 中间表示扩展
  • 2.1 CUDA 的基本架构
  • 2.1.1 CUDA 线程层次
  • 2.1.2 CUDA 存储层次
  • 2.1.3 CUDA 执行模型
  • 2.2 SUIF2
  • 2.2.1 SUIF2 的基本架构
  • 2.2.2 SUIF2 的关键特征
  • 2.2.3 SUIF2 修改方法
  • 2.2.4 SUIF2 的中间表示
  • 2.3 SUIF2 的CUDA 中间表示
  • 2.4 小结
  • 第三章 ICuda 编译框架
  • 3.1 相关研究工作
  • 3.2 ICuda 框架
  • 3.2.1 ICuda 核心架构
  • 3.2.2 设计原则
  • 3.3 小结
  • 第四章 代码变换和优化
  • 4.1 数据下标变换方法
  • 4.1.1 循环结构到多线程的映射
  • 4.1.2 数据下标变换方法
  • 4.2 共享变量分布式访问
  • 4.2.1 循环结构数据依赖分析
  • 4.2.2 共享变量优化
  • 4.3 CUDA 的访存优化
  • 4.3.1 经典访存优化方法
  • 4.3.2 基于纹理空间的访存策略
  • 4.3.3 基于数据分类技术的存储布局优化
  • 4.4 小结
  • 第五章 性能测试与分析
  • 5.1 实验平台与测试程序
  • 5.1.1 实验平台
  • 5.1.2 测试程序集
  • 5.2 实验结果及分析
  • 5.2.1 循环结构并行化代码调度方法的效果
  • 5.2.2 CUDA 访存优化的效果
  • 5.2.3 ICuda 的测试
  • 5.3 小结
  • 第六章 结论与展望
  • 6.1 全文总结
  • 6.2 研究展望
  • 致谢
  • 参考文献
  • 作者在学期间取得的学术成果
  • 相关论文文献

    • [1].2019中国医师协会泌尿外科医师分会(CUDA)年会在济南成功召开[J]. 泌尿外科杂志(电子版) 2019(02)
    • [2].基于CUDA的拉普拉斯金字塔的优化[J]. 微型机与应用 2016(10)
    • [3].基于CUDA的三维数据场可视化加速技术研究[J]. 电子技术与软件工程 2015(12)
    • [4].直方图均衡化结合中值滤波的CUDA并行化实现[J]. 计算机与数字工程 2020(05)
    • [5].航天器着陆碰撞动力学CUDA并行计算技术[J]. 航天器工程 2014(01)
    • [6].基于CUDA的各向异性热传导模型的图像修复[J]. 计算机应用研究 2014(06)
    • [7].基于CUDA的图像快速并行细化算法的研究与实现[J]. 电子测量技术 2014(08)
    • [8].CUDA技术及其在数字图像拼接中的应用[J]. 微型机与应用 2013(02)
    • [9].基于八叉树编码的CUDA光线投射算法[J]. 西北大学学报(自然科学版) 2012(01)
    • [10].基于CUDA的图像轮廓提取并行实现[J]. 现代计算机(专业版) 2012(09)
    • [11].基于CUDA的图形处理器FDTD算法仿真研究[J]. 系统仿真学报 2011(04)
    • [12].利用CUDA加速连续波雷达测速算法[J]. 现代电子技术 2011(23)
    • [13].快速不变矩算法基于CUDA的并行实现[J]. 计算机应用 2010(07)
    • [14].基于CUDA的生物序列数据算术编码并行压缩[J]. 计算机应用与软件 2016(12)
    • [15].一种基于CUDA的快速宽视频拼接的方法[J]. 计算机技术与发展 2015(01)
    • [16].基于CUDA和深度置信网络的手写字符识别[J]. 华东理工大学学报(自然科学版) 2015(02)
    • [17].基于CUDA加速的X射线安检机图像处理算法研究[J]. 机电一体化 2015(08)
    • [18].基于CUDA粒子系统的烟花仿真[J]. 计算机应用 2013(07)
    • [19].基于CUDA的矩阵乘法的并行实现[J]. 信息通信 2012(02)
    • [20].地震叠前深度偏移在CUDA平台上的实现[J]. 勘探地球物理进展 2008(06)
    • [21].高斯混合模型盲信号分离方法的CUDA实现[J]. 自动化与信息工程 2013(01)
    • [22].平面单应性矩阵求解的CUDA并行实现[J]. 微型机与应用 2012(23)
    • [23].基于CUDA架构矩阵乘法的研究[J]. 微型机与应用 2011(24)
    • [24].CUDA环境下地形因子的并行计算[J]. 北京测绘 2017(04)
    • [25].CUDA技术在视频压缩中的应用[J]. 硅谷 2009(17)
    • [26].基于CUDA的高速并行均值滤波算法[J]. 咸阳师范学院学报 2013(04)
    • [27].基于CUDA的泥石流模拟计算研究[J]. 计算机工程与设计 2011(12)
    • [28].基于CUDA平台的遗传算法并行实现研究[J]. 计算机工程与科学 2009(S1)
    • [29].基于CUDA快速体数据梯度计算的实时体绘制研究[J]. 兰州交通大学学报 2014(03)
    • [30].基于CUDA的彩色超声血流成像[J]. 计算机应用 2011(03)

    标签:;  ;  

    C到CUDA编译架构研究与实现
    下载Doc文档

    猜你喜欢