异构众核上基于剖析技术以及数据流信息的动态资源调度方法

文档序号:28317967发布日期:2022-01-04 19:55阅读:143来源:国知局
异构众核上基于剖析技术以及数据流信息的动态资源调度方法

1.本发明主要涉及异构众核系统领域,特别是异构众核模拟器mgpusim上基于剖析技术以及数据流信息的动态资源调度方法。


背景技术:

2.众核处理器结构是对片上可扩展能力达到数千个核、计算能力达到万亿次级的微处理芯片体系结构发展道路的探索。其计算资源密度更高,片上通信开销显著降低,能够实现芯片结构和性能高度的可扩展性,很好地应对纳米工艺代芯片设计的功耗、线延迟和设计复杂性问题。
3.图形处理单元(gpu)在集成度、计算密集型问题的处理能力等方面已远远超过了通用处理器,特别是随着 gpu 在可编程能力、并行处理能力和应用范围方面得到不断提升和扩展,gpu 已成为当前计算机系统中具备高性能处理能力的部件。此外,随着数据并行工作负载的迅速普及和规模的增大,要求gpu的计算能力相应增加,随着单gpu平台难以满足这些性能需要,多gpu平台开始主导高性能计算领域。
4.mgpusim是一个高度可配置的、高性能的、可并行的多gpu模拟器,并引入了locality api和渐进页面分割迁移(pasi)两个新的设计,locality api允许编程者控制数据和计算的位置,同时避免复杂的编程以及对单个gpu而编写的内核的修改从而提高性能,pasi是这一种多gpu内存管理系统,该机制并不迁移整个页面,它能够基于硬件逐步改进数据的位置,此外,在mgpusim上,用户可自由选择统一的多gpu模型或离散的多gpu模型,以及配置gpu个数。
5.程序行为剖析技术是一种根据程序运行时信息,动态分析程序运行时特征的方法,对于了解分析程序运行时行为特征,选择和决定硬件体系结构有着极其重要的作用。对于特定的应用,只有在充分了解了应用自身的特征后,才能选择或者设计出具有针对性的硬件系统结构,最大限度地加速计算。
6.在一个程序中, 若事件 (或动作) b发生前, 事件 (或动作) a必须发生, 则称b依赖于a, 这种关系称为依赖关系.依赖关系分为控制依赖关系和数据依赖关系, 控制依赖关系导致程序流的变化,数据依赖关系由读/写同一数据引起,其中影响程序并行化的主要因素为数据依赖关系。
7.目前异构系统的资源调度方法主要分为动态任务调度和静态任务调度,静态调度是在执行负载之前根据预计的运行时间设置好任务的分配比例。预计时间是基于处理器的执行性能、编译时间参数和离线训练时间的理论分析得到的,该方法无须任务同步, 通信开销小, 但是不便于灵活应用到各种计算任务, 负载不均问题可能仍然严重。动态调度是在任务执行的过程中根据cpu和gpu的性能动态地确定负载的分配比例。动态调度的开销虽然比静态调度大, 但是预测更精准。
8.work-stealing算法是并行计算中的一个有效的负载均衡算法,其基本思想是:能
够根据各个处理器计算节点执行任务的快慢,来决定某些执行任务较快的机器去那些执行慢的机器上去窃取任务。
9.目前的异构平台的资源调度方案中需要编程人员手动进行gpu数量的分配,任务分配部分也需编程人员对其进行手工划分,但gpu适合类型高度统一且相互无依赖的数据计算任务,因此仅能分配此类数据给gpu运行,这将会造成异构核心资源利用率低下的问题。此外,现有动态调度方案,多数通过检测到空闲gpu时从cpu中获取工作分配给gpu以实现负载平衡,会造成通信延迟等问题。


技术实现要素:

