CN115220921B - 资源调度方法及相关装置、图形处理器、摄像器件和介质 - Google Patents
资源调度方法及相关装置、图形处理器、摄像器件和介质 Download PDFInfo
- Publication number
- CN115220921B CN115220921B CN202211138733.2A CN202211138733A CN115220921B CN 115220921 B CN115220921 B CN 115220921B CN 202211138733 A CN202211138733 A CN 202211138733A CN 115220921 B CN115220921 B CN 115220921B
- Authority
- CN
- China
- Prior art keywords
- gpu
- task
- ext
- scheduled
- operator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种资源调度方法及相关装置、图形处理器、摄像器件和介质,其中,资源调度方法包括:响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲;其中,待调度GPU任务需提交至空闲的GPU流处理;基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量;基于总数量与图形处理器的最大并发运行数量,确定待调度GPU任务的调度策略;其中,调度策略包括以下任一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流。上述方案,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种资源调度方法及相关装置、图形处理器、摄像器件和介质。
背景技术
目前,图像数据处理时,各个算子对图像数据的智能处理(如,缩放、抠图)、神经网络的数据计算,以及一些其他高计算量的逻辑运行都会交由图形处理器(GraphicProcessing Unit,GPU)进行处理。
然而,现有的资源调度方式,各个算子提交GPU任务都是相互独立进行,缺乏对资源调度的整体把控,导致算法方案执行过程中对GPU资源的利用率不高,整体性能受限,特别是在算法方案较为复杂,所要处理的GPU任务较多时,数据处理效率严重不足,算法吞吐量急剧降低,远远无法达到硬件以及软件性能的理论值。有鉴于此,如何提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
发明内容
本申请主要解决的技术问题是提供一种资源调度方法及相关装置、图形处理器、摄像器件和介质,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
为了解决上述问题,本申请第一方面提供了一种资源调度方法,包括:响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲;其中,待调度GPU任务需提交至空闲的GPU流处理;基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量;基于总数量与图形处理器的最大并发运行数量,确定待调度GPU任务的调度策略;其中,调度策略包括以下任一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流。
为了解决上述问题,本申请第二方面提供了一种资源调度装置,包括:检测模块、统计模块和确定模块,检测模块,用于响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲;其中,待调度GPU任务需提交至空闲的GPU流处理;统计模块,用于基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量;确定模块,用于基于总数量与图形处理器的最大并发运行数量,确定待调度GPU任务的调度策略;其中,调度策略包括以下任一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流。
为了解决上述问题,本申请第三方面提供了一种图形处理器,包括GPU控制器、GPU管理器、GPU内存和若干GPU核,GPU管理器维护有GPU任务池和GPU资源池,GPU控制器用于执行程序指令以实现上述第一方面中的资源调度方法。
为了解决上述问题,本申请第四方面提供了一种摄像器件,包括相互耦接的摄像头和上述第三方面中的图形处理器,摄像头用于拍摄图像数据,图形处理器用于对图像数据进行任务生成、调度及处理。
为了解决上述问题,本申请第五方面提供了一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于上述第一方面中的资源调度方法。
上述方案,响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流是否分别空闲,且待调度GPU任务需提交至空闲的GPU流处理,再基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量,从而基于总数量与图形处理器的最大并发数量,确定调度GPU任务的调度策略,且调度策略包括以下一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流,一方面待调度GPU需提交至空闲的GPU流处理,能够尽可能避免由于随机调度而导致调度至忙碌的GPU流从而延长任务等待时长,另一方面在GPU资源池中各个GPU流均不空闲的情况下,通过GPU资源池中GPU流的总数量和图形处理器的最大并发数量,确定调度GPU任务的调度策略,能够充分利用图形处理器的并行计算能力,并尽可能地避免额外的资源浪费。故此,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
附图说明
图1是本申请资源调度方法一实施例的流程示意图;
图2是算子“图像分类”以神经网络VGG-A实现时一实施例的流水示意图;
图3是本申请资源调度装置一实施例的框架示意图;
图4是本申请图形处理器一实施例的框架示意图;
图5是本申请摄像器件一实施例的框架示意图;
图6是本申请计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请资源调度方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S11:响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲。
在一个实施场景中,GPU任务池用于存储算法方案中各个算子分别提交的待调度任务集合,且各个算子分别提交的待调度任务集合中均包含至少一个待调度GPU任务。例如,算法方案中可以包含3个算子,第一个算子提交的待调度任务集合中可以包含J个待调度GPU任务,第二个算子提交的待调度任务集合中可以包含K个待调度GPU任务,第三个算子提交的待调度任务结合中可以包含L个待调度GPU任务,其中,J、K、L的均为正整数。需要说明的是,上述举例仅仅是实际应用过程中一种可能实施方式,并不因此而限定算法方案和待调度任务集合的实际内容。此外,本公开实施例中GPU任务池等“池”可以以队列、堆栈等形式组织形成,在此对“池”的组织形式,不做限定。
在一个具体的实施场景中,算子既可以通过神经网络实现,也可以通过算子函数实现,还可以通过其他任何可实现一定功能的算法(如,程序等),在此对算子的实现方式不做限定。示例性地,对于“目标检测”功能的算子而言,可以通过诸如Faster RCNN等神经网络实现;或者,对于“边缘提取”功能的算子而言,可以通过诸如Canny、sobel等算子函数实现;或者,对于“颜色空间转换”功能的算子而言,可以通过诸如OpenCV中cvtColor程序实现。其他情况可以以此类推,在此不再一一举例。
在一个具体的实施场景中,算法方案实际包含的算子个数以及算子种类,可以根据实际情况进行设置,在此不做限定。示例性地,以实现“轨迹提取”的算法方案为例,其可以包括但不限于:“图像缩放”功能的算子、“目标检测”功能的算子、“目标跟踪”功能的算子等,在此不做限定。其他情况可以以此类推,在此不再一一举例。
在一个实施场景中,为了确保数据处理的准确性,算法方案需有序执行,具体地,算法方案中各个算子可以按照预设顺序排列,相应地,各个算子分别提交的待调度任务集合在GPU任务池中也按照上述预设顺序排列,且GPU任务池按照先入先出(First In FirstOut,FIFO)的原则调出任务。上述方式,GPU任务池用于存储算法方案中各个算子分别提交的待调度任务集合,算法方案中各个算子按照预设顺序排列,各个算子分别提交的待调度任务集合在GPU任务池中按照预设顺序排列,且GPU任务池按照先入先出的原则调出任务,从而在数据处理过程中,各个算子分别提交的待调度任务集合能够被有序调出,有利于提升数据处理的准确性。
在一个具体的实施场景中,仍以前述“轨迹提取”的算法方案为例,其可以包括但如下顺序排列的算子:“图像缩放”功能的算子、“目标检测”功能的算子、“目标跟踪”功能的算子,则相应地,GPU任务池中可以顺序存储有如下任务集合:算子“图像缩放”对应的待调度任务集合、算子“目标检测”对应的待调度任务集合、算子“目标跟踪”对应的待调度任务集合。其他情况可以以此类推,在此不再一一举例。
在一个具体的实施场景中,各个算子分别对应的待调度任务集合所包含的待调度GPU任务的具体数量,可以根据算子的实际情况进行设置,在此不做限定。示例性地,对于“图像缩放”功能的算子,通常仅需上采样/下采样即可实现,故算子“图像缩放”对应的待调度任务集合可以仅包含一个待调度GPU任务;或者,对于“目标检测”功能的算子,如其通过神经网络实现,通常包含卷积、池化等多层操作,则每层可以分别对应一个待调度GPU任务,具体可以参阅下述相关描述,在此暂不赘述。
在一个实施场景中,为了降低GPU任务调度开销,可以在新获取到图像数据时,基于为处理图像数据而预先部署的算法方案和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合,且算子任务映射集包括各个算子分别对应的GPU任务集。此外,如前所述,待调度任务集合包括至少一个待调度GPU任务。在此基础上,可以将算子的待调度任务集合,提交至GPU任务池。上述方式,响应于新获取到图像数据,基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合,并将算子的待调度任何集合,提交至GPU任务池,故通过在GPU内存中预存各个算子分别对应的GPU任务集,能够免去冗余的任务准备调度流程,从而有利于降低冗余开销,进而有助于提升调度效率。
在一个具体的实施场景中,算子对应的GPU任务集,可以根据算子的实际情况进行设置。示例性地,对于“图像缩放”功能的算子,通常仅需上采样/下采样即可实现,故算子“图像缩放”对应的GPU任务集可以仅包含一个上采样/下采样的GPU任务;或者,对于“图像分类”功能的算子,在其由神经网络VGG-A实现时,由于VGG-A包含多个顺序连接的网络层,故算子“图像分类”对应的GPU任务集可以包括但不限于以下多个GPU任务:第一个卷积层对应的GPU任务、第一个最大池化层对应的GPU任务、第二个卷积层对应的GPU任务、第二个最大池化层对应的GPU任务、第三个卷积层对应的GPU任务、第四个卷积层对应的GPU任务、第三个最大池化层对应的GPU任务、第五个卷积层对应的GPU任务、第六个卷积层对应的GPU任务、第四个最大池化层对应的GPU任务、第七个个卷积层对应的GPU任务、第八个卷积层对应的GPU任务、第五个最大池化层对应的GPU任务、第九个全连接层对应的GPU任务、第十个全连接层对应的GPU任务、第十一个全连接层对应的GPU任务。进一步地,对于实现“图像分类”的算法方案而言,由于在通过神经网络VGG-A实现“图像分类”之前,通常需要将图像数据缩放至神经网络VGG-A允许的输入尺寸(如,224*224),故该算法方案可以包括“图像缩放”的算子和“图像分类”的算子。其他情况可以以此类推,在此不再一一举例。
在一个具体的实施场景中,对于各个算子而言,可以预先获取其对应的GPU任务集,以基于各个算子分别对应的GPU任务集,获取算子任务映射集,并将其存储于GPU内存,以便后续数据处理时,直接从GPU内存中调用该算子任务映射集,从而能够免于每次数据处理时重新执行GPU任务准确调度过程。具体地,对于各个算子来说,可以先对算子进行图转换,得到表征算子处理过程的流水图,且流水图包括顺序连接的若干运算层。在此基础上,可以再为若干运算层分别分配GPU内核函数,得到算子对应的GPU任务集,且算子对应的GPU任务集在GPU内存中分配有存储空间。示例性地,以VGG-A为例,请结合参阅图2,图2是算子“图像分类”以神经网络VGG-A实现时一实施例的流水示意图。如图2所示,在算子“图像分类”以神经网络VGG-A实现时,表征其处理过程的流水图包含前述各层卷积层(Conv2d)、最大池化层(Maxpool)、全连接层(FC),此外,还包括激活层(ReLu)、丢弃层(DropOut)、归一化层(Softmax)等,在此不做限定。其中,图2中卷积层(Conv2d)前缀3*3表示卷积核的大小,卷积层(Conv2d)前缀(如,64、128、256、512)表示通道数,全连接层(FC)后缀(如,4096、1000)表示通道数,丢弃层(DropOut)中0.5表示丢弃比率,具体可以参阅VGG-A的技术细节,在此不再赘述。在此基础上,可以将每一适宜由GPU执行的网络层视为运算层,并为各个运算层分别分配GPU内核函数,从而得到由神经网络VGG-A实现算子“图像分类”时,其对应的GPU任务集,并在GPU内存中申请存储空间,用于存储算子“图像分类”对应的GPU任务集。其他情况可以以此类推,在此不再一一举例。GPU内核函数的具体含义,可以参阅诸如CUDA(ComputeUnified Device Architecture)核函数(即Kernel Function)等GPU内核的技术细节,在此不再赘述。上述方式,通过对算子进行图转换,得到表征算子处理流程的流水图,且流水图包括顺序连接的若干运算层,基于此再为若干运算层分别分配GPU内核函数,得到算子对应的GPU任务集,且算子对应的GPU任务集在GPU内存中分配有存储空间,故能够通过将算子图转换、算子选择、GPU内核函数的分配以及GPU内存的申请等流程固化,得到算子对应的GPU任务集,从而能够在后续数据处理时,直接从GPU内存中调用该算子任务映射集,从而能够免于每次数据处理时重新执行GPU任务准确调度过程,进而能够有助于提升任务调度效率。
在一个具体的实施场景中,如前所述,GPU内存中可以预先存储算子对应的GPU任务集,则在表征该算子处理过程的流水图中各运算层各层依次顺序连接的情况下,对于GPU任务集中第一个GPU任务而言,可以将其与新获取到的图像数据绑定作为其输入参数,得到第一个待调度GPU任务,对于GPU任务集中第二个GPU任务而言,可以将其与第一个待调度GPU任务的输出参数绑定作为其输入参数,得到第二待调度GPU任务,……,对于GPU任务集中第i个GPU任务而言,可以将其与第i-1个待调度GPU任务的输出参数绑定作为其输入参数,得到第i个待调度GPU任务,以此类推,从而将上述待调度GPU任务的集合,作为该算子对应的待调度任务集合。需要说明的是,本公开实施例中各个待调度GPU任务在调度过程中,享有相同优先级,且相互之间不存在依赖关系,流程上的依赖关系和优先级由上层算法调度各个待调度GPU任务,以及调度各个算子对应的待调度任务集合的顺序来保证。
在一个具体的实施场景中,在GPU内存中为算子固化对应的GPU任务集之后,若新获取到图像数据,则可以先检测算法方案中的算子是否首次使用,若是,则可以认为算法方案中的算子尚未经上述固化处理,则可以先为首次使用的算子创建对应的GPU任务集,具体创建过程可以参阅前述相关描述,在此不再赘述。在此基础上,可以基于新创建的GPU任务集更新算子任务映射集,从而可以执行前述“基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合”的步骤。相反地,若算法方案中的算子并非首次使用,则可以确定算子任务映射集中含有该算子对应的GPU任务集,从而可以直接执行前述“基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合”的步骤。上述方式,在生成算子对应的待调度任务集合之前,先检测算法方案中的算子是否首次使用,若是,则为首次使用的算子创建对应的GPU任务集,并基于新创建的GPU任务集更新算子任务映射集,从而能够在后续再次使用该首次使用的算子时,能够免于重新执行GPU任务准确调度过程,进而能够有助于提升任务调度效率。
在一个实施场景中,区别于前述方式,在对GPU任务调度开销的管理较为宽松的情况下,GPU内存中也可以不预先存储算子任务映射集。在此情况下,在每次新获取到图像数据时,可以重新执行GPU任务准确调度过程,具体地,可以先对算子进行图转换,得到表征算子处理过程的流水图,且流水图包括顺序连接的若干运算层,再为若干运算层分别分配GPU内核函数,得到算子对应的GPU任务集,基于此再基于为处理图像数据而预先部署的算法方案中的算子和算子对应的GPU任务集,生成算子的待调度任务集合,且待调度任务集合包括至少一个待调度GPU任务,从而可以将算子的待调度任务集合,提交至GPU任务池。具体过程可以参阅前述相关描述,在此不再赘述。
本公开实施例中,需要进一步说明的是,待调度GPU任务需提交至空闲的GPU流处理。空闲的GPU流可以理解为:GPU流上不存在尚在处理的GPU任务;或者,空闲的GPU流也可以理解为:GPU流上存在尚在处理的GPU任务但该GPU任务处理完成的预计剩余时长不大于预设时长(如,1秒、2秒等)。上述对于空闲的定义,仅仅是实际过程中几种可能的实施方式,并不因此而限定其具体含义。相应地,GPU资源池中还可以包含忙碌的GPU流,与“空闲”的定义相反地,在“空闲”定义为“GPU流上不存在尚在处理的GPU任务”时,忙碌的GPU流可以理解为:GPU流上存在尚在处理的GPU任务;或者,在“空闲”定义为“GPU流上存在尚在处理的GPU任务但该GPU任务处理完成的预计剩余时长不大于预设时长”时,忙碌的GPU流可以理解为:GPU流上存在尚在处理的GPU任务且该GPU任务处理完成的预计剩余时长大于预设时长。在“空闲”定义为其他情况时,可以以此类推确定“忙碌”的具体含义,在此不再一一举例。
在一个实施场景中,图形处理器可以包括GPU管理器,且该GPU管理器可以维护有GPU任务池和GPU资源池,GPU任务池的具体含义,可以参阅前述相关描述,在此不再赘述。GPU资源池用于管理各个GPU流,包括前述空闲的GPU和忙碌的GPU流。上述方式,图形处理器包括GPU管理器,GPU管理器维护有GPU任务池和GPU资源池,故图形处理器能够通过GPU管理器同时维护GPU任务池和GPU资源池,有助于提升GPU资源调度的有效性和可靠性。
在一个实施场景中,GPU资源池初始时,可以创建至少一条GPU流(如,一条GPU流、两条GPU流、三条GPU流、四条GPU流等)并将其置于GPU资源池,以供后续在执行任务调度时使用。需要说明的是,为了免于资源浪费,GPU资源池初始时,可以仅创建一条GPU流,在后续有需要时,可以再创建新的GPU流,在此不做限定。
在一个实施场景中,各个GPU流分配的实际硬件资源可以相同,也可以不同。示例性地,GPU资源池可以维护有两个GPU流,这两个GPU流各自分别分配的实际硬件资源可以均为M个(如,3个、4个等)GPU核;或者,其中一个GPU流分配的实际硬件资源可以为P个(如,1个、2个)GPU核,而另一个GPU流分配的实际硬件资源可以为Q个(如,5个、6个)GPU核,且P不等于Q。各个GPU流分配的实际硬件资源可以根据实际情况进行设置,在此不做限定。
需要说明的是,调出请求表征请求将待调度GPU任务从GPU任务池调出,以提交至GPU流上处理。在GPU任务池按照先进先出(FIFO)的原则调出任务时,调出请求所对应的待调度GPU任务此时处于GPU任务池的队首,示例性地,GPU任务池中此时从队首至队尾分别为:编号为“01”的待调度GPU任务、编号为“02”的待调度GPU任务、……、编号为“N”的待调度GPU任务,则此时可以响应于编号为“01”的待调度GPU任务的调出请求,执行本公开实施例检测GPU资源池中各个GPU流分别是否空闲的步骤以及后续步骤,在调出编号为“01”的待调度GPU任务之后,编号为“02”的待调度GPU任务此时位于队首,则可以继续响应于编号为“02”的待调度GPU任务的调出请求,执行本公开实施例检测GPU资源池中各个GPU流分别是否空闲的步骤以及后续步骤,以此类推,在此不再一一举例;类似地,在GPU任务池按照先进后出(FILO)的原则调出任务时,调出请求所对应的待调度GPU任务此时处于GPU任务池的队尾,示例性地,GPU任务池中此时从队尾至队首分别为:编号为“01”的待调度GPU任务、编号为“02”的待调度GPU任务、……、编号为“M”的待调度GPU任务,则此时可以响应于编号为“01”的待调度GPU任务的调出请求,执行检测GPU资源池中各个GPU流分别是否空闲的步骤,在调出编号为“01”的待调度GPU任务之后,编号为“02”的待调度GPU任务此时位于队尾,则可以继续响应于编号为“02”的待调度GPU任务的调出请求,执行本公开实施例检测GPU资源池中各个GPU流分别是否空闲的步骤以及后续步骤,以此类推,在此不再一一举例。其他情况可以以此类推,在此不再一一举例。
步骤S12:基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量。
具体地,在GPU资源池中各个GPU流均不空闲的情况下,可以统计GPU资源池中GPU流的总数量。此外,若GPU资源池中至少一个GPU流空闲,则可以将待调度任务提交至GPU资源池中任一空闲的GPU流。示例性地,在“空闲”定义为“GPU流上不存在尚在处理的GPU任务”的情况下,可以选择GPU资源池中任一个空闲的GPU流,并将待调度GPU任务提交到该GPU流上;或者,在“空闲”定义为“GPU流上存在尚在处理的GPU任务但该GPU任务处理完成的预计剩余时长不大于预设时长”的情况下,可以选择GPU资源池中预计剩余时长最短的GPU流,并将待调度GPU任务提交到该GPU流上,当然,此时也可以选择GPU资源池中其他GPU流,在此不做限定。其他情况可以以此类推,在此不再一一举例。上述方式,基于GPU资源池中至少一个GPU流空闲,将待调度GPU任务提交至GPU资源池中任一空闲的GPU流,故能够充分利用空闲的GPU流,有利于尽可能避免无效的资源浪费,提升资源利用率。
步骤S13:基于总数量与图形处理器的最大并发运行数量,确定待调度GPU任务的调度策略。
本公开实施例中,调度策略包括以下任一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流。需要说明的是,上述“等待GPU资源池出现空闲的GPU流”的具体含义是:等待GPU资源池中GPU流的状态从“忙碌”切换为“空闲”,即当GPU资源池中任一GPU流的状态从“忙碌”切换为“空闲”时,可以认为此时该GPU流可以处理新的GPU任务,则可以将待调度GPU任务提交至该GPU流。此外,图形处理器的最大并发运行数量,为图形处理器的硬件指标,其具体含义可以参阅图形处理器的技术细节,在此不再赘述。
在一个实施场景中,为了在图形处理器的支持范围内,尽可能地提升资源利用率,调度策略可以基于总数量是否低于最大并发运行数量的预设倍数来确定。需要说明的是,预设倍数可以根据实际情况进行设置,具体可以设置为正整数,如可以设置为1、2等,在此不做限定。上述方式,基于总数量是否低于最大并发运行数量的预设倍数来确定调度策略,能够在图形处理器的支持范围内,尽可能地提升资源利用率。
在一个具体的实施场景中,响应于总数量不低于最大并发运行数量的预设倍数,可以确定调度策略包括:等待GPU资源池出现空闲的GPU流。此时可以将待调度GPU任务提交到GPU资源池中最先出现的空闲的GPU流,即最先从“忙碌”切换为“空闲”的GPU流。上述方式,响应于总数量不低于最大并发运行数量的预设倍数,等待GPU资源池出现空闲的GPU流,能够在数据处理过程中尽可能地避免超出图形处理器的支持范围,有助于尽可能地提升资源利用率。
在一个具体的实施场景中,响应于总数量低于最大并发运行数量的预设倍数,可以确定调度策略包括:为待调度GPU任务在GPU资源池创建新的GPU流,以将待调度GPU任务提交到该新的GPU流。上述方式,响应于总数量低于最大并发运行数量的预设倍数,为待调度GPU任务在GPU资源池创建新的GPU流,能够在数据处理过程中充分利用图形处理器的硬件资源,有助于尽可能地提升资源利用率。
在一个实施场景中,区别于前述基于总数量是否低于最大并发运行数量的预设倍数来确定调度策略,还可以在确定调度策略之前,再统计GPU资源池中各个GPU流自创建至今的忙碌时长占比(或空闲时长占比),忙碌时长占比表征GPU流自创建至今状态为“忙碌”的时长在其自创建至今的总时长中的占比,类似地,空闲时长占比表征GPU流自创建至今状态为“空闲”的时长在其自创建至今的总时长中的占比。在此基础上,在GPU资源池中各个GPU流均不空闲的情况下,可以基于总数量是否低于最大并发运行数量的预设倍数,以及各个GPU流的忙碌时长占比(或空闲时长占比),确定待调度任务的调度策略。具体来说,若总数量低于最大并发运行数量的预设倍数,则可以如前所述为待调度GPU任务在GPU资源池创建新的GPU流;或者,若总数量不低于最大并发运行数量的预设倍数,则可以按照忙碌时长占比由低到高的顺序将各个GPU流进行排序,得到第一序列,或者按照空闲时长占比由高到低的顺序将各个GPU流进行排序,得到第二序列,基于此可以等待第一序列中前第一序位(如,前5位、前4位等)中最先出现空闲的GPU,并将待调度任务提交到该GPU流,或者,可以等待第二序列中前第二序位(如,前5位、前4位等)中最先出现空闲的GPU,并将待调度任务提交到该GPU流。上述方式,不仅能够在图形处理器的支持范围内,尽可能地提升资源利用率,还能够尽可能地平衡各GPU流。
在一个实施场景中,在又新获取到图像数据时,可以重新检测为处理图像数据而部署的算法方案中的算子是否首次使用,并在检测结果为是的情况下,为首次使用的算子创建对应的GPU任务集,并基于新创建的GPU任务集更新算子任务映射集,之后再基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合,并重新执行前述响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲的步骤以及后续步骤,反之,若上述检测结果为否,则可以直接基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合,并重新执行前述响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲的步骤以及后续步骤。以此类推,如此往复即可在每次新获取到图像数据时,均可通过上述过程,得到图像数据的处理结果。
需要说明的是,为了便于数据处理,可以预先设置AI开放平台,且AI开放平台可以预先设有程序指令,该程序执行运行可实现本申请资源调度方法公开实施例中步骤。此外,AI开放平台可以供AI工程师开发各种算子,如可以包括但不限于:“目标检测”功能的算子、“目标分割”功能的算子、“边缘提取”功能的算子、“图像缩放”功能的算子、“实例分割”功能的算子等。在此基础上,AI工程师可以基于预先开发的各种算子,在AI开放平台为目标设备(如,具备摄像头的智能手机、平板电脑、监控相机等摄像器件)部署算法方案,并在目标设备的算力较为富余的情况下,将上述程序指令发送至目标设备,以使目标设备运行该程序指令来调度GPU资源,以对拍摄的图像数据进行处理;或者,在目标设备的算力较为贫乏的情况下,目标设备也可以接入AI开放平台,从而将拍摄的图像数据发送至AI开放平台,以使AI开放平台运行该程序指令来调度GPU资源,以对接收的图像数据进行处理。
上述方案,响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流是否分别空闲,且待调度GPU任务需提交至空闲的GPU流处理,再基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量,从而基于总数量与图形处理器的最大并发数量,确定调度GPU任务的调度策略,且调度策略包括以下一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流,一方面待调度GPU需提交至空闲的GPU流处理,能够尽可能避免由于随机调度而导致调度至忙碌的GPU流从而延长任务等待时长,另一方面在GPU资源池中各个GPU流均不空闲的情况下,通过GPU资源池中GPU流的总数量和图形处理器的最大并发数量,确定调度GPU任务的调度策略,能够充分利用图形处理器的并行计算能力,并尽可能地避免额外的资源浪费。故此,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
请参阅图3,图3是本申请资源调度装置30一实施例的框架示意图。资源调度装置30包括:检测模块31、统计模块32和确定模块33,检测模块31,用于响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲;其中,待调度GPU任务需提交至空闲的GPU流处理;统计模块32,用于基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量;确定模块33,用于基于总数量与图形处理器的最大并发运行数量,确定待调度GPU任务的调度策略;其中,调度策略包括以下任一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流。
上述方案,响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流是否分别空闲,且待调度GPU任务需提交至空闲的GPU流处理,再基于GPU资源池中各个GPU流均不空闲,统计GPU资源池中GPU流的总数量,从而基于总数量与图形处理器的最大并发数量,确定调度GPU任务的调度策略,且调度策略包括以下一者:为待调度GPU任务在GPU资源池创建新的GPU流,等待GPU资源池出现空闲的GPU流,一方面待调度GPU需提交至空闲的GPU流处理,能够尽可能避免由于随机调度而导致调度至忙碌的GPU流从而延长任务等待时长,另一方面在GPU资源池中各个GPU流均不空闲的情况下,通过GPU资源池中GPU流的总数量和图形处理器的最大并发数量,确定调度GPU任务的调度策略,能够充分利用图形处理器的并行计算能力,并尽可能地避免额外的资源浪费。故此,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
在一些公开实施例中,调度策略基于总数量是否低于最大并发运行数量的预设倍数来确定。
因此,基于总数量是否低于最大并发运行数量的预设倍数来确定调度策略,能够在图形处理器的支持范围内,尽可能地提升资源利用率。
在一些公开实施例中,确定模块33包括第一确定子模块,用于响应于总数量不低于最大并发运行数量的预设倍数,确定调度策略包括:等待GPU资源池出现空闲的GPU流;确定模块33包括第二确定子模块,用于响应于总数量低于最大并发运行数量的预设倍数,确定调度策略包括:为待调度GPU任务在GPU资源池创建新的GPU流。
因此,响应于总数量不低于最大并发运行数量的预设倍数,等待GPU资源池出现空闲的GPU流,能够在数据处理过程中尽可能地避免超出图形处理器的支持范围,有助于尽可能地提升资源利用率;而响应于总数量低于最大并发运行数量的预设倍数,为待调度GPU任务在GPU资源池创建新的GPU流,能够在数据处理过程中充分利用图形处理器的硬件资源,有助于尽可能地提升资源利用率。
在一些公开实施例中,资源调度装置30包括调度模块,用于基于GPU资源池中至少一个GPU流空闲,将待调度GPU任务提交至GPU资源池中任一空闲的GPU流。
因此,基于GPU资源池中至少一个GPU流空闲,将待调度GPU任务提交至GPU资源池中任一空闲的GPU流,故能够充分利用空闲的GPU流,有利于尽可能避免无效的资源浪费,提升资源利用率。
在一些公开实施例中,GPU任务池用于存储算法方案中各个算子分别提交的待调度任务集合,算法方案中各个算子按照预设顺序排列,各个算子分别提交的待调度任务集合在GPU任务池中按照预设顺序排列,且GPU任务池按照先入先出的原则调出任务。
因此,GPU任务池用于存储算法方案中各个算子分别提交的待调度任务集合,算法方案中各个算子按照预设顺序排列,各个算子分别提交的待调度任务集合在GPU任务池中按照预设顺序排列,且GPU任务池按照先入先出的原则调出任务,从而在数据处理过程中,各个算子分别提交的待调度任务集合能够被有序调出,有利于提升数据处理的准确性。
在一些公开实施例中,图形处理器包括GPU管理器,GPU管理器维护有GPU任务池和GPU资源池。
因此,图形处理器包括GPU管理器,GPU管理器维护有GPU任务池和GPU资源池,故图形处理器能够通过GPU管理器同时维护GPU任务池和GPU资源池,有助于提升GPU资源调度的有效性和可靠性。
在一些公开实施例中,资源调度装置30包括生成模块,用于响应于新获取到图像数据,基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合;其中,算子任务映射集包括:各个算子分别对应的GPU任务集,且待调度任务集合包括至少一个待调度GPU任务;资源调度装置30包括提交模块,用于将算子的待调度任务集合,提交至GPU任务池。
因此,响应于新获取到图像数据,基于为处理图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成算子的待调度任务集合,并将算子的待调度任何集合,提交至GPU任务池,故通过在GPU内存中预存各个算子分别对应的GPU任务集,能够免去冗余的任务准备调度流程,从而有利于降低冗余开销,进而有助于提升调度效率。
在一些公开实施例中,资源调度装置30包括转换模块,用于对算子进行图转换,得到表征算子处理过程的流水图;其中,流水图包括顺序连接的若干运算层;资源调度装置30包括分配模块,用于为若干运算层分别分配GPU内核函数,得到算子对应的GPU任务集;其中,算子对应的GPU任务集在GPU内存中分配有存储空间。
因此,通过对算子进行图转换,得到表征算子处理流程的流水图,且流水图包括顺序连接的若干运算层,基于此再为若干运算层分别分配GPU内核函数,得到算子对应的GPU任务集,且算子对应的GPU任务集在GPU内存中分配有存储空间,故能够通过将算子图转换、算子选择、GPU内核函数的分配以及GPU内存的申请等流程固化,得到算子对应的GPU任务集,从而能够在后续数据处理时,直接从GPU内存中调用该算子任务映射集,从而能够免于每次数据处理时重新执行GPU任务准确调度过程,进而能够有助于提升任务调度效率。
在一些公开实施例中,检测模块31还用于检测算法方案中的算子是否首次使用;资源调度装置30包括创建模块,用于在检测算法方案中的算子首次使用的情况下,为首次使用的算子创建对应的GPU任务集;资源调度装置30包括更新模块,用于基于新创建的GPU任务集更新算子任务映射集。
因此,在生成算子对应的待调度任务集合之前,先检测算法方案中的算子是否首次使用,若是,则为首次使用的算子创建对应的GPU任务集,并基于新创建的GPU任务集更新算子任务映射集,从而能够在后续再次使用该首次使用的算子时,能够免于重新执行GPU任务准确调度过程,进而能够有助于提升任务调度效率。
请参阅图4,图4是本申请图形处理器40一实施例的框架示意图。图形处理器40包括GPU控制器41、GPU管理器42、GPU内存43和若干GPU核44,GPU管理器42维护有GPU任务池(未图示)和GPU资源池(未图示),GPU控制器41用于执行程序指令以实现上述方法公开实施例中步骤。需要说明的是,可以对若干GPU核进行资源划分,以创建GPU流,具体可以参阅前述公开实施例中相关描述,在此不再赘述。此外,如图5所示,GPU控制器41、GPU管理器42、GPU内存43和若干GPU核44可以通过总线实现耦接。
具体而言,GPU控制器41用于控制其自身以及GPU管理器42、GPU内存43和若干GPU核44以实现上述任一方法实施例中的步骤。GPU控制器41可能是一种集成电路芯片,具有信号的处理能力。GPU控制器41还可以包括但不限于:数字信号处理器(Digital SignalProcessor, DSP)、专用集成电路(Application Specific Integrated Circuit, ASIC)、现场可编程门阵列(Field-Programmable Gate Array, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
上述方案,一方面待调度GPU需提交至空闲的GPU流处理,能够尽可能避免由于随机调度而导致调度至忙碌的GPU流从而延长任务等待时长,另一方面在GPU资源池中各个GPU流均不空闲的情况下,通过GPU资源池中GPU流的总数量和图形处理器的最大并发数量,确定调度GPU任务的调度策略,能够充分利用图形处理器的并行计算能力,并尽可能地避免额外的资源浪费。故此,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
请参阅图5,图5是本申请摄像器件50一实施例的框架示意图。摄像器件50包括摄像头51和上述公开实施例中的图形处理器52,摄像头51与图形处理器52耦接,摄像头51用于拍摄图像数据,图形处理器52用于对图像数据进行任务生成、调度及处理。需要说明的是,摄像器件50可以包括但不限于:智能手机、平板电脑、车载设备、会议终端等,在此不做限定。在一个实施场景中,摄像器件50还可以进一步包括麦克风(未图示)和中央处理器(未图示),麦克风与中央处理器耦接,麦克风用于拾取语音数据,中央处理器还用于对语音数据进行任务生成、调度及处理。此外,对图像数据或语音数据进行任务生成、调度及处理的具体过程,可以参考前述公开实施例,在此不再赘述。
上述方案,一方面待调度GPU需提交至空闲的GPU流处理,能够尽可能避免由于随机调度而导致调度至忙碌的GPU流从而延长任务等待时长,另一方面在GPU资源池中各个GPU流均不空闲的情况下,通过GPU资源池中GPU流的总数量和图形处理器的最大并发数量,确定调度GPU任务的调度策略,能够充分利用图形处理器的并行计算能力,并尽可能地避免额外的资源浪费。故此,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
请参阅图6,图6为本申请计算机可读存储介质60一实施例的框架示意图。计算机可读存储介质60存储有能够被处理器运行的程序指令61,程序指令61用于实现上述任一方法实施例中的步骤。
上述方案,一方面待调度GPU需提交至空闲的GPU流处理,能够尽可能避免由于随机调度而导致调度至忙碌的GPU流从而延长任务等待时长,另一方面在GPU资源池中各个GPU流均不空闲的情况下,通过GPU资源池中GPU流的总数量和图形处理器的最大并发数量,确定调度GPU任务的调度策略,能够充分利用图形处理器的并行计算能力,并尽可能地避免额外的资源浪费。故此,能够提升GPU资源调度的有效性和可靠性,以提高GPU资源的利用率,从而最终提高数据处理效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
Claims (12)
1.一种资源调度方法,其特征在于,包括:
响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲;其中,所述待调度GPU任务需提交至空闲的GPU流处理;
基于所述GPU资源池中各个所述GPU流均不空闲,统计所述GPU资源池中所述GPU流的总数量;
基于所述总数量与图形处理器的最大并发运行数量,确定所述待调度GPU任务的调度策略;其中,所述图形处理器包括GPU管理器,所述GPU管理器维护有所述GPU任务池和所述GPU资源池,所述GPU资源池用于管理各个GPU流,所述调度策略包括以下任一者:为所述待调度GPU任务在所述GPU资源池创建新的GPU流,等待所述GPU资源池出现空闲的GPU流。
2.根据权利要求1所述的方法,其特征在于,所述调度策略基于所述总数量是否低于所述最大并发运行数量的预设倍数来确定。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述总数量与图形处理器的最大并发运行数量,确定所述待调度GPU任务的调度策略,包括以下至少一者:
响应于所述总数量不低于所述最大并发运行数量的预设倍数,确定所述调度策略包括:等待所述GPU资源池出现空闲的GPU流;
响应于所述总数量低于所述最大并发运行数量的预设倍数,确定所述调度策略包括:为所述待调度GPU任务在所述GPU资源池创建新的GPU流。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述GPU资源池中至少一个所述GPU流空闲,将所述待调度GPU任务提交至所述GPU资源池中任一空闲的GPU流。
5.根据权利要求1所述的方法,其特征在于,所述GPU任务池用于存储算法方案中各个算子分别提交的待调度任务集合,所述算法方案中所述各个算子按照预设顺序排列,所述各个算子分别提交的待调度任务集合在所述GPU任务池中按照所述预设顺序排列,且所述GPU任务池按照先入先出的原则调出任务。
6.根据权利要求1或5所述的方法,其特征在于,所述方法还包括:
响应于新获取到图像数据,基于为处理所述图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成所述算子的待调度任务集合;其中,所述算子任务映射集包括:各个算子分别对应的GPU任务集,且所述待调度任务集合包括至少一个所述待调度GPU任务;
将所述算子的待调度任务集合,提交至所述GPU任务池。
7.根据权利要求6所述的方法,其特征在于,所述算子任务映射集的获取步骤包括:
对所述算子进行图转换,得到表征所述算子处理过程的流水图;其中,所述流水图包括顺序连接的若干运算层;
为所述若干运算层分别分配GPU内核函数,得到所述算子对应的GPU任务集;其中,所述算子对应的GPU任务集在所述GPU内存中分配有存储空间。
8.根据权利要求6所述的方法,其特征在于,在所述基于为处理所述图像数据而预先部署的算法方案中的算子和在GPU内存中预先存储的算子任务映射集,生成所述算子的待调度任务集合之前,所述方法还包括:
检测所述算法方案中的算子是否首次使用;
若是,则为首次使用的算子创建对应的GPU任务集,并基于新创建的GPU任务集更新所述算子任务映射集。
9.一种资源调度装置,其特征在于,
检测模块,用于响应于GPU任务池中待调度GPU任务的调出请求,检测GPU资源池中各个GPU流分别是否空闲;其中,所述待调度GPU任务需提交至空闲的GPU流处理;
统计模块,用于基于所述GPU资源池中各个所述GPU流均不空闲,统计所述GPU资源池中所述GPU流的总数量;
确定模块,用于基于所述总数量与图形处理器的最大并发运行数量,确定所述待调度GPU任务的调度策略;其中,所述图形处理器包括GPU管理器,所述GPU管理器维护有所述GPU任务池和所述GPU资源池,所述GPU资源池用于管理各个GPU流,所述调度策略包括以下任一者:为所述待调度GPU任务在所述GPU资源池创建新的GPU流,等待所述GPU资源池出现空闲的GPU流。
10.一种图形处理器,其特征在于,包括GPU控制器、GPU管理器、GPU内存和若干GPU核,所述GPU管理器维护有GPU任务池和GPU资源池,所述GPU控制器用于执行程序指令以实现权利要求1至8任一项所述的资源调度方法。
11.一种摄像器件,其特征在于,包括相互耦接的摄像头和如权利要求10所述的图形处理器,所述摄像头用于拍摄图像数据,所述图形处理器用于对所述图像数据进行任务生成、调度及处理。
12.一种计算机可读存储介质,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至8任一项所述的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211138733.2A CN115220921B (zh) | 2022-09-19 | 2022-09-19 | 资源调度方法及相关装置、图形处理器、摄像器件和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211138733.2A CN115220921B (zh) | 2022-09-19 | 2022-09-19 | 资源调度方法及相关装置、图形处理器、摄像器件和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115220921A CN115220921A (zh) | 2022-10-21 |
CN115220921B true CN115220921B (zh) | 2023-01-03 |
Family
ID=83617162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211138733.2A Active CN115220921B (zh) | 2022-09-19 | 2022-09-19 | 资源调度方法及相关装置、图形处理器、摄像器件和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220921B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115915457B (zh) * | 2023-01-30 | 2023-05-23 | 阿里巴巴(中国)有限公司 | 资源调度方法、车辆控制方法、设备及系统 |
CN116757915B (zh) * | 2023-08-16 | 2023-11-28 | 北京蓝耘科技股份有限公司 | 一种集群gpu资源调度方法 |
CN117453486A (zh) * | 2023-11-13 | 2024-01-26 | 摩尔线程智能科技(北京)有限责任公司 | 面向进程的gpu利用率的确定方法、装置、设备和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213600A (zh) * | 2018-09-11 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于ai云的gpu资源调度方法和装置 |
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN111813543A (zh) * | 2020-06-18 | 2020-10-23 | 浙江大华技术股份有限公司 | 一种自适应调度方法、设备及计算机可读存储介质 |
CN112395062A (zh) * | 2020-11-17 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 任务处理方法、装置、设备及计算机可读存储介质 |
CN112631780A (zh) * | 2020-12-28 | 2021-04-09 | 浙江大华技术股份有限公司 | 资源调度方法和装置、存储介质及电子设备 |
WO2021092634A2 (en) * | 2021-03-05 | 2021-05-14 | Futurewei Technologies, Inc. | Acceleration of gpus in cloud computing |
CN113377540A (zh) * | 2021-06-15 | 2021-09-10 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
CN114968549A (zh) * | 2021-02-25 | 2022-08-30 | 想象技术有限公司 | 用于向任务分配资源的方法和设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110503593A (zh) * | 2018-05-18 | 2019-11-26 | 微软技术许可有限责任公司 | 多个图形处理单元的调度 |
CN113204412B (zh) * | 2020-01-31 | 2024-08-16 | 伊姆西Ip控股有限责任公司 | 用于任务调度的方法、电子设备和计算机存储介质 |
CN113791906A (zh) * | 2021-08-09 | 2021-12-14 | 戴西(上海)软件有限公司 | 基于gpu资源在人工智能与工程领域调度系统及优化算法 |
-
2022
- 2022-09-19 CN CN202211138733.2A patent/CN115220921B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213600A (zh) * | 2018-09-11 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于ai云的gpu资源调度方法和装置 |
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN111813543A (zh) * | 2020-06-18 | 2020-10-23 | 浙江大华技术股份有限公司 | 一种自适应调度方法、设备及计算机可读存储介质 |
CN112395062A (zh) * | 2020-11-17 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 任务处理方法、装置、设备及计算机可读存储介质 |
CN112631780A (zh) * | 2020-12-28 | 2021-04-09 | 浙江大华技术股份有限公司 | 资源调度方法和装置、存储介质及电子设备 |
CN114968549A (zh) * | 2021-02-25 | 2022-08-30 | 想象技术有限公司 | 用于向任务分配资源的方法和设备 |
WO2021092634A2 (en) * | 2021-03-05 | 2021-05-14 | Futurewei Technologies, Inc. | Acceleration of gpus in cloud computing |
CN113377540A (zh) * | 2021-06-15 | 2021-09-10 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
云计算环境下多GPU资源调度机制研究;吕相文等;《小型微型计算机系统》;20160415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115220921A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115220921B (zh) | 资源调度方法及相关装置、图形处理器、摄像器件和介质 | |
CN110287003B (zh) | 资源的管理方法和管理系统 | |
CN111258737B (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
JP5653865B2 (ja) | データ処理システム | |
CN110069341B (zh) | 边缘计算中结合功能按需配置的有依赖关系任务的调度方法 | |
WO2020172852A1 (en) | Computing resource scheduling method, scheduler, internet of things system, and computer readable medium | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN112486642A (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN110908797A (zh) | 调用请求数据处理方法、装置、设备、存储介质及系统 | |
CN117193992B (zh) | 模型训练方法、任务调度方法、装置以及计算机存储介质 | |
CN114595060A (zh) | 任务处理方法以及系统 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN115269131A (zh) | 一种任务调度方法及装置 | |
CN113157415A (zh) | 农场渲染方法、装置、电子设备和存储介质 | |
CN112817732A (zh) | 一种适应云边协同多数据中心场景下的流数据处理方法及系统 | |
CN118193177B (zh) | 一种任务的调度方法、系统、程序产品、设备和介质 | |
CN113542807B (zh) | 基于数字视网膜平台的资源管理调度方法以及系统 | |
CN117311941B (zh) | 图像处理方法及相关设备 | |
EP4191413A1 (en) | Message management method, device, and serverless system | |
CN111580925B (zh) | 应用伸展的方法和装置 | |
CN112905351B (zh) | 一种gpu和cpu负载调度方法、装置、设备和介质 | |
CN115658269B (zh) | 一种用于任务调度的异构计算终端 | |
CN117424936B (zh) | 一种视频边缘网关自主调度监控方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |