异构平台上流水线程序优化技术研究
发布时间:2021-08-09 21:55
以GPU为加速器的异构系统是高性能程序重要的运行平台,GPU编程模型可以为数据并行的程序提供很好的支持,但缺乏对流水线编程的良好支持。流水线编程模式可以用来简化程序编写,更好地利用多部件、多设备平台的计算优势,挖掘更多维度的并行,因此其应用领域十分广泛。在GPU异构系统上,通过挖掘流水线程序不同任务阶段之间的并行性(即任务并行),可以使程序更好地利用硬件的计算能力。然而,当前的GPU编程模型对于流水线并行的支持不足,使得开发高性能的流水线程序非常困难。首先,当前GPU编程模型缺乏对任务并行模式的良好支持,已有的任务并行相关研究方法会带来GPU计算资源利用率低、程序并行度降低等问题。同时,目前缺乏对于CPU-GPU系统上跨设备流水线优化的研究,当前的编程模型难以支持跨设备的流水线式的数据传输。围绕这些问题,本文从计算、通信和编程等三个方面研究了异构系统上流水线程序性能优化问题,并提出了一系列的解决方案。本文主要研究内容及贡献如下:(1)系统性地分析总结了已有的GPU上流水线执行模型的性能瓶颈,在已有的时间维度任务调度的基础上,提出了空间维度上的流水线任务调度方法,并提出了两种新的流水线任...
【文章来源】:清华大学北京市 211工程院校 985工程院校 教育部直属院校
【文章页数】:105 页
【学位级别】:博士
【部分图文】:
图1.1英伟达特斯拉系列GPU计算能力变化
”。另一种方法是在a前编程模型之上添加一层软件调度??模块,从而调度流水线任务的执行。通过使用这种策略,程序的不词阶段可以在??不同的GPU线程中并发地执行,从而发掘更多的并行性。这种策略最常见的模型??是Megakemelt32,87^在本章中,我们将依次介绍这些执行模型的特性及性能优缺??点。??3.1.1合并执行模型??合并执行模鍾(Run?to?completion,RTC)基翁现流水线程序的一种基本的编??程模式。在合并执行模型中,所有的任务阶段实现在同一个GPU函数中*图3.1描??述了这种模型的基本实现方式和执行方式。??gpuKernel??I?f?*?零?f??■?B?■?B?J??%?%?%?%?\??\\\\?stage一?1();??SM1?/?st?age一2?();??}?Stage-3〇;??图3.1合并执行模型。??在这种模型中,所有计算任务的调度都完全依赖于GPU系统上原有的调度??机制,所有的流水线控制逻辑都实现在同一个GPU函数中。如图3.1所示,每??个GPU函数中的线程会依次执行流水线的各个任务阶段,而不回的线程在同^时??18??
?第3章GPU平台上流水线计算任务调度|莫型研究???|?gpuKernel_l{??stage?l7);??SMI?}}}}}}\?}??4^44^4?gpuKernel_2{??stage_2();?????////????}??SM2?V:V:V:?gpuKernel_3{??4^||}st;g^〇j??图3.2依次执行模型。??依次执行模型的优点去要包括实现简单、表达能力强、GPU函数占用存储资??源较少等。依次执行模型的实现难易程度和合并执行模型相当,将一个以合并??执行模型实现的流水线转换为依次执行模型的实现也比较容易。在依次执行模_??中,不词阶段之间存在隐式的同步,这使得它可以实现需要全局M步的或者存??在递归结构的流水线应用。理论上,任何流水线结构都可以用依次执行模型来实??现,该模型的表达能力非常强。词时,在这个模型中,由于整个流水线被分成几??个GPU函数来实现,每个GPU函数将消耗更少的存储资源,GPU函数的并行度会??大于合并执衧模型b而旦》这些小GPU函数对指令缓存利用效率更高。??另一方面,依次执行模型也存在一些问题。首先,在此模型中,每两个连??续GPU函数之间存在隐式同步,所有GPU函数按流水线依赖关系的顺序执行,因??此,某个任务阶段中少量长时间运行的线程可能会严重延迟不一阶段的开始。这??是缺乏对任务并行的支持导致的结果,这一模型没有任务并行所能够带来的细粒??度利用硬件资源的优势。其次,该模型可能会导致频繁的GPU函数调用开销,尤??其是对于具有递归或循环结构的流水线,启动开销可能很大[7Q]。此外,流水线??执行的控制逻辑在CPU端,CPU与GPU之间环境切
【参考文献】:
期刊论文
[1]基于CUPTI接口的典型GPU程序负载特征分析[J]. 郑祯,翟季冬,李焱,陈文光. 计算机研究与发展. 2016(06)
本文编号:3332867
【文章来源】:清华大学北京市 211工程院校 985工程院校 教育部直属院校
【文章页数】:105 页
【学位级别】:博士
【部分图文】:
图1.1英伟达特斯拉系列GPU计算能力变化
”。另一种方法是在a前编程模型之上添加一层软件调度??模块,从而调度流水线任务的执行。通过使用这种策略,程序的不词阶段可以在??不同的GPU线程中并发地执行,从而发掘更多的并行性。这种策略最常见的模型??是Megakemelt32,87^在本章中,我们将依次介绍这些执行模型的特性及性能优缺??点。??3.1.1合并执行模型??合并执行模鍾(Run?to?completion,RTC)基翁现流水线程序的一种基本的编??程模式。在合并执行模型中,所有的任务阶段实现在同一个GPU函数中*图3.1描??述了这种模型的基本实现方式和执行方式。??gpuKernel??I?f?*?零?f??■?B?■?B?J??%?%?%?%?\??\\\\?stage一?1();??SM1?/?st?age一2?();??}?Stage-3〇;??图3.1合并执行模型。??在这种模型中,所有计算任务的调度都完全依赖于GPU系统上原有的调度??机制,所有的流水线控制逻辑都实现在同一个GPU函数中。如图3.1所示,每??个GPU函数中的线程会依次执行流水线的各个任务阶段,而不回的线程在同^时??18??
?第3章GPU平台上流水线计算任务调度|莫型研究???|?gpuKernel_l{??stage?l7);??SMI?}}}}}}\?}??4^44^4?gpuKernel_2{??stage_2();?????////????}??SM2?V:V:V:?gpuKernel_3{??4^||}st;g^〇j??图3.2依次执行模型。??依次执行模型的优点去要包括实现简单、表达能力强、GPU函数占用存储资??源较少等。依次执行模型的实现难易程度和合并执行模型相当,将一个以合并??执行模型实现的流水线转换为依次执行模型的实现也比较容易。在依次执行模_??中,不词阶段之间存在隐式的同步,这使得它可以实现需要全局M步的或者存??在递归结构的流水线应用。理论上,任何流水线结构都可以用依次执行模型来实??现,该模型的表达能力非常强。词时,在这个模型中,由于整个流水线被分成几??个GPU函数来实现,每个GPU函数将消耗更少的存储资源,GPU函数的并行度会??大于合并执衧模型b而旦》这些小GPU函数对指令缓存利用效率更高。??另一方面,依次执行模型也存在一些问题。首先,在此模型中,每两个连??续GPU函数之间存在隐式同步,所有GPU函数按流水线依赖关系的顺序执行,因??此,某个任务阶段中少量长时间运行的线程可能会严重延迟不一阶段的开始。这??是缺乏对任务并行的支持导致的结果,这一模型没有任务并行所能够带来的细粒??度利用硬件资源的优势。其次,该模型可能会导致频繁的GPU函数调用开销,尤??其是对于具有递归或循环结构的流水线,启动开销可能很大[7Q]。此外,流水线??执行的控制逻辑在CPU端,CPU与GPU之间环境切
【参考文献】:
期刊论文
[1]基于CUPTI接口的典型GPU程序负载特征分析[J]. 郑祯,翟季冬,李焱,陈文光. 计算机研究与发展. 2016(06)
本文编号:3332867
本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/3332867.html