线程负载均衡方法、装置、设备及存储介质与流程

文档序号:31786863发布日期:2022-10-12 13:59阅读:59来源:国知局
线程负载均衡方法、装置、设备及存储介质与流程

1.本发明涉及计算机技术领域,尤其涉及一种线程负载均衡方法、装置、设备及存储介质。


背景技术:

2.图形处理器(gpu)具有多个物理计算单元,针对若干顶点数据需要相同的着色器程序逻辑处理的情况,通过将不同顶点数据分线程在各个计算单元同时执行,可以达到并行计算的目的,从而加速数据处理。现代gpu着色器分为顶点着色器、曲面细分着色器、几何着色器、计算着色器、片元着色器等,程序逻辑由用户定义,其时间和空间复杂度不固定,各计算单元实际运行着色器线程时也可能因输入数据不同而产生不同的执行时间和缓存占用。此外,根据现代图形处理流水线的特点,某个图元在曲面细分着色器、几何着色器或光栅化阶段可能会产生大量新的图元数据,给计算资源的高效利用带来较大挑战。
3.现有方案没有一套有效描述和监测各个计算单元实际负载的机制,也不能考虑到各计算单元的实际负载情况,容易导致负载分配不均衡的情况,无法高效利用计算资源。


技术实现要素:

4.本发明提供了一种线程负载均衡方法、装置、设备及存储介质,用于实现负载分配均衡化以及提高计算资源的利用率。
5.本发明第一方面提供了一种线程负载均衡方法,所述线程负载均衡方法包括:基于预置的图形处理器和预置的负载均衡策略构建全局调度器,其中,所述全局调度器包括多个第一调度器,每个第一调度器包括多个第二调度器,每个第二调度器包括多个计算单元;通过所述全局调度器接收绘图指令并生成第一绘图任务,并将所述第一绘图任务下发至所述多个第一调度器和所述多个第二调度器;计算所述多个第一调度器和所述多个第二调度器的第一负载数据,并根据所述第一负载数据对所述第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据;根据所述第二负载数据配置所述多个计算单元待运行的着色器线程,并通过所述多个计算单元运行所述着色器线程,以及监测所述多个计算单元是否产生第二绘图任务;若是,则按照预置的任务分配策略并通过所述多个第一调度器和所述多个第二调度器对所述第二绘图任务进行负载分配,得到负载分配结果。
6.可选的,在本发明第一方面的第一种实现方式中,所述计算所述多个第一调度器和所述多个第二调度器的第一负载数据,并根据所述第一负载数据对所述第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据,包括:计算所述多个第一调度器和所述多个第二调度器的第一负载数据,其中,所述第一负载数据用于指示所述多个第一调度器和所述多个第二调度器中的原始负载数据;获取所述多个第一调度器的第一调度器数量,以及获取每个第一调度器中的第二调度器数量;根据所述第一绘图任务、所述第一负载数据和所述第一调度器数量计算每个第一调度器的负载数据,并根据每个第一调度器的负载数据和每个第一调度器中的第二调度器数量计算每个第二调度器的负载数据;根据每个
第一调度器的负载数据和每个第二调度器的负载数据生成第二负载数据。
7.可选的,在本发明第一方面的第二种实现方式中,所述若是,则按照预置的任务分配策略并通过所述多个第一调度器和所述多个第二调度器对所述第二绘图任务进行负载分配,得到负载分配结果,包括:若是,则获取产生所述第二绘图任务的目标计算单元,并确定所述目标计算单元所属的目标第二调度器;获取所述目标第二调度器中所有计算单元的计算单元总负载数据,并根据所述计算单元总负载数据判断所述目标第二调度器是否满足第一任务分配条件,得到第一判断结果;根据所述第一判断结果和所述第二绘图任务对所述全局调度器进行负载分配,得到负载分配结果。
8.可选的,在本发明第一方面的第三种实现方式中,所述根据所述第一判断结果和所述第二绘图任务对所述全局调度器进行负载分配,得到负载分配结果,包括:当所述第一判断结果为不满足时,确定所述目标第二调度器不满足第一任务分配条件,并将所述第二绘图任务反馈至所述目标第二调度器所属的目标第一调度器;获取所述目标第一调度器中所有第二调度器的第二调度器总负载数据,并通过所述第二调度器总负载数据判断所述目标第一调度器是否满足第二任务分配条件;若所述目标第一调度器不满足第二任务分配条件,则将所述第二绘图任务反馈至所述全局调度器,并通过所述全局调度器对所述第二绘图任务进行任务分配,得到负载分配结果。
9.可选的,在本发明第一方面的第四种实现方式中,所述第一任务分配条件包括:判断所述目标第二调度器的节点负载是否超过同层其他所有的第二调度器的节点负载平均值对应的目标倍数,若超过,则确定所述目标第二调度器的负载状态为超载。
10.可选的,在本发明第一方面的第五种实现方式中,所述线程负载均衡方法还包括:当所述多个计算单元运行所述着色器线程时,通过所述第二调度器计算所述着色器线程运行过程中所消耗的时钟周期和数据量;统计所述第二调度器中所有计算单元运行的每种着色器线程的数量,以及分别计算所述时钟周期和所述数据量对应的时钟周期平均值和数据量平均值;基于所述每种着色器线程的数量、所述时钟周期平均值和所述数据量平均值生成每种着色器线程的负载数据。
11.可选的,在本发明第一方面的第六种实现方式中,所述线程负载均衡方法还包括:在所述第二调度器进行负载分配之后,获取每个第二调度器中所有计算单元对应的计算单元负载数据;根据所述计算单元负载数据获取每个第一调度器中所有第二调度器的调度器负载数据;根据调度器负载数据并通过所述全局调度器计算每种着色器线程的负载数据。
12.本发明第二方面提供了一种线程负载均衡装置,所述线程负载均衡装置包括:构建模块,用于基于预置的图形处理器和预置的负载均衡策略构建全局调度器,其中,所述全局调度器包括多个第一调度器,每个第一调度器包括多个第二调度器,每个第二调度器包括多个计算单元;处理模块,用于通过所述全局调度器接收绘图指令并生成第一绘图任务,并将所述第一绘图任务下发至所述多个第一调度器和所述多个第二调度器;更新模块,用于计算所述多个第一调度器和所述多个第二调度器的第一负载数据,并根据所述第一负载数据对所述第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据;配置模块,用于根据所述第二负载数据配置所述多个计算单元待运行的着色器线程,并通过所述多个计算单元运行所述着色器线程,以及监测所述多个计算单元是否产生第二绘图任务;分配模块,用于若是,则按照预置的任务分配策略并通过所述多个第一调度器和所述多个
第二调度器对所述第二绘图任务进行负载分配,得到负载分配结果。
13.可选的,在本发明第二方面的第一种实现方式中,所述更新模块具体用于:计算所述多个第一调度器和所述多个第二调度器的第一负载数据,其中,所述第一负载数据用于指示所述多个第一调度器和所述多个第二调度器中的原始负载数据;获取所述多个第一调度器的第一调度器数量,以及获取每个第一调度器中的第二调度器数量;根据所述第一绘图任务、所述第一负载数据和所述第一调度器数量计算每个第一调度器的负载数据,并根据每个第一调度器的负载数据和每个第一调度器中的第二调度器数量计算每个第二调度器的负载数据;根据每个第一调度器的负载数据和每个第二调度器的负载数据生成第二负载数据。
14.可选的,在本发明第二方面的第二种实现方式中,所述分配模块还包括:获取单元,用于若是,则获取产生所述第二绘图任务的目标计算单元,并确定所述目标计算单元所属的目标第二调度器;计算单元,用于获取所述目标第二调度器中所有计算单元的计算单元总负载数据,并根据所述计算单元总负载数据判断所述目标第二调度器是否满足第一任务分配条件,得到第一判断结果;分配单元,用于根据所述第一判断结果和所述第二绘图任务对所述全局调度器进行负载分配,得到负载分配结果。
15.可选的,在本发明第二方面的第三种实现方式中,所述分配单元具体用于:当所述第一判断结果为不满足时,确定所述目标第二调度器不满足第一任务分配条件,并将所述第二绘图任务反馈至所述目标第二调度器所属的目标第一调度器;获取所述目标第一调度器中所有第二调度器的第二调度器总负载数据,并通过所述第二调度器总负载数据判断所述目标第一调度器是否满足第二任务分配条件;若所述目标第一调度器不满足第二任务分配条件,则将所述第二绘图任务反馈至所述全局调度器,并通过所述全局调度器对所述第二绘图任务进行任务分配,得到负载分配结果。
16.可选的,在本发明第二方面的第四种实现方式中,所述第一任务分配条件包括:判断所述目标第二调度器的节点负载是否超过同层其他所有的第二调度器的节点负载平均值对应的目标倍数,若超过,则确定所述目标第二调度器的负载状态为超载。
17.可选的,在本发明第二方面的第五种实现方式中,所述线程负载均衡装置还包括:生成模块,用于当所述多个计算单元运行所述着色器线程时,通过所述第二调度器计算所述着色器线程运行过程中所消耗的时钟周期和数据量;统计所述第二调度器中所有计算单元运行的每种着色器线程的数量,以及分别计算所述时钟周期和所述数据量对应的时钟周期平均值和数据量平均值;基于所述每种着色器线程的数量、所述时钟周期平均值和所述数据量平均值生成每种着色器线程的负载数据。
18.可选的,在本发明第二方面的第六种实现方式中,所述线程负载均衡装置还包括:分析模块,用于在所述第二调度器进行负载分配之后,获取每个第二调度器中所有计算单元对应的计算单元负载数据;根据所述计算单元负载数据获取每个第一调度器中所有第二调度器的调度器负载数据;根据调度器负载数据并通过所述全局调度器计算每种着色器线程的负载数据。
19.本发明第三方面提供了一种线程负载均衡设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述线程负载均衡设备执行上述的线程负载均衡方法。
20.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的线程负载均衡方法。
21.本发明提供的技术方案中,基于预置的图形处理器和预置的负载均衡策略构建全局调度器,全局调度器将线程调度任务分层级管理,各级调度器分别对应gpu的多级缓存结构,可以减轻单一调度器计算负担,根据所述第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据,综合考虑了各类着色器程序的时间复杂度和空间复杂度,从而尽可能准确的描述各计算单元被分配的实际负载情况,监测多个计算单元是否产生第二绘图任务并且针对图形流水线阶段可能产生的新任务,建立了线程负载重分配机制,在重新分发任务时,优先考虑向同一簇的节点分配,利用共享缓存,减少数据传输开销。本发明采用统一着色器架构的现代图形处理器,可均衡图形处理器各计算单元的负载,提高计算资源利用率,增加处理数据的实际带宽。
附图说明
22.图1为本发明实施例中线程负载均衡方法的一个实施例示意图;图2为本发明实施例中线程负载均衡方法的另一个实施例示意图;图3为本发明实施例中线程负载均衡装置的一个实施例示意图;图4为本发明实施例中线程负载均衡装置的另一个实施例示意图;图5为本发明实施例中线程负载均衡设备的一个实施例示意图;图6为本发明实施例中线程负载均衡硬件结构的一种实施例示意图;图7为本发明实施例中任务下发的一种实施例示意图;图8为本发明实施例中任务重分配的一种实施例示意图。
具体实施方式
23.本发明实施例提供了一种线程负载均衡方法、装置、设备及存储介质,用于实现负载分配均衡化以及提高计算资源的利用率。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中线程负载均衡方法的一个实施例包括:101、基于预置的图形处理器和预置的负载均衡策略构建全局调度器,其中,全局调度器包括多个第一调度器,每个第一调度器包括多个第二调度器,每个第二调度器包括多个计算单元;可以理解的是,本发明的执行主体可以为线程负载均衡装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
25.第一调度器用于分别计算多个第二调度器对应的负载数据;第二调度器用于分别
计算多个计算单元的任务分配,并分别配置多个计算单元待运行的着色器线程;以及获取多个计算单元的输入数据;以及记录多个计算单元在运行着色器线程的过程对应的时钟周期和数据量;全局调度器用于计算每种着色器线程的负载数据。
26.具体的,其中计算单元包含计算和存储模块,计算模块进行着色器线程的执行工作,存储模块用于指令和输入输出数据的缓存工作。全局调度器管理若干数量第一调度器,第一调度器管理若干数量第二调度器,第二调度器管理若干数量计算单元,这些数量可以是4、8、16、32等多种不同的实施方式。第一调度器、第二调度器、全局调度器均包含计算和存储模块,计算模块进行任务分发和负载统计工作,存储模块用于负载统计数据的缓存,如图6所示,图6为本实施例中线程负载均衡硬件结构的一种实施例示意图,其中,l0调度器为第二调度器,l1调度器为第一调度器。
27.102、通过全局调度器接收绘图指令并生成第一绘图任务,并将第一绘图任务下发至多个第一调度器和多个第二调度器;需要说明的是,第二调度器负责各个计算单元的任务分配,指定计算单元将要运行的着色器线程,并为其准备输入数据,计算单元每次执行完着色器线程,会通知第二调度器并返回输出数据到第二调度器存储模块。对于该计算单元执行的第i个着色器线程,第二调度器会记录其运行所消耗的时钟周期ti和数据量mi。
28.103、计算多个第一调度器和多个第二调度器的第一负载数据,并根据第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据;需要说明的是,负载数据计算公式如下:t
i = t
end - t
start
;m
i = m
input + m
output
;其中,t
start
表示下发任务时间,t
end
表示第二调度器接收到结果时间,m
input
表示着色器线程输入数据量,m
output
表示着色器线程输出数据量。第二调度器统计其管理的各个计算单元上运行过的每种着色器线程数量,以及时钟周期和数据量的平均值,第一调度器统计其管理的各个第二调度器下所有计算单元的负载情况;全局调度器为每种着色器线程计算出一个全局的时钟周期t和数据量m,一种具体实施算法如下公式;;其中,ti表示着色器线程第i次运行消耗的时钟周期,mi表示着色器线程第i次运行的数据量;n为项数,其值有多种不同的实施方式。本实施例中,如图7所示,图7为本实施例中任务重分配的一种实施例示意图,其中,ce表示计算单元,l0调度器表示第二调度器,l1调度器表示第一调度器。
29.104、根据第二负载数据配置多个计算单元待运行的着色器线程,并通过多个计算单元运行着色器线程,以及监测多个计算单元是否产生第二绘图任务;其中,预设任务分配条件为目标第二调度器节点负载不超过同层其他所有的第二调度器节点负载平均值的目标倍数,否则视为这个调度器节点簇相比其它同等数量的节点
簇超载严重。具体的,重新分发任务时,首先计算单元向所属第二调度器反馈新任务,第二调度器根据自身管理的计算单元总负载量判断是否满足分配条件。一种具体实施方式是,任务分配条件为该第二调度器节点负载不超过同层其它第二调度器节点负载平均值的β倍,否则视为这个调度器节点簇相比其它同等数量的节点簇超载严重。
30.105、若是,则按照预置的任务分配策略并通过多个第一调度器和多个第二调度器对第二绘图任务进行负载分配,得到负载分配结果。
31.具体的,各级调度器满足分配条件时,遵循平均分配原则,使得其管理的各个节点线程负载一致,最后更新调度器记录的线程负载。在一些实施例中,同一簇的计算单元或调度器节点具备共享缓存,减少传输开销。
32.本发明实施例中,基于预置的图形处理器和预置的负载均衡策略构建全局调度器,全局调度器将线程调度任务分层级管理,各级调度器分别对应gpu的多级缓存结构,可以减轻单一调度器计算负担,根据第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据,综合考虑了各类着色器程序的时间复杂度和空间复杂度,从而尽可能准确的描述各计算单元被分配的实际负载情况,监测多个计算单元是否产生第二绘图任务并且针对图形流水线阶段可能产生的新任务,建立了线程负载重分配机制,在重新分发任务时,优先考虑向同一簇的节点分配,利用共享缓存,减少数据传输开销。本发明采用统一着色器架构的现代图形处理器,可均衡图形处理器各计算单元的负载,提高计算资源利用率,增加处理数据的实际带宽。本实施例中,如图8所示,图8为本实施例中任务下发的一种实施例示意图,其中,ce表示计算单元,l0调度器表示第二调度器,l1调度器表示第一调度器。
33.请参阅图2,本发明实施例中线程负载均衡方法的另一个实施例包括:201、基于预置的图形处理器和预置的负载均衡策略构建全局调度器,其中,全局调度器包括多个第一调度器,每个第一调度器包括多个第二调度器,每个第二调度器包括多个计算单元;具体的,在本实施例中,步骤201的具体实施方式与上述步骤101类似,此处不再赘述。
34.202、通过全局调度器接收绘图指令并生成第一绘图任务,并将第一绘图任务下发至多个第一调度器和多个第二调度器;具体的,在本实施例中,步骤202的具体实施方式与上述步骤102类似,此处不再赘述。
35.203、计算多个第一调度器和多个第二调度器的第一负载数据,并根据第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据;具体的,计算多个第一调度器和多个第二调度器的第一负载数据,其中,第一负载数据用于指示多个第一调度器和多个第二调度器中的原始负载数据;获取多个第一调度器的第一调度器数量,以及获取每个第一调度器中的第二调度器数量;根据第一绘图任务、第一负载数据和第一调度器数量计算每个第一调度器的负载数据,并根据每个第一调度器的负载数据和每个第一调度器中的第二调度器数量计算每个第二调度器的负载数据;根据每个第一调度器的负载数据和每个第二调度器的负载数据生成第二负载数据。
36.其中,第二调度器统计其管理的各个计算单元上运行过的每种着色器线程数量,
以及时钟周期和数据量的平均值,一种具体实施算法如下公式;第一调度器统计其管理的各个第二调度器下所有计算单元的负载情况;全局调度器为每种着色器线程计算出一个全局的时钟周期t和数据量m。
37.,;其中,ti表示着色器线程第i次运行消耗的时钟周期,mi表示着色器线程第i次运行的数据量,n为项数,其值有多种不同的实施方式。
38.204、根据第二负载数据配置多个计算单元待运行的着色器线程,并通过多个计算单元运行着色器线程,以及监测多个计算单元是否产生第二绘图任务;205、若是,则获取产生第二绘图任务的目标计算单元,并确定目标计算单元所属的目标第二调度器;具体的,在服务器检测多个计算单元是否产生第二绘图任务时,服务器对该多个计算单元进行进程识别,确定对应的事件标识,进而服务器根据该事件标识确定该多个计算单元是否产生第二绘图任务,若是,则获取对应的目标计算单元,并确定相应的第二调度器。
39.206、获取目标第二调度器中所有计算单元的计算单元总负载数据,并根据计算单元总负载数据判断目标第二调度器是否满足第一任务分配条件,得到第一判断结果;具体的,第一任务分配条件包括:判断目标第二调度器的节点负载是否超过同层其他所有的第二调度器的节点负载平均值对应的目标倍数,若超过,则确定目标第二调度器的负载状态为超载。
40.需要说明的是,重新分发任务时,首先计算单元向所属第二调度器反馈新任务,第二调度器根据自身管理的计算单元总负载量判断是否满足分配条件。一种具体实施方式是,任务分配条件为该第二调度器节点负载不超过同层其它第二调度器节点负载平均值的β倍,其中,判断目标第二调度器的节点负载是否超过同层其他所有的第二调度器的节点负载平均值对应的目标倍数,若超过,则确定目标第二调度器的负载状态为超载。
41.207、根据第一判断结果和第二绘图任务对全局调度器进行负载分配,得到负载分配结果。
42.具体的,当第一判断结果为不满足时,确定目标第二调度器不满足第一任务分配条件,并将第二绘图任务反馈至目标第二调度器所属的目标第一调度器;获取目标第一调度器中所有第二调度器的第二调度器总负载数据,并通过第二调度器总负载数据判断目标第一调度器是否满足第二任务分配条件;若目标第一调度器不满足第二任务分配条件,则将第二绘图任务反馈至全局调度器,并通过全局调度器对第二绘图任务进行任务分配,得到负载分配结果。
43.需要说明的是,当第一判断结果为不满足时,确定目标第二调度器不满足第一任务分配条件,例如,其任务分配条件为:;其中,n为第一调度器节点簇下的第二调度器总量,β为比例因子,其值有多种不同的实施方式,其中,第二调度器不满足分配条件时,再向上一层第一调度器反馈新任务。同
理,第一调度器根据其总负载量判断是否满足分配条件,若不满足,会将任务反馈至全局调度器,由全局调度器自顶向下分配任务。
44.可选的,当多个计算单元运行着色器线程时,通过第二调度器计算着色器线程运行过程中所消耗的时钟周期和数据量;统计第二调度器中所有计算单元运行的每种着色器线程的数量,以及分别计算时钟周期和数据量对应的时钟周期平均值和数据量平均值;基于每种着色器线程的数量、时钟周期平均值和数据量平均值生成每种着色器线程的负载数据。
45.可选的,在第二调度器进行负载分配之后,获取每个第二调度器中所有计算单元对应的计算单元负载数据;根据计算单元负载数据获取每个第一调度器中所有第二调度器的调度器负载数据;根据调度器负载数据并通过全局调度器计算每种着色器线程的负载数据。
46.其中,着色器负载l
shader
通过对时钟周期t和数据量m加权平均得到,定义如下:l
shader = α* t + (1 - α) * m;α为权重因子,其值有多种不同的实施方式。第二调度器记录所管理的每个计算单元负载,在进行线程任务分配的时候,更新其负载。一种具体实施方式是,将分配到某个计算单元任务队列的着色器线程负载l
shader
累加到原有负载值上。
47.l
ce = l
ce
’ꢀ
+ l
shader
;第二调度器进行线程任务分配之后,逐层向上反馈并更新负载情况,即每个第二调度器统计其管理的计算单元负载情况l
ce
,每个第一调度器统计其管理的第二调度器负载情况,全局调度器根据各个第一调度器计算出每种着色器线程负载。
48.本发明实施例中,基于预置的图形处理器和预置的负载均衡策略构建全局调度器,全局调度器将线程调度任务分层级管理,各级调度器分别对应gpu的多级缓存结构,可以减轻单一调度器计算负担,根据第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据,综合考虑了各类着色器程序的时间复杂度和空间复杂度,从而尽可能准确的描述各计算单元被分配的实际负载情况,监测多个计算单元是否产生第二绘图任务并且针对图形流水线阶段可能产生的新任务,建立了线程负载重分配机制,在重新分发任务时,优先考虑向同一簇的节点分配,利用共享缓存,减少数据传输开销。本发明采用统一着色器架构的现代图形处理器,可均衡图形处理器各计算单元的负载,提高计算资源利用率,增加处理数据的实际带宽。
49.上面对本发明实施例中线程负载均衡方法进行了描述,下面对本发明实施例中线程负载均衡装置进行描述,请参阅图3,本发明实施例中线程负载均衡装置一个实施例包括:构建模块301,用于基于预置的图形处理器和预置的负载均衡策略构建全局调度器,其中,所述全局调度器包括多个第一调度器,每个第一调度器包括多个第二调度器,每个第二调度器包括多个计算单元;处理模块302,用于通过所述全局调度器接收绘图指令并生成第一绘图任务,并将所述第一绘图任务下发至所述多个第一调度器和所述多个第二调度器;更新模块303,用于计算所述多个第一调度器和所述多个第二调度器的第一负载数据,并根据所述第一负载数据对所述第一绘图任务进行逐级平均分配和负载数据更新,
得到第二负载数据;配置模块304,用于根据所述第二负载数据配置所述多个计算单元待运行的着色器线程,并通过所述多个计算单元运行所述着色器线程,以及监测所述多个计算单元是否产生第二绘图任务;分配模块305,用于若是,则按照预置的任务分配策略并通过所述多个第一调度器和所述多个第二调度器对所述第二绘图任务进行负载分配,得到负载分配结果。
50.本发明实施例中,基于预置的图形处理器和预置的负载均衡策略构建全局调度器,全局调度器将线程调度任务分层级管理,各级调度器分别对应gpu的多级缓存结构,可以减轻单一调度器计算负担,根据所述第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据,综合考虑了各类着色器程序的时间复杂度和空间复杂度,从而尽可能准确的描述各计算单元被分配的实际负载情况,监测多个计算单元是否产生第二绘图任务并且针对图形流水线阶段可能产生的新任务,建立了线程负载重分配机制,在重新分发任务时,优先考虑向同一簇的节点分配,利用共享缓存,减少数据传输开销。本发明采用统一着色器架构的现代图形处理器,可均衡图形处理器各计算单元的负载,提高计算资源利用率,增加处理数据的实际带宽。
51.请参阅图4,本发明实施例中线程负载均衡装置另一个实施例包括:构建模块301,用于基于预置的图形处理器和预置的负载均衡策略构建全局调度器,其中,所述全局调度器包括多个第一调度器,每个第一调度器包括多个第二调度器,每个第二调度器包括多个计算单元;处理模块302,用于通过所述全局调度器接收绘图指令并生成第一绘图任务,并将所述第一绘图任务下发至所述多个第一调度器和所述多个第二调度器;更新模块303,用于计算所述多个第一调度器和所述多个第二调度器的第一负载数据,并根据所述第一负载数据对所述第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据;配置模块304,用于根据所述第二负载数据配置所述多个计算单元待运行的着色器线程,并通过所述多个计算单元运行所述着色器线程,以及监测所述多个计算单元是否产生第二绘图任务;分配模块305,用于若是,则按照预置的任务分配策略并通过所述多个第一调度器和所述多个第二调度器对所述第二绘图任务进行负载分配,得到负载分配结果。
52.可选的,所述更新模块303具体用于:计算所述多个第一调度器和所述多个第二调度器的第一负载数据,其中,所述第一负载数据用于指示所述多个第一调度器和所述多个第二调度器中的原始负载数据;获取所述多个第一调度器的第一调度器数量,以及获取每个第一调度器中的第二调度器数量;根据所述第一绘图任务、所述第一负载数据和所述第一调度器数量计算每个第一调度器的负载数据,并根据每个第一调度器的负载数据和每个第一调度器中的第二调度器数量计算每个第二调度器的负载数据;根据每个第一调度器的负载数据和每个第二调度器的负载数据生成第二负载数据。
53.可选的,所述分配模块305还包括:获取单元,用于若是,则获取产生所述第二绘图任务的目标计算单元,并确定所述
目标计算单元所属的目标第二调度器;计算单元,用于获取所述目标第二调度器中所有计算单元的计算单元总负载数据,并根据所述计算单元总负载数据判断所述目标第二调度器是否满足第一任务分配条件,得到第一判断结果;分配单元,用于根据所述第一判断结果和所述第二绘图任务对所述全局调度器进行负载分配,得到负载分配结果。
54.可选的,所述分配单元具体用于:当所述第一判断结果为不满足时,确定所述目标第二调度器不满足第一任务分配条件,并将所述第二绘图任务反馈至所述目标第二调度器所属的目标第一调度器;获取所述目标第一调度器中所有第二调度器的第二调度器总负载数据,并通过所述第二调度器总负载数据判断所述目标第一调度器是否满足第二任务分配条件;若所述目标第一调度器不满足第二任务分配条件,则将所述第二绘图任务反馈至所述全局调度器,并通过所述全局调度器对所述第二绘图任务进行任务分配,得到负载分配结果。
55.可选的,所述第一任务分配条件包括:判断所述目标第二调度器的节点负载是否超过同层其他所有的第二调度器的节点负载平均值对应的目标倍数,若超过,则确定所述目标第二调度器的负载状态为超载。
56.可选的,所述线程负载均衡装置还包括:生成模块306,用于当所述多个计算单元运行所述着色器线程时,通过所述第二调度器计算所述着色器线程运行过程中所消耗的时钟周期和数据量;统计所述第二调度器中所有计算单元运行的每种着色器线程的数量,以及分别计算所述时钟周期和所述数据量对应的时钟周期平均值和数据量平均值;基于所述每种着色器线程的数量、所述时钟周期平均值和所述数据量平均值生成每种着色器线程的负载数据。
57.可选的,所述线程负载均衡装置还包括:分析模块307,用于在所述第二调度器进行负载分配之后,获取每个第二调度器中所有计算单元对应的计算单元负载数据;根据所述计算单元负载数据获取每个第一调度器中所有第二调度器的调度器负载数据;根据调度器负载数据并通过所述全局调度器计算每种着色器线程的负载数据。
58.本发明实施例中,基于预置的图形处理器和预置的负载均衡策略构建全局调度器,全局调度器将线程调度任务分层级管理,各级调度器分别对应gpu的多级缓存结构,可以减轻单一调度器计算负担,根据所述第一负载数据对第一绘图任务进行逐级平均分配和负载数据更新,得到第二负载数据,综合考虑了各类着色器程序的时间复杂度和空间复杂度,从而尽可能准确的描述各计算单元被分配的实际负载情况,监测多个计算单元是否产生第二绘图任务并且针对图形流水线阶段可能产生的新任务,建立了线程负载重分配机制,在重新分发任务时,优先考虑向同一簇的节点分配,利用共享缓存,减少数据传输开销。本发明采用统一着色器架构的现代图形处理器,可均衡图形处理器各计算单元的负载,提高计算资源利用率,增加处理数据的实际带宽。
59.上面图3和图4从模块化功能实体的角度对本发明实施例中的线程负载均衡装置进行详细描述,下面从硬件处理的角度对本发明实施例中线程负载均衡设备进行详细描述。
60.图5是本发明实施例提供的一种线程负载均衡设备的结构示意图,该线程负载均衡设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(ntral prossing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对线程负载均衡设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在线程负载均衡设备500上执行存储介质530中的一系列指令操作。
61.线程负载均衡设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的线程负载均衡设备结构并不构成对线程负载均衡设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
62.本发明还提供一种线程负载均衡设备,所述线程负载均衡设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述线程负载均衡方法的步骤。
63.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述线程负载均衡方法的步骤。
64.进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
65.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
66.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
67.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random acss memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
68.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前
述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1