单GPU及GPU异构集群的若干关键技术研究

单GPU及GPU异构集群的若干关键技术研究

论文摘要

现代GPU由于其超强的计算能力、高速访存带宽、高数据级并行体系结构等特点,作为高性能运算部件在集群计算环境中得到广泛应用,并且GPU异构集群正在逐渐成为高性能计算应用领域的主流分布式计算平台,并使现代计算技术正在逐渐进入数据级并行计算的时代。数据级并行计算能否在实际应用领域得到越来越广泛的采用,不仅仅取决于所设计和实现的数据级并行算法是否能够在当前的硬件计算环境中获取较高的计算能力,更为基础和重要的是所设计和实现的数据级并行算法是否能够同时在系统层面(节点与节点之间)和节点层面(单个节点内部)具有良好的和可持续的可扩展性,即它的性能能够随着计算环境中硬件资源的计算能力和内存带宽的提升而带来几乎线性的性能提升。本文在得到多个研究课题基金资助的研究背景下,对GPU异构集群的系统层面(节点与节点之间)的可扩展性,以及节点层面(单个节点内部)的可扩展性同时展开了较为全面和深入的研究。针对系统层面算法和应用程序的可扩展性问题,本文的主要研究工作如下:(1)基于底层混合编程框架(如CUDA/MPI、OpenACC/MPI)设计并实现了一个具有应用层抽象描述能力、与体系结构具有无关性、支持持续可扩展性等特点的顶层编程框架DISPAR,为GPU异构集群在应用中所面临的核心问题提供一种系统层面有效的解决方案。(2)通过预处理器ATDCM实现DISPAR源代码到底层混合编程框架(如CUDA/MPI、 OpenACC/MPI)的源代码转换,并针对底层混合编程框架提出一种能够考虑系统层面异构性的任务调度策略及相应的辅助算法以最优化系统层面的任务和GPU异构集群计算资源之间的匹配。由于更为直接的性能提升本质上来源于节点层面的应用程序,而电子设计自动化、科学计算等通用计算领域中绝大部分应用程序的性能都受限于其核心操作,如稀疏矩阵操作等。因此在节点层面针对这些核心操作,设计和实现具有可扩展性的高效数据级并行算法是能否充分利用GPU超强计算能力的关键因素。因此,本文同样针对节点层面算法和应用程序的可扩展性问题展开了较为深入的研究。主要研究工作如下:(3)GPU为了提供硬件体系结构层面的可扩展性,其所包含的成百上千个处理单元被组织和划分成多个独立的物理层面的SIMD引擎,且不同的SIMD引擎之间各处理单元之间并没有类似于单个SIMD引擎的相应同步原语。虽然可以通过原子操作提供SIMD引擎之间各处理单元之间的同步能力,但由于原子操作本质上都是串行的,从而将使得相应的并行算法不具备良好的可扩展性。本文基于可扩展性的设计理念,提出通用或特定的技术使得所设计的数据级并行算法具有良好的可扩展性。如基于桶划分预处理技术实现的奇偶合并排序和基数排序以及基于反对角线处理方式的带状矩阵向量乘操作的数据级并行算法不存在任何数据依赖,从而完全避免了同步操作和相应的原子操作,使并行算法具有良好的可扩展性。(4)由于现代GPU能够支持多个内核程序同时执行,因此对于那些即使不具有良好可扩展性的算法,也可以利用本文提出的一种有效的内核程序打包策略用于确定将哪些内核程序打包成单个内核程序能够更加充分地利用GPU的硬件资源。(5)通过对电子设计自动化领域中的时序分析这一重要应用进行可扩展性数据级并行算法的重新设计与改进,以加速电子设计自动化领域关键算法的处理速度,探索可扩展性数据级并行化技术及众核处理机技术在该领域的应用前景。本文通过对基于稀疏矩阵框架的统计静态时序分析提出一种新的稀疏格式ELLV。这种格式不仅使得相应的数据级并行算法的设计较为直接,更为重要的是使得并行算法具有良好的可扩展性。不仅如此,基于ELLV格式实现的Jacobi前条件操作与基于ELLH格式相比能够减少一半的内存访问,并最终带来15%左右的性能提升。

论文目录

  • 目录
  • 图目录
  • 表目录
  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 引言
  • 1.2 研究背景及研究现状
  • 1.2.1 流媒体处理应用领域的三大特性
  • 1.2.2 数据级并行及其主流平台GPU成为程序设计新趋势
  • 1.2.3 GPU异构集群成为分布式计算的新趋势
  • 1.3 本文的主要研究内容
  • 1.4 本文研究工作的创新点
  • 1.5 本文组织结构
  • 第2章 单GPU及GPU异构集群概述
  • 2.1 引言
  • 2.2 单GPU的软硬件体系结构及其若干关键应用领域
  • 2.2.1 GPU软硬件体系结构的演变历史
  • 2.2.2 AMD GPU体系结构及AMD OpenCL编程框架
  • 2.2.3 NVIDIA GPU硬件体系结构及其CUDA编程框架
  • 2.2.4 两种GPU的软硬件体系结构对比
  • 2.2.5 若干关键应用领域的数据级并行算法设计及实现概述
  • 2.3 GPU异构集群的软硬件体系结构
  • 2.3.1 传统集群编程框架
  • 2.3.2 GPU异构集群的系统架构
  • 2.3.3 GPU异构集群主流的底层混合编程框架
  • 第3章 数据级并行的奇偶合并和基数排序
  • 3.1 引言
  • 3.2 相关工作
  • 3.3 桶划分预处理
  • 3.4 奇偶合并排序算法及其数据级并行算法的设计与实现
  • 3.4.1 奇偶合并排序概述
  • 3.4.2 串行迭代算法直接实现为GPU内核程序时的问题
  • 3.4.3 由主机程序控制迭代过程的并行化实现
  • 3.4.4 基于桶划分预处理技术的并行化实现
  • 3.5 基数排序算法及其数据级并行算法的设计与实现
  • 3.5.1 基数排序概述
  • 3.5.2 计数排序概述
  • 3.6 实验结果与性能分析
  • 3.6.1 实验的软硬件环境概述
  • 3.6.2 奇偶合并排序
  • 3.6.3 基数排序
  • 3.7 总结与展望
  • 第4章 数据级并行的前条件和时序分析
  • 4.1 引言
  • 4.2 相关工作
  • 4.2.1 并行化稀疏矩阵乘操作
  • 4.2.2 并行化前条件操作
  • 4.2.3 并行化SSTA算法
  • 4.3 前条件和统计静态时序分析概述
  • 4.3.1 矩阵条件数和前条件技术概述
  • 4.3.2 统计静态时序分析
  • 4.4 ELLH和ELLV稀疏矩阵存储格式
  • 4.4.1 ELLH格式
  • 4.4.2 ELLV格式
  • 4.5 并行化CS操作
  • 4.6 并行化BCS操作
  • 4.7 实验结果与性能分析
  • 4.7.1 基于ELLH格式和ELLV格式的CS操作
  • 4.7.2 基于CPU和GPU的BCS操作的性能比较
  • 4.8 总结与展望
  • 第5章 数据级并行的带状矩阵向量乘操作
  • 5.1 引言
  • 5.2 相关工作
  • 5.3 带状矩阵结构及其压缩存储格式概述
  • 5.3.1 带状矩阵结构
  • 5.3.2 内存空间有效的压缩存储格式
  • 5.3.3 带状矩阵和值矩阵之间的元素映射
  • 5.4 带状矩阵向量乘操作的数据级并行化算法的设计及实现
  • 5.4.1 BpMV操作的通用描述
  • 5.4.2 基于压缩存储方案的串行BpMV算法
  • 5.4.3 基于压缩存储方案和反对角顺序的并行BpMV算法
  • 5.5 分支指令消除优化技术
  • 5.5.1 带状矩阵及其压缩存储方案讨论
  • 5.5.2 消除判定数组下标越界优化技术
  • 5.6 实验结果与性能分析
  • 5.7 总结与展望
  • 第6章 GPU异构集群的系统级任务调度
  • 6.1 引言
  • 6.2 相关工作
  • 6.2.1 GPU异构集群的系统架构设计
  • 6.2.2 GPU能够支持多个内核程序同时执行
  • 6.2.3 任务调度策略
  • 6.3 GPU异构集群的系统级模型
  • 6.3.1 系统级模型
  • 6.4 任务分类及其系统级数据结构
  • 6.4.1 任务分类
  • 6.4.2 系统级的任务及其数据结构
  • 6.5 系统级任务调度策略及相应辅助算法
  • 6.5.1 系统级任务调度策略概述
  • 6.5.2 两个评估任务调度结果的参数定义
  • 6.5.3 相应的任务打包和任务调度算法
  • 6.6 系统级任务调度实例
  • 6.6.1 GPU异构集群的实例及其节点信息
  • 6.6.2 系统级任务数据级结构及任务调度过程
  • 6.7 总结和展望
  • 第7章 DISPAR编程框架的设计及实现
  • 7.1 引言
  • 7.2 DISPAR顶层编程框架的研究背景
  • 7.3 DISPAR顶层编程框架的基本思想和设计哲学
  • 7.3.1 对程序设计和开发人员的易用性
  • 7.3.2 应用程序性能的可扩展性和可移植性
  • 7.3.3 应用程序代码的可重用性
  • 7.4 DISPAR顶层编程框架的设计及实现
  • 7.4.1 DISPAR顶层编程框架的系统模型
  • 7.4.2 DISPAR顶层编程框架的自定义基本数据结构
  • 7.4.3 DISPAR顶层编程框架工具集和相应的算法
  • 7.5 相关工作
  • 7.6 实验结果与性能分析
  • 7.6.1 所部署的GPU异构集群的节点信息
  • 7.6.2 VNODE的打包和调度过程
  • 7.6.3 VNODE的分配结果与性能分析
  • 7.7 总结与展望
  • 第8章 总结和展望
  • 8.1 总结
  • 8.2 展望
  • 参考文献
  • 致谢
  • 攻读博士期间发表(录用)论文情况
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    单GPU及GPU异构集群的若干关键技术研究
    下载Doc文档

    猜你喜欢