一种面向CPU-GPU异构资源的任务调度方法技术

技术编号:34557962 阅读:21 留言:0更新日期:2022-08-17 12:44
本申请一种面向CPU

【技术实现步骤摘要】
一种面向CPU

GPU异构资源的任务调度方法


[0001]本专利技术涉及异构计算资源任务调度
,具体涉及一种面向CPU

GPU异构资源的任务调度方法。

技术介绍

[0002]随着算法应用对计算资源算力需求的增长,CPU的计算能力无法满足算力需求,采用CPU

GPU异构计算系统可为计算密集型应用提供更加强大的计算能力,因此得到了广泛应用。CPU具有较大的缓存容量和大量数字逻辑运算单元,擅长逻辑运算,GPU是基于大吞吐量的设计,擅长大规模的并行计算。研究如何根据计算任务属性将其分配至合适的计算资源上执行以提升计算效率,同时考虑如何通过任务调度解决系统负载均衡问题变得更加有意义。典型任务调度方法分为静态调度和动态调度,静态调度指在程序运行前已确定好调度方案,其优点为调度开销小,容易实施,但是容易造成负载不均衡。动态调度是指根据计算资源的负载状态,实时调整任务分配,使得各计算单元负载均衡,但动态调度相比于静态调度内存和时间开销较大。

技术实现思路

[0003]本申请提供了一种面向CPU

GPU异构资源的任务调度方法,根据静态调度策略进行计算图切分,实现了算法应用计算任务在异构计算资源上的分配执行,同时通过对GPU资源状态的监控,调整子图调度策略,为解决计算单元负载不均问题提供了有效技术途径。
[0004]本专利技术的专利技术目的采用以下技术方案实现:
[0005]一种面向CPU

GPU异构资源的任务调度方法,其特征在于,所述方法包括:
[0006]步骤1:根据算法应用,构建程序任务计算图;
[0007]步骤2:根据预先定义的静态调度策略,将所述程序任务计算图,切分为适合CPU上执行的CPU程序任务计算子图,和适合GPU上执行的GPU程序任务计算子图;
[0008]步骤3:将CPU程序任务计算子图映射到CPU上执行,将GPU程序任务计算子图映射到GPU上执行;
[0009]步骤4:在CPU程序任务计算子图和GPU程序任务计算子图的执行过程中,实时监控CPU和GPU计算资源状态,根据计算单元资源状态,实时调整剩余的程序任务计算子图的调度策略,以实现计算单元负载均衡;
[0010]步骤5:重复步骤4,实时调整子图执行策略,并在不同计算单元上依次完成剩余子图执行,输出计算结果。
[0011]优选的,所述程序任务计算图为有向无环图,所述有向无环图为没有环的有向图,由节点和有向边构成的集合,节点与节点间通过有向边连接,具有单一方向。
[0012]优选的,所述静态调度策略为结合各计算节点在不同计算单元上执行完成的耗时,并预估数据在CPU和GPU间搬移造成的耗时,综合考虑节点执行和数据搬移耗时,进行子图的切分。
[0013]优选的,所述步骤3包括:
[0014]根据子图优先级,依次执行各个程序任务计算子图,并进行各个程序任务计算子图输入输出数据的搬移。
[0015]优选的,所述步骤4包括:
[0016]在子图执行过程中,对计算单元GPU的资源占用状态进行监控,若GPU无其他程序占用,则按照之前划分,将GPU程序任务计算子图依次分配至GPU端执行。
[0017]优选的,所述步骤4包括:
[0018]在子图执行过程中,对计算单元GPU的资源占用状态进行监控,若监控到GPU资源被占,则将GPU程序任务计算子图调度至CPU端执行,以减小程序等待时间。
[0019]优选的,所述步骤4还包括:
[0020]监控CPU计算单元资源状态,若处于空闲状态,可将后续GPU上的部分GPU程序任务计算子图分配到CPU端进行执行,从而保证各计算单元的负载均衡,减小计算资源的闲置浪费问题。
[0021]优选的,将所述程序任务计算图,切分为适合CPU上执行的CPU程序任务计算子图,和适合GPU上执行的GPU程序任务计算子图,具体包括:
[0022]根据代价评估函数实现子图的切分:
[0023][0024]其中,C
op
为节点的耗时,t
CPU
为在CPU执行该节点的耗时,t
GPU
为在GPU上执行该节点的耗时,t
data_t
为在GPU上执行该子图时上传和下载数据所造成的数据搬移耗时;
[0025][0026]C
b
为子图在CPU或GPU计算单元上的总耗时,选择最终耗时最小的计算单元为该子图计算分配的计算后端,根据该策略,完成子图切分。
[0027]本专利技术具有以下技术效果:
[0028]1、本专利技术提供的一种面向CPU

