学位论文 > 优秀研究生学位论文题录展示

面向众核GPU的编程模型及编译优化关键技术研究

作 者: 甘新标
导 师: 王志英
学 校: 国防科学技术大学
专 业: 计算机科学与技术
关键词: 众核GPU 编程模型 计算粒度 存储优化 负载均衡计算协作框架 编译优化
分类号: TP314
类 型: 博士论文
年 份: 2012年
下 载: 109次
引 用: 0次
阅 读: 论文下载
 

内容摘要


GPGPU(General Purpose computing on Graphics Processing Units)已广泛应用于高性能计算领域,但是GPU体系结构和编程模型不同于传统的CPU体系结构和编程模式,开发高效的GPU应用程序仍然极具挑战性。本文重点围绕面向众核GPU的编程模型及编译优化关键技术进行了研究,集中解决了众核GPU编程模型及编译优化中的若干关键理论与技术问题,取得的主要研究成果和技术创新如下:1.提出了一种众线程并行编程模型。多核、众核时代的到来使得并行编程模型研究正处于蓬勃发展的阶段。然而,到目前为止,仍然没有一个被普遍接受的多核、众核并行编程模型。本文基于流并行编程思想,综合考虑典型并行编程模型的优缺点,首次提出了一种众线程编程模型ab-Stream。ab-Stream编程模型能够很好地屏蔽众核体系结构差异并且给程序员提供了一个易于并行、易于编程、易于扩展和易于调优的并行编程模型。2.提出了面向GPGPU应用映射的多层次计算粒度并行方法。GPU拥有成百上千个计算核,如何划分并行任务确定并行计算粒度以最大限度挖掘GPU强大的并行计算能力是一项艰巨且富有挑战性的工作。因此,本文以GPGPU应用程序输入集特征为导向,面向链式依赖关系输入集提出了一种面向链式依赖结构的片段级松弛并行方法。同时,面向2D数据结构输入集提出了一种像素级映射并行方法。实验结果表明,本文提出的两种不同计算粒度的并行方法能够充分挖掘GPGPU应用潜在的并行性,并且具有简明直接、实现简单的特点。3.提出了基于数据分类的存储传输优化技术。GPGPU体系结构是一款存储受限的高性能处理器体系结构。为有效利用GPGPU体系结构中多样化存储资源,首先提出了一种基于分类存储的数据布局优化技术,该布局优化方法将不同类别的数据显式地分派到能够充分利用数据特性的存储器空间以最大化存储访问效率。然后,针对Strided data数据结构提出了一种基于预变换技术的Strided data数据传输优化技术。实验结果表明,本文提出的基于数据分类的存储传输优化技术能够显著提升GPGPU应用程序性能。4.提出了一种面向计算密集型应用的负载均衡计算协作框架。CPU+GPU异构计算系统经常会在很长一段时间内处于超载和轻载的状态,为了充分利用GPU+CPU异构系统的计算资源,该计算协作框架让CPU和GPU以流水模式并行执行,同时,将GPU提升为数据消费者或部分数据的生产者,并且将零加载和缓存加载等优化技术整合到负载均衡计算协作框架中,以提升整个协作框架的性能。实验结果表明,本文提出的负载均衡计算协作框架能够显著提高GPU+CPU异构系统的计算资源利用率。为了验证ab-Stream编程模型及其关键支撑技术的可行性和有效性,本文基于ab-Stream编程框架设计实现了一款原型系统ab-Stream4G,其中包含了面向众线程体系结构的应用映射方法、众线程体系结构存储优化技术和众线程异构系统负载均衡策略等关键支撑技术。实验结果表明原型系统ab-Stream4G能够正确高效的运行。

全文目录


摘要  12-14
Abstract  14-16
第一章 绪论  16-38
  1.1 研究背景  16-21
    1.1.1 多(众)核处理器的发展趋势  16-18
    1.1.2 GPU 在通用计算领域中的应用和发展  18-21
    1.1.3 课题来源  21
  1.2 课题动机  21-26
    1.2.1 GPGPU 为高性能计算领域带来的机遇  21-24
    1.2.2 GPGPU 在高性能计算领域中面临的挑战  24-26
  1.3 国内外相关研究工作  26-34
    1.3.1 多(众)核体系结构设计探索  26-30
    1.3.2 GPGPU 应用映射及性能优化技术研究  30-31
    1.3.3 GPU 编程语言及编译技术研究  31-34
  1.4 研究内容  34-38
    1.4.1 主要工作及技术创新  34-35
    1.4.2 论文结构  35-38
第二章 GPGPU 体系结构及开发平台  38-56
  2.1 图形处理器发展历程  38-39
  2.2 基于 GPU 的通用计算技术研究  39-42
    2.2.1 基于可编程 GPU 的 GPGPU 应用研究  39-41
    2.2.2 基于统一架构 GPU 的 GPGPU 应用研究  41-42
  2.3 统一架构 GPU 体系结构  42-48
    2.3.1 NVIDIA 统一架构 GPU 体系结构  42-45
    2.3.2 AMD 统一架构 GPU 体系结构  45-47
    2.3.3 Intel 统一架构 GPU 体系结构  47-48
  2.4 GPGPU 开发平台  48-55
    2.4.1 CUDA  48-51
    2.4.2 AMD Stream SDK  51-52
    2.4.3 OpenCL  52-55
  2.5 小结  55-56
