图形处理任务的调度方法以及装置与流程

文档序号:13640909阅读:155来源:国知局

本发明涉及计算机技术领域,特别涉及一种图形处理任务的调度方法以及装置。



背景技术:

多核中央处理器(centralprocessingunit,cpu)与图形处理器(graphicprocessingunit,gpu)协同处理大量数据时,传统的图形处理任务调度方法中,操作系统把所有核作为负载均衡(近似公平队列方式)的操作单元,忽略了中央处理器内部的物理总线的互联情况,把一个图形处理任务的多个线程分配到不同的物理核甚至不同的中央处理器进行处理,这样,处理一个图形处理任务需要在不同的物理核甚至不同的中央处理器之间进行切换,增加额外的开销,尤其当中央处理器的负载较高时,会使中央处理器处理性能产生较大的损耗和较大幅度的波动。



技术实现要素:

本发明所要解决的一个技术问题是:当中央处理器的负载较高时,如何减轻中央处理器处理性能的损耗和波动。

根据本发明的一个方面,提供的一种图形处理任务的调度方法,包括:获取中央处理器的负载率;当中央处理器的负载率达到预设值时,将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理。

在一个实施例中,将待处理的一个图形处理任务组分配到中央处理器的相同的物理核进行处理包括:获取系统内所有图形处理器的待处理的图形处理任务的总个数;获取系统内中央处理器的物理核的总个数;根据系统内物理核的总个数将所有待处理的图形处理任务平均划分为多个组;将每个图形处理任务组分配到中央处理器的相同的物理核进行处理。

在一个实施例中,将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理包括:获取系统内中央处理器的物理核与逻辑核的对应关系;根据对应关系,将待处理的一个图形处理任务或一个图形处理任务组分配到处理该任务的物理核所对应的至少一个逻辑核进行处理。

在一个实施例中,当中央处理器的负载率未达到预设值时,将待处理的一个图形处理任务分配到多个物理核进行处理。

在一个实施例中,中央处理器的负载率的预设值的范围为85%至100%。

根据本发明的第二个方面,提供的一种图形处理任务的调度装置,包括:负载获取模块,用于获取中央处理器的负载率;调度模块,用于当中央处理器的负载率达到预设值时,将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理。

在一个实施例中,调度模块包括:任务统计单元,用于获取系统内所有图形处理器的待处理的图形处理任务的总个数;物理核统计单元,用于获取系统内中央处理器的物理核的总个数;任务组划分单元,用于根据系统内物理核的总个数将所有待处理的图形处理任务平均划分为多个组;任务组调度单元,用于将每个图形处理任务组分配到中央处理器的相同的物理核进行处理。

在一个实施例中,调度模块,用于获取系统内中央处理器的物理核与逻辑核的对应关系,根据对应关系,将待处理的一个图形处理任务或一个图形处理任务组分配到处理该任务的物理核所对应的至少一个逻辑核进行处理。

在一个实施例中,调度模块,还用于当中央处理器的负载率未达到预设值时,将待处理的一个图形处理任务分配到多个物理核进行处理。

在一个实施例中,中央处理器的负载率的预设值的范围为85%至100%。

本发明通过监测中央处理器的负载状况,当中央处理器的负载率达到预设值时,则将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理,避免了处理一个图形处理任务需要在不同的物理核甚至不同的中央处理器之间进行切换,减轻了系统的性能损耗和波动,提高了系统的整体性能。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出现有技术中图形处理任务的调度方法的示意图。

图2示出本发明的一个实施例的图形处理任务的调度方法的流程示意图。

图3示出本发明的一个实施例的图形处理任务的调度方法的示意图。

图4示出本发明的一个应用例的图形处理任务的调度方法的流程示意图。

图5示出本发明的一个实施例的图形处理任务的调度装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

发明人发现,多核中央处理器与图形处理器协同处理大量数据,当中央处理器的负载率达到一定值后,系统的处理性能下降较多并出现比较大幅度的波动。发明人经过分析发现现有技术的图形处理器的任务的调度方法,很可能会把一个图形处理任务的多个线程分配到不同的物理核甚至不同的中央处理器进行处理,如图1中所示,系统内配置6核超线程双cpu芯片,共有24个逻辑核(l0~l23),从cpu核的物理分布图可以看出,相邻编号的逻辑核不一定属于同一个物理核,甚至不属于同一个cpu。现有技术中以逻辑核作为负载均衡的操作单元,对gpu的任务进行调度,很可能出现图1中所示的调度结果,gpu一个多线程任务1被分配到不同的物理核l12、l14、l15,甚至gpu一个多线程任务2被分配到不同的cpu0和cpu1上。这样,忽略了中央处理器内部的物理总线的互联情况,处理一个图形处理任务需要在不同的物理核甚至不同的cpu之间进行切换,增加额外的开销,当cpu负载较高时,这种切换会带来系统性能较大的下降以及较大幅度的波动。针对这一问题,提出本方案。

以下参考图2至图4描述本发明图形处理任务的调度方法。

图2为本发明图形处理任务的调度方法一个实施例的流程图。如图2所示,该实施例的方法包括:

步骤s202,获取中央处理器的负载率。

其中,操作系统可以周期性的监测中央处理器的负载状态;或者,中央处理器主动上报负载状态,可以周期性主动上报负载状态,也可以达到预设值时主动上报负载状态。