GPU异构资源的任务调度方法,针对异构计算单元属性和算法应用计算属性,根据静态调度策略将构建出的计算图进行子图切分,并完成各子图在CPU和GPU端的分配,实现了算法应用在CPU和GPU计算单元上的异构运行。
[0029]2、本专利技术提供的一种面向CPU

GPU异构资源的任务调度方法,在算法执行过程中,通过实时监控计算单元CPU和GPU的资源状态,调整子图分配策略,尽可能实现各计算单元上的工作负载均衡,为消除异构计算资源负载不均问题提供了有效的解决思路。
附图说明
[0030]为进一步说明本专利技术的
技术实现思路
,以下结合附图及实施案例对本专利技术详细说明如下,其中:
[0031]图1是面向CPU

GPU异构资源的任务调度流程图。
[0032]图2是根据算法应用构建的计算图示意图。
[0033]图3是根据静态调度策略进行子图切分后的结果示意图。
[0034]图4是动态子图切分策略示意图。
具体实施方式
[0035]本专利技术的主要目的在于提供了一种面向CPU

GPU异构资源的任务调度方法,根据算法应用,构建程序任务计算图,结合计算资源各单元属性和任务节点属性,根据自定义的静态调度策略,将计算图切分为适合CPU或GPU上执行的两部分计算子图,在计算子图执行过程中,根据计算单元GPU资源监控状态,实时调整子图调度策略,以实现各计算单元的负载均衡。本专利技术提供的面向CPU

GPU异构资源的任务调度方法根据静态调度策略进行计算图切分,实现了算法应用计算任务在异构计算资源上的分配执行,同时通过对GPU资源状态的监控,调整子图调度策略,为解决计算单元负载不均问题提供了有效技术途径。
[0036]下面详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出。
[0037]实施例一
[0038]一种面向CPU

GPU异构资源的任务调度方法,包括如下步骤:
[0039]步骤1:根据算法应用,构建程序任务计算图;
[0040]步骤2:将所述程序任务计算图,根据预先定义的静态调度策略,切分为适合CPU上执行的CPU程序任务计算子本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向CPU

GPU异构资源的任务调度方法,其特征在于,所述方法包括:步骤1:根据算法应用,构建程序任务计算图;步骤2:根据预先定义的静态调度策略,将所述程序任务计算图,切分为适合CPU上执行的CPU程序任务计算子图,和适合GPU上执行的GPU程序任务计算子图;步骤3:将CPU程序任务计算子图映射到CPU上执行,将GPU程序任务计算子图映射到GPU上执行;步骤4:在CPU程序任务计算子图和GPU程序任务计算子图的执行过程中,实时监控CPU和GPU计算资源状态,根据计算单元资源状态,实时调整剩余的程序任务计算子图的调度策略,以实现计算单元负载均衡;步骤5:重复步骤4,实时调整子图执行策略,并在不同计算单元上依次完成剩余子图执行,输出计算结果。2.根据权利要求1所述的任务调度方法,其特征在于,所述程序任务计算图为有向无环图,所述有向无环图为没有环的有向图,由节点和有向边构成的集合,节点与节点间通过有向边连接,具有单一方向。3.根据权利要求1所述的任务调度方法,其特征在于,所述静态调度策略为结合各计算节点在不同计算单元上执行完成的耗时,并预估数据在CPU和GPU间搬移造成的耗时,综合考虑节点执行和数据搬移耗时,进行子图的切分。4.根据权利要求1所述的任务调度方法,其特征在于,所述步骤3包括:根据子图优先级,依次执行各个程序任务计算子图,并进行各个程序任务计算子图输入输出数据的搬移。5.根据权利要求1所述的任务调度方法,其特征在于,所述...

【专利技术属性】
技术研发人员:曲国远丁勇飞李忠威李威魏大洲
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1