第三章 面向 GPU 的众线程编程模型  56-68
  3.1 面向多核(众核)架构的编程模型及编译技术研究  56-59
    3.1.1 基于 MPI 的并行编程模型  57
    3.1.2 基于 OpenMP/OpenTM 的并行编程模型  57-58
    3.1.3 基于 UPC 的并行编程模型  58
    3.1.4 基于流的并行编程模型  58-59
  3.2 ab-Stream 众线程体系结构及编程模型  59-62
    3.2.1 众线程体系结构  59-60
    3.2.2 ab-Stream 众线程编程模型  60-62
  3.3 ab-Stream 编程模型支撑技术  62-67
    3.3.1 ab-Stream 编程语言扩展  62-64
    3.3.2 面向众线程体系结构的应用映射方法  64-65
    3.3.3 众线程体系结构存储优化技术  65-66
    3.3.4 众线程异构系统负载均衡策略  66-67
  3.4 小结  67-68
第四章 GPGPU 应用映射计算粒度并行方法  68-88
  4.1 并行计算粒度概述  68-69
  4.2 基于 CUDA 的片段级并行  69-72
    4.2.1 片段级并行应用映射方法研究  69-70
    4.2.2 面向链式依赖结构的片段级并行松弛模型  70-72
  4.3 面向众线程 GPU 的像素级并行  72-75
    4.3.1 像素级并行研究  73
    4.3.2 面向 2D 数据结构的像素级映射  73-75
  4.4 基于 Fermi 架构的任务级并行  75-77
    4.4.1 任务级并行方法研究  75-76
    4.4.2 基于 Fermi 架构的任务级并行映射策略  76-77
  4.5 实验测试与分析  77-86
    4.5.1 面向链式依赖结构的片段级并行松弛模型验证与分析  77-81
    4.5.2 面向众线程 GPU 的像素级并行实验测试  81-84
    4.5.3 基于 Fermi 架构的任务级并行实验测试  84-86
    4.5.4 三种计算粒度的比较分析  86
  4.6 小结  86-88
第五章 基于 CUDA 存储层次的优化技术  88-108
  5.1 CUDA 存储结构  88-90
  5.2 面向 CUDA 的存储布局优化技术  90-94
    5.2.1 基于 CUDA 存储结构的存储优化技术概述  90-91
    5.2.2 基于分类方法的存储布局优化  91-94
  5.3 面向 Strided data 的传输优化技术  94-101
    5.3.1 Strided data 数据结构  94-95
    5.3.2 CUDA 数据传输模型  95-96
    5.3.3 面向 Strided data 数据结构的传输优化  96-101
  5.4 实验测试与分析  101-106
    5.4.1 面向 CUDA 存储结构的数据分类存储实验测试与分析  101-103
    5.4.2 Strided data 数据传输优化实验验证与分析  103-106
  5.5 小结  106-108
第六章 GPGPU 负载均衡计算协作框架  108-122
  6.1 异构系统中的负载均衡策略研究  108-109
  6.2 面向计算密集型应用的计算协作优化框架  109-117
    6.2.1 GPU+CPU 异构系统负载分析  110
    6.2.2 GPU+CPU 异构系统中的流水并行负载均衡策略  110-111
    6.2.3 GPU+CPU 负载均衡计算框架  111-116
    6.2.4 零加载与缓存加载优化技术  116-117
  6.3 实验测试与分析  117-121
  6.4 小结  121-122
第七章 ab-Stream 原型系统的设计与实现  122-136
  7.1 SUIF2 编译系统简介  122-127
    7.1.1 Hoof 编程简介  124-125
    7.1.2 Pass 编程简介  125-127
  7.2 ab-Stream 众线程原型系统实现  127-131
    7.2.1 ab-Stream 节点扩展  127-128
    7.2.2 功能优化模块扩展  128-130
    7.2.3 编译器后端扩展  130-131
  7.3 ab-Stream 原型系统功能验证与性能评估  131-135
    7.3.1 实验环境  131-132
    7.3.2 实验测试与分析  132-135
  7.4 小结  135-136
第八章 结论与展望  136-140
  8.1 工作总结  136-137
  8.2 研究展望  137-140
致谢  140-142
参考文献  142-152
作者在学期间取得的学术成果  152-154
作者在学期间参与的科研课题  154

相似论文

  1. 自适应混合高斯背景建模算法的GPU并行优化研究,TP391.41
  2. 高速网络环境下的入侵检测系统的研究,TP393.08
  3. 高性能计算体系结构下的海量数据处理分析与优化,TP338
  4. 面向程序访存特征的存储优化技术研究,TP333
  5. C到CUDA编译架构研究与实现,TP391.41
  6. 云计算中MapReduce性能优化及应用,TP3
  7. CUDA在高性能计算中的应用,TP391.41
  8. 嵌入式MSDCC异构多核编译器研究,TP314
  9. SIMD数据置换指令的自动生成与优化,TP332
  10. 基于分布式计算的密码恢复系统研究,TN918.1
  11. 面向MPI程序的进程数据相似性分析与优化技术,TP311.11
  12. 出具证明编译器中两项重要课题的研究,TP314
  13. 基于标准托盘管理的第三方物流存储系统优化,F224
  14. 基于多维关联规则的粒度支持向量机学习方法研究,TP181
  15. 无线传感器网络中编译优化工具的研究及实现,TN929.5
  16. 可重构片上系统过程级软硬件协同设计编程模型研究,TN47
  17. 空间辐射环境下提高程序容错能力的技术研究,TP302.8
  18. 基于NoC的分布式多核系统编程模型实现,TN47
  19. 机器翻译自动评价计算粒度研究,TP391.2
  20. 基于本体的MPI+OpenMP并行检索研究与应用,TP391.3
  21. 基于IMPACT的嵌入式汇编及编译指示的研究与实现,TP368.1

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 编译程序、解释程序
© 2012 www.xueweilunwen.com