一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图形处理器资源的调度方法、装置及计算机设备与流程

2022-05-18 03:53:25 来源:中国专利 TAG:


1.本发明涉及信息技术领域,尤其是涉及一种图形处理器资源的调度方法、装置及计算机设备。


背景技术:

2.随着gpu(graphics processing unit,图形处理器)的发展,gpu内存越来越大,一个硬件环境中也可以有多个gpu同时运行,由此导致gpu可以处理更多的数据,甚至一整套算法都可以在gpu上运行。
3.目前,通常在硬件环境中预先指定软件算法对应的图形处理器,并在指定的图形处理器中运行该软件算法。然而,这种方式,无法使软件算法自动适应硬件环境,在资源不足的情况下,无法保证该软件算法或者其他软件算法正常运行,即使在资源充足的情况下,也无法保证软件算法能够最大限度地利用资源,高效执行。


技术实现要素:

4.本发明提供了一种图形处理器资源的调度方法、装置及计算机设备,主要在于能够使软件算法自动适配硬件环境,从而能够保证软件算法最大限度地利用图形处理器资源,高效地运行。
5.根据本发明的第一个方面,提供一种图形处理器资源的调度方法,包括:
6.获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;
7.基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;
8.基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;
9.基于所述可用的图形处理器,运行所述待运行软件。
10.根据本发明的第二个方面,提供一种图形处理器资源的调度装置,包括:
11.获取单元,用于获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;
12.预留单元,用于基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;
13.确定单元,用于基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;
14.运行单元,用于基于所述可用的图形处理器,运行所述待运行软件。
15.根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
16.获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器
对应的数量信息和内存信息;
17.基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;
18.基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;
19.基于所述可用的图形处理器,运行所述待运行软件。
20.根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
21.获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;
22.基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;
23.基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;
24.基于所述可用的图形处理器,运行所述待运行软件。
25.本发明提供的一种图形处理器资源的调度方法、装置及计算机设备,与目前在预先指定的图形处理器中运行软件算法的方式相比,本发明能够获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;并基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;与此同时,基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;最终基于所述可用的图形处理器,运行所述待运行软件,由此通过对当前硬件环境中的图形处理器资源进行调度,能够在资源不足的情况下,保证待运行软件和运行优先级较高的目标软件正常运行,在资源充足的情况下,能够保证待运行软件最大限度地利用资源,高效执行,从而达到使待运行软件自动适配硬件环境的目的。
附图说明
26.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
27.图1示出了本发明实施例提供的一种图形处理器资源的调度方法流程图;
28.图2示出了本发明实施例提供的另一种图形处理器资源的调度方法流程图;
29.图3示出了本发明实施例提供的一种图形处理器资源的调度装置的结构示意图;
30.图4示出了本发明实施例提供的另一种图形处理器资源的调度装置的结构示意图;
31.图5示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
32.下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
33.目前,由于软件算法无法自动适应硬件环境,因此在资源不足的情况下,无法保证该软件算法或者其他软件算法正常运行,即使在资源充足的情况下,不能保证软件算法充分利用资源,高效执行。
34.为了解决上述问题,本发明实施例提供了一种图形处理器资源的调度方法,如图1所示,所述方法包括:
35.101、获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息。
36.其中,基本图形处理器内存可以通过待运行软件的参数配置文件获取,硬件环境中图形处理器对应的数量信息和内存信息可以通过命令语句获取。为了克服现有技术中无法使软件算法自动适配硬件环境的问题,本发明实施例通过为运行优先级高于待运行软件的目标软件预留出相应的图形处理器,并确定硬件环境中待运行软件可用的图形处理器,能够基于该可用的图形处理器进行资源调配,完成待运行软件的运行,从而达到使软件算法自动适配硬件环境的目的,进而在资源不足的情况下,能够保证待运行软件和其他软件的正常运行,在资源充足的情况下,能够保证待运行软件最大限度地利用资源,高效执行。本发明实施例主要应用于为待运行软件调度图形处理器资源的场景。本发明实施例的执行主体为能够对图形处理器资源进行调度的装置或者设备。
37.对于本发明实施例,待运行软件可以自动检测当前硬件环境中是否存在独立的图形处理器(gpu),如果存在独立的图形处理器,则进一步检测当前硬件环境中具体有几块独立的图形处理器,每块图形处理器对应的型号信息、内存大小和当前可以用的内存空间,与此同时,待运行软件还会自动检测当前硬件环境中中央处理器(cpu)的类型,中央处理器的类型具体包括对称多处理器系统和非对称多处理器系统等,对称多处理器系统包括超线程系统和非一致的内存结构系统等。由此能够获取当前硬件环境中图形处理器对应的数量信息、型号信息、内存大小、性能指标和当前可用的内存空间,以及中央处理器对应的类型,以便基于上述信息对待运行软件进行资源调度。除此之外,通过待运行软件对应的配置文件能够获取待运行软件所需的基本图形处理器内存,需要说明的是,上述获取方式并不局限于配置文件,也可以通过程序计算获得。
38.102、基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器。
39.对于本发明实施例,获取当前需要使用图形处理器资源的所有软件,并判定这些软件中是否存在运行优先级高于待运行软件的目标软件,如果存在目标软件,则需要为目标软件预留目标图形处理器;如果不存在目标软件,则不需要预留目标图形处理器,可以直接利用当前硬件环境中的图形处理器运行待运行软件,在判定是否存在运行优先级更高的目标软件时,如果待运行软件与当前需要使用图形处理器资源的某软件在功能上没有相关性,则可以通过待运行软件和该软件分别对应的参数配置文件,确定待运行软件与该软件的运行优先级,进而判定该软件是否为运行优先级更高的目标软件;如果待运行软件与当前需要使用图形处理器资源的某软件在功能上具有相关性,则可以通过待运行软件对应的参数配置文件,判定该软件的运行优先级是否高于待运行软件的运行优先级,也可以直接通过代码判定该软件的运行优先级是否高于待运行软件的运行优先级,由此按照上述方式能够找出当前需要使用图形处理器资源,且运行优先级高于待运行软件的目标软件。
40.进一步地,通过目标软件对应的参数配置文件,获取目标软件运行所需要的基本图形处理器内存和算法需求,如果当前硬件环境中仅存在一个图形处理器,则判定该图形处理器对应的型号信息是否满足目标软件对应的算法需求,如果满足目标软件的算法需求,则再进一步判定该图形处理器当前的可用内存空间是否大于或者等于目标软件运行所需的基本图形处理器内存,如果当前的可用内存空间大于或者等于关于该基本图形处理器内存,则根据目标软件运行所需的基本图形处理器内存,确定目标软件在该图形处理器中的预留内存。
41.在具体应用场景中,如果当前硬件环境中至少存在两个图形处理器,且至少两个图形处理器均为图形处理器对,则从图形处理器对中筛选出同时满足目标软件算法需求和内存需求的图形处理器对(目标图形处理器),为目标软件进行预留,如果当前硬件环境中至少存在两个图形处理器,且至少两个图形处理器均为单个出现的图形处理器,则从单个出现的图形处理器中筛选出同时满足目标软件算法需求和内存需求的图形处理器(目标图形处理器),为目标软件进行预留,如果当前硬件环境中既存在图形处理器对,也存在单个出现的图形处理器,则当图形处理器对满足目标软件的算法需求和内存需求时,为目标软件预留图形处理器对;当单个出现的图形处理器满足目标软件的算法需求和内存需求时,为目标软件预留单个出现的图形处理器,具体筛选时,可以从单个出现的图形处理器和图形处理器对中选择与目标软件匹配度最高的单个图形处理器或者图形处理器对,为目标软件进行预留,但是尽可能避免为目标软件预留图形处理器对中的一个图形处理器。针对为目标软件预留目标图形处理器的具体过程,见步骤202和203。
42.103、基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器。
43.对于本发明实施例,根据当前硬件环境中存在的图形处理器及其对应的内存信息,以及预留的目标图形处理器及其对应的预留空间,确定当前硬件环境中空闲可用的图形处理器及其对应的空闲可用内存,进一步地,从空闲的图形处理器中筛选出满足待运行软件算法需求的目标空闲图形处理器,当存在多个空闲可用的图形处理器时,如果多个空闲可用的图形处理器在联合使用时满足待运行软件的算法需求,则确定多个空闲可用的图形处理器为待运行软件可用的图形处理器;如果多个空闲可用的图形处理器无法满足待运行软件的算法需求,则可以直接使用中央处理器cpu运行待运行软件。针对确定待运行软件可用的图形处理器的具体过程见步骤204。
44.需要说明的是,如果硬件环境中的某个图形处理器为目标软件预留,或者被其他正在运行的软件占用,但是该图形处理器中还存在空闲内存,那么只要目标软件或者其他正在运行的软件没有要求单独占用该图形处理器,且该图形处理器能够满足待运行软件的算法要求,同时能够保证总空闲内存满足待运行软件的内存需求,则该图形处理器对于待运行软件来说也是可用的图形处理器,但是具体在为待运行软件进行资源调度的过程中,会为其优先调度没有被其他软件占用或者预留的可用图形处理器资源。
45.104、基于所述可用的图形处理器,运行所述待运行软件。
46.对于本发明实施例,如果当前硬件环境中没有独立的图形处理器资源,则直接利用中央处理器cpu运行待运行的软件;如果当前硬件环境中仅存在一个图形处理器,且该图形处理器同时满足目标软件和待运行软件的算法需求和内存需求,即该图形处理器可同时
运行目标软件和待运行软件,其对于待运行软件来说是可用的,则此时可以采用多流算法或者单流算法,调用该图形处理器资源运行待运行软件,基于此,步骤104具体包括:若所述硬件环境中存在唯一的图形处理器,且所述唯一的图形处理器为所述待运行软件可用的图形处理器,则判定所述唯一的图形处理器是否满足所述待运行软件和所述目标软件共同运行的内存需求;若满足所述待运行软件和所述目标软件共同运行的内存需求,则在所述唯一的图形处理器中开辟多流或者单流,并基于所述多流或者所述单流,运行所述待运行软件和所述目标软件;若不满足所述待运行软件和所述目标软件共同运行的内存需求,则通过所述唯一的图形处理器和中央处理器协同作业的方式,运行所述待运行软件和所述目标软件。
47.具体地,如果当前运行环境中仅存在唯一的图形处理器,则可以在该图形处理器中为运行优先级更高的目标软件预留相应的内存,如果该图形处理器对应的型号信息不满足待运行软件的算法需求,或者该图形处理器对应的剩余可用内存小于图形处理器的基本图形处理器内存(最小内存需求),则直接利用中央处理器运行待运行软件,具体可以根据中央处理器对应的处理器数量和待运行软件的算法需求,开辟单个线程或者多个线程运行待运行软件,同时还可以适当调用opencv、mkl、ipp等库函数,或者使用openmp、avx、sse等方法进行加速;如果该图形处理器对应的型号信息满足待运行软件的算法需求,且该图形处理器对应的剩余可用内存大于或者等于基本图形处理器内存(最小内存需求),则确定该图形处理器对于待运行软件来说是可用的,即该图形处理器可以同时运行待运行软件和运行优先级较高的目标软件,在此基础上,可以在该图形处理器中开辟多流或者单流,基于开辟的多流或者单流运行待运行软件和目标软件。进一步地,如果该图形处理器不满足待运行软件和目标软件共同运行的内存需求,则说明该图形处理器的资源匮乏,需要采用图形处理器和中央处理器合作的方式运行待运行软件和目标软件,具体地,可以根据图形处理器可用内存的大小,以及待运行软件和目标软件的算法需求,将相应任务分配给图形处理器和中央处理器进行处理,在利用中央处理器执行任务时,可以考虑采用多线程的方式执行任务,具体需要先判定中央处理器是否支持多线程,如果中央处理器支持多线程,则需要进一步判定分配的算法任务是否支持多线程,如果支持的话,则可以采用多线程的方式。
48.在具体应用场景中,如果当前硬件环境中存在多个待运行软件可用的图形处理器,则可以对多个可用的图形处理器进行资源调度,完成待运行软件的运行,以实现在资源充足的情况下,最大限度地利用资源,高效运行软件算法的目的,具体在对多个可用的图形处理器进行调度的过程中,可以根据多个可用的图形处理器对应的类型信息,以相应的数据访问方式,完成待运行软件的运行,基于此,步骤104具体包括:若所述硬件环境中存在多个所述待运行软件可用的图形处理器,则判定多个所述可用的图形处理器是否为图形处理器对;若多个所述可用的图形处理器为图形处理器对,则以图形处理器对之间的交互访问方式,完成所述待运行软件的运行;若多个所述可用的图形处理器为单个出现的图形处理器,则以所述单个出现的图形处理器之间的交互访问方式,完成所述待运行软件的运行,或者以中央处理器作为中转站的交互方式,完成所述待运行软件的运行;若多个所述可用的图形处理器中既存在单个出现的图形处理器,又存在图形处理器对,则所述单个出现的图形处理器和所述图形处理器对分别以所述单个出现的图形处理器之间的交互访问方式和所述图形处理器对之间的交互访问方式,完成所述待运行软件的运行,或者以中央处理器
作为中转站的交互方式,完成所述待运行软件的运行。
49.具体地,如果多个可用的图形处理器型号相同,且相互之间具有相应的硬件连接线,形成图形处理器对,则在利用多个可用的图形处理器资源运行待运行软件时,可以以图形处理器对之间的交互访问方式,达到图形处理器之间内存相互访问的目的,进而完成对待运行软件的运行,此外,如果图形处理器对支持内存统一寻址,则在图形处理器内存相互访问的过程中,可用采用相应的命令语句进行数据拷贝;如果多个可用的图形处理器型号不同,且相互之间没有硬件连接线,即没有形成图形处理器对,为单个出现的图形处理器,则在利用多个可用的图形处理器资源运行待运行软件时,可以以单个出现的图形处理器之间的交互访问方式,完成待运行软件的运行,或者以中央处理器作为中转站的交互方式,实现图形处理器之间的数据交互,进而完成待运行软件的运行,此外,如果单个出现的图形处理器支持内存统一寻址,则在数据交互的过程中,可用采用相应的命令语句进行数据拷贝。
50.进一步地,如果多个可用的图形处理器均为单个出现的图形处理器,则在调度图形处理器资源运行待运行软件的过程中,从多个单个出现的图形处理器中挑选出一个性能优越的图形处理器,并利用性能优越的图形处理器完成主要算法任务,利用其它的图形处理器完成其它算法任务,这种任务分配的方式,能够最大限度地利用资源,高效执行。具体在挑选性能优越的图形处理器时,可以根据多个图形处理器分别对应的内存大小、计算能力(sm版本号)、sm(流处理器)数目等,从多个图形处理器中挑选出一个性能优越的图形处理器。
51.本发明实施例提供的一种图形处理器资源的调度方法,与目前在预先指定的图形处理器中运行软件算法的方式相比,本发明能够获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;并基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;与此同时,基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;最终基于所述可用的图形处理器,运行所述待运行软件,由此通过对当前硬件环境中的图形处理器资源进行调度,能够在资源不足的情况下,保证待运行软件和运行优先级较高的目标软件正常运行,在资源充足的情况下,能够保证待运行软件最大限度地利用资源,高效执行,从而达到使待运行软件自动适配硬件环境的目的。
52.进一步的,为了更好的说明上述对图形处理器资源的调度过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种图形处理器资源的调度方法,如图2所示,所述方法包括:
53.201、获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息。
54.对于本发明实施例,为了使待运行软件自动适配硬件环境,需要预先获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息、型号信息、内存大小、性能指标和当前可用的内存空间,上述信息的具体获取过程与步骤101完全相同,在此不再赘述。
55.202、若所述硬件环境中至少存在两个图形处理器,则判定所述至少两个图形处理器是否均为图形处理器对,根据判定结果和所述至少两个图形处理器分别对应的内存信
息,确定为所述目标软件预留的目标图形处理器及其对应的预留内存。
56.对应本发明实施例,在获取当前硬件环境对应的数量信息和内存信息后,需要为运行优先级高于待运行软件的目标软件预留目标图形处理器,具体在为目标软件预留图形处理器的过程中,如果硬件环境中存在至少两个图形处理器,则需要根据图形处理器在硬件环境中的出现形式,以相应的方式为目标软件预留目标图形处理器,基于此,步骤202具体包括:若所述至少两个图形处理器均为图形处理器对,则根据所述图形处理器对对应的内存信息,以及所述目标软件对应的内存需求和算法需求,为所述目标软件预留相应的图形处理器对,并确定预留的图形处理器对对应的预留内存;若所述至少两个图形处理器均为单个出现的图形处理器,则根据所述单个出现的图形处理器对应的内存信息,以及所述目标软件对应的内存需求和算法需求,为所述目标软件预留相应的单个出现的图形处理器,并确定预留的单个出现的图形处理器对应的预留内存;若所述至少两个图形处理器中既存在图形处理器对,又存在单个出现的图形处理器,则从所述成对出现的图形处理器中选择满足所述目标软件对应的算法需求和内存需求的任意一对图形处理器为所述目标软件进行预留,并根据所述目标软件对应的内存需求,确定所述任意一对图形处理器对应的预留内存,或者从单个出现的图形处理器中选择满足所述目标软件对应的算法需求和内存需求的任意一个图形处理器为所述目标软件进行预留,并根据所述目标软件对应的内存需求,确定所述任意一个图形处理器对应的预留内存。
57.具体地,在当前硬件环境中至少存在两个图形处理器的情况下,如果至少两个图形处理器对应的型号信息相同,且通过硬件连接线形成图形处理器对,则可以根据图形处理器对对应的内存信息和型号信息,以及目标软件对应的内存需求和算法需求,为目标软件预留满足其内存需求和算法需求的图形处理器对,即目标图形处理器,同时根据目标软件对应的内存需求,确定预留的目标处理器对应的预留内存,需要说明的是,如果硬件环境中的图形处理器均为图形处理器对,优先以图形处理器对整体为单位进行预留。
58.进一步地,如果至少两个图形处理器对应的型号信息不同,或者图形处理器之间没有通过硬件连接线连接,则说明硬件环境中均为单个出现的图形处理器,此时可以根据多个单个出现的图形处理器对应的内存信息和型号信息,以及目标软件对应的内存需求和算法需求,为目标软件预留满足其算法需求和内存需求的单个出现的图形处理器,即目标图形处理器,同时根据软件对应的内存需求,确定预留的目标图形处理器对应的预留内存。
59.进一步地,当前硬件环境中既存在图形处理器对,又存在单个出现的图形处理器时,则如果图形处理器对满足目标软件内存需求和算法需求,则为目标软件预留图形处理器对,并根据目标软件对应的内存需求,确定预留的图形处理器对对应的预留内存;如果单个出现的图形处理器满足目标软件内存需求和算法需求,则为目标软件预留单个图形处理器,并根据目标软件对应的内存需求,确定预留的单个出现的图形处理器对应的预留内存。需要说明是,在从图形处理器对和单个出现的图形处理器中选择满足目标软件算法需求和内存需求的目标图形处理器时,尽可能避免预留图形处理器对中的一个图形处理器,此外,为目标软件预留的目标图形处理器的数量可以一个、两个或者多个,具体需要根据目标软件对应的内存需求和算法需求、以及当前硬件环境中图形处理器对应的内存信息和型号信息确定。
60.203、若所述硬件环境中存在唯一的图形处理器,则将所述唯一的图形处理器确定
为预留的目标图形处理器,并根据所述目标软件的内存需求,确定所述目标图形处理器对应的预留内存。
61.对于本发明实施例,在为目标软件预留图形处理器的过程中,如果硬件环境中仅存在一个图形处理器,则需要判定唯一的图形处理器是否满足目标软件的内存需求和算法需求,如果唯一的图形处理器满足目标软件的内存需求和算法需求,则可以确定该唯一的图形处理器为预留的目标图形处理器,基于此,步骤203具体包括:判定所述唯一的图形处理器对应的型号信息是否满足所述目标软件的算法需求;若所述型号信息满足所述目标软件的算法需求,则判定所述唯一的图形处理器对应的内存信息是否满足所述目标软件的内存需求;若所述唯一的图形处理器对应的内存信息满足所述目标软件的内存需求,则确定所述唯一的图形处理器为预留的目标图形处理器,并根据所述目标软件的内存需求,确定所述目标图形处理器对应的预留内存。
62.具体地,首先根据唯一的图形处理器对应的型号信息,判定该唯一的图形处理器是否满足目标软件的算法需求;如果唯一的图形处理器不满足该目标软件的算法需求,则不为目标软件预留该图形处理器;如果唯一的图形处理器满足该目标软件的算法需求,则根据唯一的图形处理器对应的内存信息,进一步判定该唯一的图形处理器是否满足目标软件的内存需求;如果唯一的图形处理器不满足该目标软件的内存需求,则不为目标软件预留该图形处理器;如果唯一的图形处理器满足该目标软件的内存需求,则为目标软件预留该图形处理器,并根据目标软件对应的内存需求,确定该图形处理器对应的预留内存。由此按照上述方式,能够在硬件环境中仅存在一个图形处理器或者存在至少两个图形处理器的情况下,为目标软件预留相应的图形处理器,从而能够使待运行软件和其他软件同时运行,避免因为抢占图形处理器资源而使已经运行或者运行优先级更高的软件运行失败。
63.在具体应用场景中,如果硬件环境中不存在图像处理器,可以利用中央处理器运行目标软件和待运行软件,具体地,可以采用中央处理器的单线程方式或者多线程方式,运行目标软件和待运行处理器,为了进一步提高运行速度,还可以采用ipp、mkl库、sse、ave等方式进行加速。
64.204、基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器。
65.对于本发明实施例,在为目标软件预留相应的图形处理器之后,需要确定在当前硬件环境中待运行软件可用的图形处理器,针对确定可用的图形处理器的具体过程,作为一种可选实施方式,步骤204具体包括:根据所述预留的目标图形处理器及其对应的预留内存,确定所述当前硬件环境中空闲可用的图形处理器;若存在一个空闲可用的图形处理器,则判定所述空闲可用的图形处理器对应的空闲可用内存是否大于或者等于所述基本图形处理器内存;若大于或者等于所述基本图形处理器内存,则确定所述空闲可用的图形处理器为所述待运行软件可用的图形处理器,并将所述空闲可用的图形处理分别对应的空闲可用内存,确定为所述待运行软件可用的内存。若存在至少两个空闲可用的图形处理器,则判定所述至少两个空闲可用的图形处理在联合使用时是否满足所述待运行软件的算法需求;若满足所述待运行软件的算法需求,则将所述至少两个空闲可用的图形处理器,确定为所述待运行软件可用的图形处理器,并将所述至少两个空闲可用的图形处理分别对应的空闲可用内存,确定为所述待运行软件可用的内存。
66.具体地,首先根据预留的目标图形处理器及其对应的预留内存,确定当前硬件环境中空闲可用的图形处理器及其对应的空闲可用内存,如果当前硬件环境中仅存在一个空闲的图形处理器,则根据该空闲可用的图形处理器对应的型号信息,判定该空闲可用的图形处理器是否满足待运行软件的算法需求,如果满足待运行软件的算法需求,则进一步判定空闲可用的图形处理器对应的空闲可用内存是否大于或者等于待运行软件运行所需的基本图形处理器内存(最小内存需求),如果大于或者等于待运行软件所需的基本图形处理器内存,则说明该空闲可用的图形处理器对于待运行软件是可用的;如果小于待运行软件所需的基本图形处理器内存,则说明该空闲可用的图形处理器对于待运行软件是不可用的,此时需要利用中央处理器运行待运行软件。
67.进一步地,如果当前硬件环境中至少存在两个空闲图形处理器,则判定所述至少两个空闲可用的图形处理在联合使用时是否满足所述待运行软件的算法需求,如果不满足待运行软件的算法需求,则说明至少两个空闲可用的图形处理器对于待运行软件来说是不可用的,此时可以利用中央处理器运行待运行软件;如果满足待运行软件的算法需求,则将至少两个空闲可用的图形处理器,确定为待运行软件可用的图形处理器。
68.205、基于所述可用的图形处理器,运行所述待运行软件。
69.对于本发明实施例,如果当前硬件环境中仅存在一个图形处理器,且该图形处理器对于待运行软件是可用的,当图形处理器资源充足时,可以采用多流并行的方式,运行待运行软件和目标软件;当图形处理器资源不充足时,可以采用单流算法,在图形处理器上运行待运行软件和目标软件,或者采用图形处理器与中央处理器协同作业的方式,完成待运行软件和目标软件的运行。进一步地,如果当前硬件环境中至少两个可用的图形处理器,则可以根据至少两个可用的图形处理器对应的类型信息,以相应的数据访问方式,完成待运行软件的运行,上述调度可用的图形处理器资源的具体过程与步骤104完全相同,在此不再赘述。
70.本发明实施例提供的另一种图形处理器资源的调度方法,与目前在预先指定的图形处理器中运行软件算法的方式相比,本发明能够获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;并基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;与此同时,基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;最终基于所述可用的图形处理器,运行所述待运行软件,由此通过对当前硬件环境中的图形处理器资源进行调度,能够在资源不足的情况下,保证待运行软件和运行优先级较高的目标软件正常运行,在资源充足的情况下,能够保证待运行软件最大限度地利用资源,高效执行,从而达到使待运行软件自动适配硬件环境的目的。
71.进一步地,作为图1的具体实现,本发明实施例提供了一种图形处理器资源的调度装置,如图3所示,所述装置包括:获取单元31、预留单元32、确定单元33和运行单元34。
72.所述获取单元31,可以用于获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息。
73.所述预留单元32,可以用于基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器。
74.所述确定单元33,可以用于基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器。
75.所述运行单元34,可以用于基于所述可用的图形处理器,运行所述待运行软件。
76.在具体应用场景中,为了为优先级高于待运行软件的目标软件预留目标图形处理器,所述预留单元32,如图4所示,包括:第一判定模块321和第一确定模块322。
77.所述第一判定模块321,可以用于若所述硬件环境中至少存在两个图形处理器,则判定所述至少两个图形处理器是否均为图形处理器对,根据判定结果和所述至少两个图形处理器分别对应的内存信息,确定为所述目标软件预留的目标图形处理器及其对应的预留内存。
78.所述第一确定模块322,可以用于若所述硬件环境中存在唯一的图形处理器,则将所述唯一的图形处理器确定为预留的目标图形处理器,并根据所述目标软件的内存需求,确定所述目标图形处理器对应的预留内存。
79.在具体应用场景中,所述运行单元34,还可以用于若所述硬件环境中不存在图形处理器,则利用中央处理器运行所述目标软件和所述待运行软件。
80.进一步地,所述第一判定模块321,包括:第一预留子模块和第二预留子模块。
81.所述第一预留子模块,可以用于若所述至少两个图形处理器均为图形处理器对,则根据所述图形处理器对对应的内存信息,以及所述目标软件对应的内存需求和算法需求,为所述目标软件预留相应的图形处理器对,并确定预留的图形处理器对对应的预留内存。
82.所述第一预留子模块,还可以用于若所述至少两个图形处理器均为单个出现的图形处理器,则根据所述单个出现的图形处理器对应的内存信息,以及所述目标软件对应的内存需求和算法需求,为所述目标软件预留相应的单个出现的图形处理器,并确定预留的单个出现的图形处理器对应的预留内存。
83.所述第二预留子模块,可以用于若所述至少两个图形处理器中既存在成图形处理器对,又存在单个出现的图形处理器,则从所述图形处理器对中选择满足所述目标软件对应的算法需求和内存需求的任意一对图形处理器为所述目标软件进行预留,并根据所述目标软件对应的内存需求,确定所述任意一对图形处理器对应的预留内存,或者从单个出现的图形处理器中选择满足所述目标软件对应的算法需求和内存需求的任意一个图形处理器为所述目标软件进行预留,并根据所述目标软件对应的内存需求,确定所述任意一个图形处理器对应的预留内存。
84.进一步地,所述第一确定模块322,包括:第二判定子模块和确定子模块。
85.所述第二判定子模块,可以用于判定所述唯一的图形处理器对应的型号信息是否满足所述目标软件的算法需求。
86.所述第二判定子模块,还可以用于若所述型号信息满足所述目标软件的算法需求,则判定所述唯一的图形处理器对应的内存信息是否满足所述目标软件的内存需求。
87.所述确定子模块,可以用于若所述唯一的图形处理器对应的内存信息满足所述目标软件的内存需求,则确定所述唯一的图形处理器为预留的目标图形处理器,并根据所述目标软件的内存需求,确定所述目标图形处理器对应的预留内存。
88.在具体应用场景中,为了从当前硬件环境中确定待运行软件可用的图形处理器,
所述确定单元33,包括:第二确定模块331和第二判定模块332。
89.所述第二确定模块331,可以用于根据所述预留的目标图形处理器及其对应的预留内存,确定所述当前硬件环境中空闲可用的图形处理器。
90.所述第二判定模块332,可以用于若存在一个空闲可用的图形处理器,则判定所述空闲可用的图形处理器对应的空闲可用内存是否大于或者等于所述基本图形处理器内存。
91.所述第二确定模块331,还可以用于若所述空闲可用的图形处理器对应的空闲可用内存大于或者等于所述基本图形处理器内存,则确定所述空闲可用的图形处理器为所述待运行软件可用的图形处理器,并将所述空闲可用的图形处理分别对应的空闲可用内存,确定为所述待运行软件可用的内存。
92.所述第二判定模块332,还可以用于若存在至少两个空闲可用的图形处理器,则判定所述至少两个空闲可用的图形处理在联合使用时是否满足所述待运行软件的算法需求。
93.所述第二确定模块331,还可以用于若所述至少两个空闲可用的图形处理在联合使用时满足所述待运行软件的算法需求,则将所述至少两个空闲可用的图形处理器,确定为所述待运行软件可用的图形处理器,并将所述至少两个空闲可用的图形处理分别对应的空闲可用内存,确定为所述待运行软件可用的内存。
94.在具体应用场景中,所述运行单元34,包括:第三判定模块341和运行模块342。
95.所述第三判定模块341,可以用于若所述硬件环境中存在唯一的图形处理器,且所述唯一的图形处理器为所述待运行软件可用的图形处理器,则判定所述唯一的图形处理器是否满足所述待运行软件和所述目标软件共同运行的内存需求。
96.所述运行模块342,可以用于若满足所述待运行软件和所述目标软件共同运行的内存需求,则在所述唯一的图形处理器中开辟多流或者单流,并基于所述多流或者所述单流,运行所述待运行软件和所述目标软件。
97.所述运行模块342,还可以用于若不满足所述待运行软件和所述目标软件共同运行的内存需求,则通过所述唯一的图形处理器和中央处理器协同作业的方式,运行所述待运行软件和所述目标软件。
98.进一步地,所述第三判定模块341,还可以用于若所述硬件环境中存在多个所述待运行软件可用的图形处理器,则判定多个所述可用的图形处理器是否为图形处理器对。
99.所述运行模块342,还可以用于若多个所述可用的图形处理器为图形处理器对,则以图形处理器对之间的交互访问方式,完成所述待运行软件的运行。
100.所述运行模块342,还可以用于若多个所述可用的图形处理器为单个出现的图形处理器,则以所述单个出现的图形处理器之间的交互访问方式,完成所述待运行软件的运行,或者以中央处理器作为中转站的交互方式,完成所述待运行软件的运行。
101.所述运行模块342,还可以用于若多个所述可用的图形处理器中既存在单个出现的图形处理器,又存在图形处理器对,则所述单个出现的图形处理器和所述图形处理器对分别以所述单个出现的图形处理器之间的交互访问方式和所述图形处理器对之间的交互访问方式,完成所述待运行软件的运行,或者以中央处理器作为中转站的交互方式,完成所述待运行软件的运行。
102.需要说明的是,本发明实施例提供的一种图形处理器资源的调度装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
103.基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;基于所述可用的图形处理器,运行所述待运行软件。
104.基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图5所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现以下步骤:获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;基于所述可用的图形处理器,运行所述待运行软件。
105.通过本发明的技术方案,本发明能够获取待运行软件所需的基本图形处理器内存,以及当前硬件环境中的图形处理器对应的数量信息和内存信息;并基于所述图形处理器对应的数量信息和内存信息,为运行优先级高于所述待运行软件的目标软件预留目标图形处理器;与此同时,基于预留的目标图形处理器和所述基本图形处理器内存,从所述当前硬件环境中确定所述待运行软件可用的图形处理器;最终基于所述可用的图形处理器,运行所述待运行软件,由此通过对当前硬件环境中的图形处理器资源进行调度,能够在资源不足的情况下,保证待运行软件和运行优先级较高的目标软件正常运行,在资源充足的情况下,能够保证待运行软件最大限度地利用资源,高效执行,从而达到使待运行软件自动适配硬件环境的目的。
106.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
107.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献