10.本发明的主要目的在于针对异构平台上需编程人员设置gpu个数以及对任务进行手动划分的现状,提出了一种基于程序剖析时信息以及程序数据流信息的资源调度方法,将剖析得到循环语句的执行次数及其数据依赖,通过设定阈值决定设定gpu的个数;对存在数据依赖的任务,通过增大任务划分的线程粒度,将该部分利用数据流信息将任务分配到各gpu上运行;主动检测平台负载均衡状况,并结合work-stealing算法解决平台负载不均衡,从而实现了一种自动设置gpu数量、提高gpu计算资源利用率和主动检测并实现负载均衡的动态资源调度方法。
11.为了实现上述目的,本发明从程序执行时的数据流顺序入手,利用剖析得到程序的依赖关系,得到循环迭代体的数量,设定相关阈值计算所需gpu资源,利用数据流顺序对分配到gpu中的任务进行进一步划分,其具体步骤如下:步骤一:程序剖析,确定可并行循环体的执行次数。
12.步骤二:确定循环体的数据流图。
13.步骤三:设定阈值,计算所需gpu数量。
14.步骤四:根据依赖划分gpu任务大小。
15.步骤五:根据任务的数据流将任务分配到不同的gpu运行。
16.步骤六:检查平台负载均衡。
17.在上述方案中,步骤一通过程序剖析技术获得程序运行时信息,收集循环迭代次数。
18.在上述方案中,步骤二确定循环间的指令间的数据依赖关系。
19.在上述方案中,步骤三确定单个gpu计算单元个数,设定阈值,得到循环数对单个gpu计算单元个数的比值,并将循环数对单个gpu计算单元个数取余,将取余所得数与阈值比较,得到最终所需gpu总数。
20.在上述方案中,步骤四通过剖析所得循环间的依赖关系,确定划分线程粒度的大小,对因数据依赖而无法划分到gpu的部分增加划分的任务线程粒度大小,将其涉及的相关数据流部分分配到gpu上运行。
21.在上述方案中,步骤五根据步骤二所得数据流图及控制流图,将分配到gpu的任务分为不同的任务节点,并设置任务调度器和数据缓存,数据缓存中保存每一个任务节点的结果,任务调度器控制每个任务节点在gpu上运行的先后顺序以及其工作单元的分配。
22.在上述方案中,步骤六通过检查任务调度器中是否存在未分配任务,若任务调度器中为空并且cpu存在未完成线程,此时采用work-stealing算法将cpu的一些任务分配到
gpu上运行,以达到负载均衡。
23.本发明的有益效果如下:(1)本发明将因数据依赖而不能划分到gpu上运行的部分循环结构,通过增大任务线程粒度,将数据依赖封闭在任务内部的方法,提高了异构系统的计算资源利用率。
24.(2)本发明在mgpusim内部新设置了任务调度器和数据缓存,对分配到gpu中的任务进行更细一步划分,提高任务的并行度和计算效率。
25.(3)本发明采用了work-stealing算法实现异构平台的负载均衡,实现主动式核间任务传输以减轻通信延迟。
附图说明
26.图1是本发明实施例的程序数据流与任务划分示例;图2是本发明实施例的任务调度器调度流程示例。图3是本发明实施例检查平台负载均衡的流程图。
具体实施方式
27.本发明基于mgpusim异构平台,对此平台增加资源调度方法,从而说明本发明的发明目的、优点和关键技术特征。
28.mgpusim是一个高度可配置的异构平台,用户可自由选择统一的多gpu模型或离散的多gpu模型,以及配置gpu个数,但用户自主配置gpu个数会造成gpu资源浪费,以及对存在数据依赖的任务无法手动分配到gpu上运行,因此可能存在gpu资源利用率低以及资源不均衡的情况,因此在异构模拟器mgpusim上基于剖析技术以及数据流信息的资源调度方法步骤如下:步骤一:程序剖析,确定可并行循环体的执行次数。
29.利用离线剖析技术,选择出程序中的循环结构并统计其循环迭代总数,然后对该循环结构进行插桩操作,以便后续操作和分析。
30.步骤二:确定循环体的数据流图。
31.利用llvm编译框架提供的数据流分析、别名分析、if转换技术等支持,消除迭代体内部各个基本块之间的控制依赖,将其转换为数据依赖,构建迭代体内部指令间的数据流图。图1(a)所示即为当前依据指令间数据依赖关系所生成的局部数据流图。
32.步骤三:设定阈值,计算所需gpu数量。
33.确定单个gpu计算单元个数,设定阈值为其值的一半,并将循环数对单个gpu计算单元个数取余,将取余所得数值与阈值比较,若小于阈值则最终所需gpu总数为循环迭代总数与单个gpu计算单元个数的比值,否则最终所需gpu总数为该比值+1。
34.步骤四:根据依赖划分gpu任务大小。
35.由步骤二得到的数据流图进行分析,得到由a1、b1、b3、d1和d3组成第一条依赖回路;由a2、b2、c1、c2、d2和d3组成第三条依赖回路,但第一条依赖回路中包含b1,b3组成的依赖回路,其与d1同时需要a1的数据部分,因此无法对其进行划分,此时需增大划分的线程粒度,将a1、b1、b3、d1划分为一个任务。
36.步骤五:根据任务的数据流将任务分配到不同的gpu运行。
37.由步骤四得到的gpu任务,对于存在属于依赖而无法划分的任务,将其进行进一步划分成不同的任务节点,通过设置任务调度器和数据缓存,数据缓存中保存每一个任务节点的结果,任务调度器控制每个任务节点在gpu上运行的先后顺序以及其工作单元的分配,如图2所示,a1为第一个任务节点,b1,b3为第二个任务节点,d1,d3为第三个任务节点,任务调度器控制a1节点先运行,并将数据保存至数据缓存,通过数据缓存将所需a1产生的数据传送到b1,b3节点与d1节点,并将其分配到空闲的gpu上运行,当完成该任务时数据缓存中相应数据将被清空。
38.步骤六:检查平台负载均衡。
39.检查任务调度器中是否存在未分配任务或存在待运行任务,若任务调度器中为空且待运行任务已开始运行,此时将采用work-stealing算法将cpu的一些分支任务分配到gpu上运行,以达到负载均衡,此外若一个任务节点的结果需分配给多个任务节点,为了尽快解除阻塞任务避免负载不均衡对性能产生影响,将会将该任务节点的数据分配给数据重用最多的任务节点。
40.上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性的劳动既可做出各种修改或变形仍在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1