步骤s204,当中央处理器的负载率达到预设值时,将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理。

其中,当中央处理器的负载量未达到预设值时,例如采用操作系统自带的负载均衡调度方法,近似公平队列的调度方法即根据每个逻辑核的负载状况对gpu的任务进行调度,使每个逻辑核的负载大体相同,将待处理的一个图形处理任务分配到多个物理核进行处理。当中央处理器的负载率达到预设值时,自动屏蔽操作系统自带的调度方法,而采用本方案的调度方法。

作为一种示例,图形处理任务组的划分方式:获取系统内中央处理器的物理核的总个数;获取系统内所有图形处理器的待处理的图形处理任务的总个数;根据系统内物理核的总个数将所有待处理的图形处理任务平均划分为多个组;进而,将每个图形处理任务组分配到中央处理器的相同的物理核进行处理。

具体的,获取系统内中央处理器的物理核与逻辑核的对应关系;根据对应关系,将待处理的一个图形处理任务或一个图形处理任务组分配到处理该任务的物理核所对应的至少一个逻辑核进行处理。参考图3所示,系统内中央处理器的物理核与逻辑核的对应关系即图中所示的cpu核的物理分布图,根据cpu核的物理分布图为待处理的一个图形处理任务或一个图形处理任务组指定同一物理核下的一个或多个逻辑核,例如为gpu任务1指定cpu0的物理核3下的逻辑核l3和l15,为gpu任务1指定cpu1的物理核2下的逻辑核l8和l20,当处理该任务或任务组时,则调度同一物理核下的逻辑核进行处理,而不会将该任务分配到不同的逻辑核进行处理。

上述实施例的方法,通过监测中央处理器的负载状况,当中央处理器的负载率达到预设值时,则将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理,避免了处理一个图形处理任务需要在不同的物理核甚至不同的中央处理器之间进行切换,减轻了系统的性能损耗和波动,提高了系统的整体性能。

下面结合图4描述本发明图形处理任务的调度方法的一个应用例。

图4为本发明图形处理任务的调度方法一个应用例的流程图。如图4所示,该应用例的方法包括:

步骤s402,获取cpu的负载率,判断cpu的负载率是否达到预设值,如果达到则执行步骤s404。

步骤s404,获取所有gpu的待处理的图形处理任务总数量t。

步骤s406,获取系统内cpu的数量n、各个cpu的物理核数量k,以及cpu、物理核、逻辑核三者的物理分布图,并计算系统内物理核总数n*k。

步骤s408,计算单个物理核需要承担的待处理的图形处理任务数tk=t/(n*k),将所有待处理的图形处理任务划分为多个组。

步骤s410,每个图形处理任务组中tk个任务分配到一个物理核,并为任务组中每个任务指定该物理核下的至少一个逻辑核进行处理。

其中,处理图形处理任务组中的一个任务时,根据任务的线程数和处理该任务的物理核下各个逻辑核的负载状况进行调度,在该物理核下可以采用原有的操作系统调度方法进行调度。

发明人针对不同数量的并发图形处理器任务进行测试,观察采用不同调度方法时中央处理器的性能,得到如表1中的测试数据。如表1所示,其中,操作系统的调度方法为操作系统自带的负载均衡调度方法,近似公平队列的调度方法即根据每个逻辑核的负载状况对gpu的任务进行调度,使每个逻辑核的负载大体相同。如表1所示,当系统内由单个gpu卡产生20个并发任务时,cpu的负载率为50%,此时,采用本方案的调度方法系统平均每秒传输的帧数和传输速率的波动范围略优于采用传统的操作系统的调度方法。当系统内由两个gpu卡产生40个并发任务时,cpu的负载率为100%,此时,采用本方案的调度方法系统的平均性能明显高于采用操作系统的调度方法,并且采用本方案的调度方法系统性能的波动范围明显小于采用操作系统的调度方法。并且发明人通过测试发现,当cpu的负载率为50%~100%时,本方案的调度方法相对于传统的调度方法具有优势,而当cpu的负载率为85%~100%,本方案的调度方法对系统的平均性能和性能的波动范围有较大的改善。

表1

本发明还提供一种图形处理任务的调度装置,下面结合图5进行描述。

图5为本发明图形处理任务的调度装置的一个实施例的结构示意图。如图5所示,该装置50包括:

负载获取模块502,用于获取中央处理器的负载量。

调度模块504,用于当中央处理器的负载量达到预设值时,将待处理的一个图形处理任务或一个图形处理任务组分配到中央处理器的相同的物理核进行处理。

具体的,调度模块504还可以包括:物理核统计单元,用于获取系统内中央处理器的物理核的总个数;任务统计单元,用于获取系统内所有图形处理器的待处理的图形处理任务的总个数;任务组划分单元,用于根据系统内物理核的总个数将所有待处理的图形处理任务平均划分为多个组;任务组调度单元,用于将每个图形处理任务组分配到中央处理器的相同的物理核进行处理。

其中,调度模块504,用于获取系统内中央处理器的物理核与逻辑核的对应关系,根据对应关系,将待处理的一个图形处理任务或一个图形处理任务组分配到处理该任务的物理核所对应的至少一个逻辑核进行处理。

进一步的,调度模块504,还用于当中央处理器的负载量未达到预设值时,将待处理的一个图形处理任务分配到多个物理核进行处理。

其中,中央处理器的负载量的预设值的范围为85%至100%。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1