CN117407149A - 处理单元的资源利用 - Google Patents
处理单元的资源利用 Download PDFInfo
- Publication number
- CN117407149A CN117407149A CN202210806930.0A CN202210806930A CN117407149A CN 117407149 A CN117407149 A CN 117407149A CN 202210806930 A CN202210806930 A CN 202210806930A CN 117407149 A CN117407149 A CN 117407149A
- Authority
- CN
- China
- Prior art keywords
- service
- task
- processing unit
- execution
- tasks
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 343
- 238000000034 method Methods 0.000 claims description 48
- 238000010801 machine learning Methods 0.000 claims description 40
- 238000007781 pre-processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012549 training Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 9
- 238000009877 rendering Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 5
- 230000033228 biological regulation Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 235000019580 granularity Nutrition 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 235000019587 texture Nutrition 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
-
- 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
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
根据本公开的实现,提供了处理单元的资源利用的方案。根据该方案,至少基于第一服务的任务的即时执行信息,确定处理单元的第一时间段,在第一时间段内处理单元暂停执行第一服务的任务。至少基于第二服务的任务的预计执行时长,选择第二服务中能够在第一时间段内完成的至少一个任务。在第一时间段内将第二服务的至少一个任务调度到处理单元执行。以此方式,可以充分利用处理单元的资源,提高资源利用率。
Description
背景技术
一些计算密集型服务会利用专用的处理单元,例如图形处理单元(GPU)等,来执行该服务的各种任务。相比于传统的通用处理单元,例如中央处理单元(CPU),专用处理单元可以获得更高的计算效率。随着技术进步,处理单元的计算能力越来越强。在一些服务的运行中,处理单元可能处于低利用率状态。期望尽可能地提升处理单元的利用率。
发明内容
根据本公开的实现,提出了一种用于提升处理单元的资源利用的方案。在该方案中,至少基于第一服务的任务的即时执行信息,确定处理单元的第一时间段,在第一时间段内处理单元暂停执行第一服务的任务。至少基于第二服务的任务的预计执行时长,选择第二服务中能够在第一时间段内完成的至少一个任务。在第一时间段内将第二服务的至少一个任务调度到处理单元执行。以此方式,可以充分利用处理单元的资源,提高资源利用率。
提供该部分是为了简化的形式来介绍对对象的选择,其在下文的具体实施方式中将被进一步描述。该部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
图1示出了在其中能够实施本公开的多个实现的示例环境的框图;
图2示出了根据本公开的一些实现的示例架构的示意框图;
图3A示出了在单独运行第一服务的任务时处理单元的资源占用的示例;
图3B示出了在处理单元上协同部署多个服务的资源占用的示例;
图4示出了根据本公开的一些实现的存储参数值的存储器的示例;
图5示出了根据本公开的一些实现的用于资源管理的过程的流程图;以及
图6示出了能够实施本公开的多个实现的电子设备的示意框图。
这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本公开的范围的任何限制。
如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
可以理解的是,本公开所涉及的数据(包括但不限于数据本身、数据的获得或使用)应当遵循相应法律法规及相关规定的要求。
可以理解的是,在使用本公开各实现公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获得和使用到用户的个人信息,从而使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获得用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
如本文中所使用的,术语“模型”可以从训练数据中学习到相应的输入与输出之间的关联,从而在训练完成后可以针对给定的输入,生成对应的输出。模型的生成可以基于机器学习技术。深度学习(DL)是一种机器学习算法,通过使用多层处理单元来处理输入并提供相应输出。神经网络模型是基于深度学习的模型的一个示例。在本文中,“模型”也可以被称为“机器学习模型”、“学习模型”、“机器学习网络”或“学习网络”,这些术语在本文中可互换地使用。
通常,机器学习大致可以包括三个阶段,即训练阶段、测试阶段和使用阶段(也称为推理阶段)。在训练阶段,给定的模型可以使用大量的训练数据进行训练,不断迭代,直到模型能够从训练数据中获取一致的满足预期目标的推理。通过训练,模型可以被认为能够从训练数据中学习从输入到输出之间的关联(也称为输入到输出的映射)。经训练的模型的参数值被确定。在测试阶段,将测试输入应用到训练后的模型,测试模型是否能够提供正确的输出,从而确定模型的性能。在推理阶段,模型可以被用于基于训练得到的参数值,对实际的输入进行处理,确定对应的输出。
示例环境
图1示出了能够实施本公开的多个实现的示例环境100的框图。在环境100中,资源池110包括多种类型的资源,以支持服务的执行。
如图所示,资源池110包括处理资源112,其包括一个或多个类型的处理单元,包括第一类型的一个或多个处理单元120-1、……120-N(为便于讨论,统称为或单独称为处理单元120),第二类型的一个或多个处理单元122-1、……122-M(为便于讨论,统称为或单独称为处理单元122)。
不同类型的处理资源可以被配置为具有不同功能,并且在一些情况下可以协同工作。作为示例,处理单元120可以包括通用处理单元,诸如CPU。处理单元122可以包括专用处理单元,诸如GPU、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在一些示例中,处理单元122可以被配置为在处理单元120的控制下执行对应的处理操作。
除了处理资源之外,资源池110还可以包括存储器资源114、接口资源116、磁盘资源118,等等。存储器资源114可以包括各种易失性存储器、非易失性存储器。接口资源116可以包括用于支持资源池内的各个组件之间的信令、数据交换的接口,诸如外围组件互连高速接口(PCIe)、通用串行总线(USB)接口、串行高级技术附件(SATA)接口。存储设备资源118可以包括用于提供数据的持久性存储的设备,诸如各种类型磁盘(固态硬盘、磁盘阵列等)。
虽然被单独示出,但可以理解,资源池110中某些类型的资源可以位于同一物理设备中。
服务可以被调度或部署在资源池110中执行。作为示例,资源池110可以包括云环境,其中的资源可以被分配用于供应一个或多个服务。在本文中,服务可以是任何类型的服务、应用或功能,其可以由资源池110中的资源来提供。服务可以包括待执行的一个或多个任务,每个任务对应于服务的细粒度的作业。
在一些实现中,服务的运行,或者服务中的一个或多个任务的执行,可以基于客户端设备(例如,客户端设备130-1、……130-P)的触发。这些客户端设备(为便于讨论,统称为或单独称为客户端设备130)例如可以经由网络105(诸如因特网)与资源池110通信,以向资源池110发送指令和数据,并从资源池110获取任务的执行结果。
应当理解,图1示出的计算设备的部件和布置仅是示例,适于用于实现本公开所描述的示例实现的计算设备可以包括一个或多个不同的部件、其他部件和/或不同的布置方式。
工作原理和示例实现
在一些应用场景中,在利用资源池来提供某些服务时,存在资源利用率低下,特别是处理资源利用率低下的问题。例如,某些服务的任务处理的需求同时具有高服务质量要求以及高随机性、不可预测性等特点。这样,为了满足服务质量要求,需要分配专用的处理资源来执行这些服务的任务。然而,由于这些服务的任务的出现具有随机性和不可预测性,那么将会出现在某些时间段内处理资源处于空闲状态。
作为一个示例,云游戏服务近年来逐渐兴起。不同于传统将游戏应用下载和运行在用户的客户端设备本地,云游戏服务运行在远端的资源池中,以利用资源池中更强大的处理资源来提供游戏视频流的良好视觉效果。例如,处理单元可以被配置为执行游戏视频流的帧渲染任务。云游戏服务的远端部署能够极大降低对客户端设备的硬件要求。当前云游戏平台会为用户分配专用的资源来运行用户请求的游戏,以确保良好用户体验。
然而,由于客户端设备的网络、编解码能力以及解析度的限制,高性能处理单元能够提供的视频流质量可能远高于客户端设备所支持的质量。通过调查研究发现,当前大部分用户使用的客户端设备支持小于1080p的解析率,而且视频流的帧率多数在60帧每秒(FPS)的级别。然而,处理单元的计算能力所能支持视频流的帧渲染处理远大约这样的帧率要求。在统计资源利用率后发现,一些处理单元的利用率大约仅为50%甚至更低。处理单元的低利用率会带来资源浪费、运维成本增加等问题。因此,期望能够提高处理单元的利用率。
为了提高利用率,一种方案是将多个云游戏服务部署到同一处理单元中。然而,云游戏服务中任务处理需求具有高随机性、不可预测、以及交互性等特点。云游戏服务对不同资源的利用率在不同时间、不同帧中变化非常大。例如,内容和细节丰富的复杂帧往往需要更长时间进行处理,反之则需要更短时间进行处理。这样的差异导致对处理资源的占用率随时间波动很大。然而,帧的处理时间往往难以预测,因为这取决于用户在改变游戏画面时的随机交互。此外,不同云游戏服务也展现出非常不同的资源利用模式,进一步增加了不可预测性。如果利用同一处理单元来处理不同云游戏服务的任务,即时处理单元的资源利用率仍然较低,也仍然会造成严重干扰,降低游戏的服务质量。
除云游戏服务之外,还有一些其他服务也展现类似的特点。例如,在音频/视频直播、音频/视频会议等流媒体服务场景中,也可以利用远端的资源池来处理流媒体的帧,并将渲染后的帧通过网络发送到客户端设备进行呈现。在这样的应用中,远端的处理单元所能达到的处理能力往往也大于客户端设备以及网络所支持的服务质量,导致处理资源的低利用率。此外,取决于画面复杂度的随机性,每个帧所需的处理时间不同,这带来了服务的任务处理需求的随机性和不可预测性。
为了提高处理单元的利用率、同时不干扰具有高服务质量要求的某些服务,本公开的示例实现提出了一种提高处理单元的资源利用率的改进方案。根据该方案,利用处理单元来执行至少两个服务的任务。对于第一服务,至少基于该服务的即时执行信息,确定处理单元的空闲时间段,在该时间段内处理单元暂停执行第一服务的任务。另一个类型的第二服务的任务具有可预测性,例如至少能够确定第二服务的任务的预计执行时长。基于任务的预计执行时长,选择第二服务中能够在处理单元的所选择的空闲时间段内完成的至少一个任务。将所选择的至少一个任务调度到处理单元执行。
以此方式,可以充分利用处理单元的资源。此外,由于基于第一服务的即时执行信息来确定处理单元的空闲时间段,并且选择第二服务中在空闲时间段内完成的任务进行调度,可以避免对第一服务的干扰,使处理单元在第一服务具有任务处理需求时不被其他服务占用,确保第一服务的服务质量。
下文将参考附图来更详细描述本公开的一些示例实现。
图2示出了根据本公开的一些实现的示例架构200的示意框图。如图2所示,架构200包括资源管理系统210,其被配置为管理资源池110的一个或多个类型的资源,特别管理处理资源112的处理单元122的资源。
虽然图2中仅示出单个处理单元122,但应理解,资源管理系统120可以被配置为以类似方式管理多个处理单元122。在一些实现中,如下文将讨论的,资源管理系统210被配置为管理资源池110的其他处理资源,例如处理单元120,和/或其他类型的资源,诸如存储器资源114、接口资源116、存储设备资源118等。
资源管理系统210包括空闲时间段检测器212、执行时长预测器214、任务调度器216和执行监测器219。资源管理系统210中的各个组件可以由硬件、软件、固件或者它们的任意组合来实现。
在本公开的实现中,假设资源池110中的处理单元122被配置为执行第一服务201的任务。由于第一服务201的任务并不总是占用处理单元122,为了提高资源利用率,在本公开的实现中,提出了在适当时间段内,例如处理单元122的空闲时间段内,配置处理单元122执行其他服务的任务,例如第二服务202的任务。
在本公开的实现中,在占用处理单元122方面,第二服务202可以被认为具有比第一服务201更低的优先级。因此,当第一服务201的任务运行在处理单元122上时,期望处理单元122上不存在其他服务的任务与第一服务201的任务进行竞争,以避免对第一服务201的潜在干扰,确保第一服务201的服务质量。
资源管理系统210中的空闲时间段检测器212被配置为检测处理单元122中这样的时间段,在该时间段内处理单元122能够暂停执行第一服务的任务。执行时长预测器214被配置为确定第二服务202的各个任务的预计执行时长。第二服务202中可执行的一个或多个任务220-1、220-2、……220-K可以被放置在任务队列216中。为便于讨论,第二服务202的这些任务可以统称为或单独称为任务220。
任务调度器218被配置为至少基于第二服务202的任务的预计执行时长,选择能够在所确定的空闲时间段内完成的一个或多个任务220,并指示执行监测器219将所选择的任务调度到处理单元122执行。执行监测器219可以包括任务启动模块232,其被配置为启动要执行的一个或多个任务220,并指令处理单元122来执行启动的一个或多个任务220。
在一些实现中,执行监测器219还可以监测一个或多个任务220在处理单元122上的执行进度,以避免对第一服务201的潜在干扰。在一些实现中,执行监测器219还可以包括相关资源管理器234,以管理资源池110中除处理单元122之外的其他类型的资源,使第二服务202的任务执行期间对其他类型的资源的占用也不会干扰到第一服务201。
在一些实现中,第一服务201和第二服务202可以为不同类型的服务。在一些实现中,第一服务201和第二服务202至少在处理单元122的占用方面具有不同的特性。
具体地,在一些实现中,第一服务201可以在占用处理单元122的资源时具有随机性、不可预测性,而第二服务202在占用处理单元122的资源时具有可预测性。换言之,第一服务201在处理单元122的资源占用方面的可预测性低于第二服务202在处理单元122的资源占用方面的可预测性。服务对处理单元的资源占用的可预测性可以体现在对服务的各个任务的执行时长的预测。在一些实现中,第一服务201的任务的在处理单元122上的执行时长可能是不可预测。例如,第一服务201的每个任务的复杂度差异较大,且复杂度的变化模式是随机(例如,取决于用户交互或服务设计需要),从而每次任务的执行时长可能不能提前预测。如图2所示,在一些示例中,第一服务201的具体任务的触发可以基于客户端设备130的用户输入。由于用户交互的随机性,每次被触发的任务的复杂度可能不同,从而在处理单元122中的执行时长也不同。
在一些实现中,第二服务202的任务在处理单元122上的执行时长可以是可预测的,例如第二服务202的各个任务的工作负荷较稳定、变化较小,其执行时长可确定。由于第二服务202的任务的执行时长可预测,从而适于在处理单元122的空闲时间段内执行。
在一些实现中,第一服务201可以包括具有预定服务质量要求的服务。因此,处理单元122的处理资源在一定时间段内可以由第一服务201的任务独占,以确保服务质量要求。在一些实现中,第二服务202可以被选择为具有一定的处理延迟容忍度的服务,例如机器学习模型的训练服务,测试服务,或者离线推理服务等。这样,即使第一服务201的任务的执行时长不可预测,也能够在确保第一服务201的服务质量要求的情况下,通过在随机长度的空闲时间段内执行第二服务202来提高处理单元的利用率。
在一些实现中,第二服务202可以被选择为具有较小任务粒度的服务,也就是说第二服务202的任务可以被划分为较小粒度,每个任务的执行时间可以较短,以方便灵活的任务调度。在一些实现中,第二服务202可以被选择为还具有重复或迭代的任务的服务。这样,可以在较长时间内均能充分利用处理单元122的资源。
在一些实现中,第一服务201可以包括流媒体服务,并且第一服务201的任务可以包括流媒体服务的帧的处理任务,例如渲染任务。在一些实现中,流媒体服务例如可以包括游戏服务,例如云游戏服务。在一些实现中,流媒体服务例如还可以包括视频直播服务、视频会议服务等提供流媒体内容的服务。在流媒体服务中,不同帧的复杂度可能不同,并且要处理的帧的内容是随机的(例如,在游戏服务中基于用户对游戏画面的控制),因此在占用处理单元方面将会展现出不可预测性、随机性的特点。而且,为了保证用户体验,流媒体服务可能会提供客户端设备能够支持的较高服务质量(QoS)。
在其他实现中,除流媒体服务之外,第一服务201还可以包括在处理单元的占用方面具有类似特性(例如,任务执行的不可预测性和随机性)的其他服务。
在一些实现中,第二服务202可以包括机器学习模型的运行服务。机器学习模型通常包括多个模型单元(有时也称为处理核、处理单元等),在运行时每个模型单元处理各自的输入并提供相应输出。在一些实现中,模型单元的处理包括基于特定处理函数来处理输入。处理函数的参数值构成机器学习模型的参数值。在一些实现中,对于机器学习模型的运行服务,服务的任务可以包括一个或多个模型单元的执行。
机器学习模型的各个模型单元的执行时长相对稳定,变化程度较低。此外,同一机器学习模型可能会重复运行(例如,通过输入不同数据),因此其任务执行具有迭代重复特性。通过利用机器学习模型的运行服务的可预测性和迭代特性,可以提前获知其中的模型单元的预计执行时长。
在机器学习的训练、测试和推理阶段,均需要运行机器学习模型。在训练阶段,迭代地向机器学习模型输入训练数据,并基于模型的输出来更新模型的参数值,直到达到训练目标。在机器学习的测试阶段,向机器学习模型输入测试数据,以验证模型是否能够提供正确的输出,从而测试模型性能。在推理阶段,根据具体应用需要,向机器学习模型输入实际要处理的输入数据,以确定对应的输出。在任一阶段,机器学习模型均需要运行。在一些实现中,第二服务202可以包括机器学习模型的训练服务,验证服务。在一些实现中,在获得用户授权的情况下,第二服务202也可以包括机器学习模型的推理服务。
在一些实现中,第二服务202可以包括科学计算服务。科学计算服务指的是为了解决在科学和工程中遇到的问题而构建科学算式的运算。科学计算服务可以包括并列、重复的运算,每个科学计算服务的工作负荷通常是可预测的。在这样的实现中,科学计算服务的任务可以包括一个或多个运算的执行。在其他实现中,第二服务202还可以包括在处理单元的占用方面具有类似特性(例如,任务执行的可预测性、稳定性,和/或低粒度等)的其他服务。
在一些实现中,处理单元122可以是适合于执行第一服务201和第二服务202的任务的任何处理单元。在一些实现中,处理单元122可以包括专用处理单元,诸如GPU、FPGA、ASIC等,以提供任务执行的加速。在一些实现中,处理单元122可以在通用处理单元,例如处理单元120的控制下执行任务。处理单元120例如可以包括CPU,或者其他中央控制器。处理单元120可以被配置为执行和解析任务逻辑,将任务逻辑转化为处理单元122可执行的命令。
资源管理系统210主要被配置为管理资源池110中的资源,特别是处理单元122的资源的利用。在一些实现中,资源管理系统210可以调度第二服务202的任务,而不改变其计算,因此不会对第二服务的计算结果造成影响。
下文中将分别详细介绍资源管理系统210中各个组件的示例实现。
空闲时间段的检测
如前所述,空闲时间段检测器212被配置为检测处理单元122在处理第一服务201的任务时的空闲时间段。为了检测处理单元122的空闲时间段,空闲时间段检测器212可以被配置为监测第一服务201的任务的即时执行信息,并至少基于监测到的即时执行信息来确定处理单元122的空闲时间段。取代提前预测第一服务的任务执行的随机行为(这往往难以实现),通过实时监测第一服务201的任务执行情况,可以快速、准确地检测到处理单元122何时将会空闲。
在一些实现中,空闲时间段检测器212可以检测第一服务201的一个任务在处理单元122上何时完成,以及下一任务何时将开始。两个任务之间的时间段可以被确定为空闲时间段。空闲时间段检测器212可以通过即时执行信息来确定第一服务201的某个任务完成。在一些实现中,空闲时间段检测器212还可以基于第一服务201的服务质量要求来确定第一服务201的下一任务何时开始,即下一任务的预计开始时间。基于前一任务的完成时间和下一任务的预计开始时间,可以确定处理单元122的空闲时间段。
在一些实现中,空闲时间段检测器212可以被配置为获取被发送到处理单元122的针对第一服务201的命令队列240。命令队列240包括处理单元122可执行的命令,这些命令随着任务的触发而被发送到处理单元122。在一些实现中,命令队列240中的命令可以通过接口242被发送到处理单元122。在一些实现中,如果第一服务201包括流媒体服务,并且要在处理单元122上执行的第一服务201的任务包括帧的处理任务,例如帧渲染,那么在完整这类任务时,会将图形库中涉及帧渲染的图形操作转化成处理单元122的可执行命令。用于传送这样的可执行命令的接口可以包括应用程序接口(API)。
空闲时间段检测器212可以监测接口242,以从其中的命令队列240检测用于启动第一服务201的某个任务的启动命令。对命令队列的检测所引起的时延非常低,通常在每帧一微秒以内,因此不会对第一服务201的服务质量造成影响。如果检测到任务的启动命令,空闲时间检测器212可以确定处理单元122将会执行第一服务201的某个任务。为了获知该任务何时结束,空闲时间检测器212可以在命令队列240中添加用于通知该任务的完成的通知命令。在一些实现中,通知命令可以被添加到针对当前任务的命令队列240的队尾。空闲时间检测器212可以被配置能够针对不同类型的接口和命令生成方式,检测出任务的启动命令以及插入任务完成的通知命令。
在任务执行完成后,任务的执行结果可以经由接口242传递到下一目的地,最终传输到客户端设备130。由于在命令队列240中添加了通知命令,空闲时间检测器212可以接收到任务完成的通知,从而可以确定当前任务的完成时间。
在一些实现中,空闲时间检测器212可以基于第一服务201的服务质量(QoS)要求来确定第一服务201的后续任务的预计开始时间。QoS要求会影响第一服务201的任务触发的频率。
在一些实现中,如果第一服务201包括流媒体服务,QoS要求可以包括帧率(FPS)要求,例如指示流媒体服务的最大帧率。如果流媒体服务的任务是帧的处理任务,那么FPS将会决定两个帧的处理任务之间的时间间隔。例如,如果FPS要求为60FPS,这意味着大约每16.67ms会出现一个帧,因此帧的处理任务的发生间隔为16.67ms。由于空闲时间检测器212可以被通知帧处理的完成时间,基于任务的发生间隔,可以确定下一帧的处理任务何时开始。在前一帧处理完成与下一帧的处理开始之间的时间段内,处理单元122可以被确定为处于空闲状态。
在一些实现中,空闲时间段检测器212可以被配置为确定第一服务201的QoS要求。例如,可以在第一服务201被启动时监测第一服务201的多个任务的触发间隔(例如,多个帧的渲染间隔)来确定QoS要求。这种方式的开销和误差几乎是可忽略的。
通过监测即时执行信息以及QoS要求的方式来检测处理单元122的空闲时间段,使空闲时间段检测器212可以支持针对不同的第一服务的广泛检测,而不需要针对每个服务均特别修改检测方式。在其他实现中,空闲时间段检测器212还可以获得其他即时执行信息,以实时确定第一服务201的连续任务之间的空闲时间间隔。本公开的实现在此方面不受限制。
图3A示出了在单独运行第一服务201的任务时处理单元122的资源占用的示例。如图3A所示,处理单元122在时间段320、331、322、323等分别执行第一服务201的任务0、任务1、任务2、任务3等。可以由处理单元120发出的命令来控制处理单元122对任务的执行。例如,处理单元120在时间段311内运行任务1的逻辑,并向处理单元122发送对应的执行命令,使处理单元122执行具体计算操作。类似地,处理单元120在时间段312、313等分别运行任务2、任务3的逻辑,并在运行完成后向处理单元122发送对应的执行命令。
第一服务201的不同任务的触发间隔(表示为“T”)可以基于第一服务201的QoS要求,例如针对流媒体服务的FPS要求。从图3A也可以看出,由于处理单元122对任务执行速度较快,在前一任务完成之后与下一任务到来之前的时间内,处理单元122将会处于空闲状态。在本公开的实现中,期望在处理单元122的空闲时间段内调度其他服务的任务用于执行,在不造成对第一服务201的干扰的同时,提高处理单元122的资源利用率。
任务执行时长的预测和任务的调度
在检测到处理单元122的空闲时间段后,任务调度器218可以选择第二服务202的一个或多个任务220用于调度到处理单元122执行,以充分利用处理资源。为避免与第一服务201竞争处理单元122,在任务调度时,任务调度器218可以选择能够在所确定的空闲时间段内能够完成的一个或多个任务220。任务调度器218可以从执行时长预测器214获得关于第二服务202的各个任务220的预计执行时长,并基于任务的预计执行时长来确定哪些任务220在第一服务201的下一任务开始之前能够由处理单元122完成执行。也就是说,要调度的一个或多个任务220的总预计执行时长不超过所确定的空闲时间段。
在一些实现中,如前文讨论的,第二服务202可以被选择为其任务的执行时长可预测、变化程度较小的服务。在一些实现中,第二服务202可以将任务划分为较小粒度,从而每个任务的执行时长较短,易于被调度到处理单元122的空闲时间段上执行。例如,第二服务202可以包括机器学习模型的运行服务,其中每个模型单元的执行时长可预测、变化程度较小。此外,调查发现,很多类型的模型单元的执行时间通常低于1ms,适合于被调度到处理单元的空闲时间段内执行。
在一些实现中,执行时长预测器214可以通过预先执行至少一次第二服务202,例如运行至少一次机器学习模型,来确定第二服务202的各个任务220的预计执行时长。可以另外的处理单元上执行第二服务202,该处理单元可以具有与处理单元122相同的类型(例如,均是GPU),并且没有被配置用于执行第一服务201。由于第二服务202的任务的稳定性的特点,能够较准确地确定各个任务220的预计执行时长。执行时长预测器214可以记录所确定的预计执行时长。
在一些实现中,执行时长预测器214还可以通过其他方式来确定第二服务202的任务220的预计执行时长。例如,在模型数据可获得或者允许获得的情况下,执行时长预测器214还可以附加地或备选地分析机器学习模型的结构、模型单元的类型、输入数据的类型等,来确定任务220的预计执行时长。对于其他第二服务,执行时长预测器214也可以利用适当方式来确定任务的预计执行时长。本公开的实现在此方面不受限制。
在一些实现中,任务队列216中的任务220可以按顺序放置,该顺序例如取决于第二服务202的处理逻辑。在调度任务时,任务调度器218可以按顺序从任务队列216中调度任务220。如果任务队列216中队首的任务220的预计执行时长小于处理单元122的空闲时间段,那么任务调度器218可以指示任务执行器219将该任务发送到处理单元122执行。执行时长预测器214可以确定下一任务220是否能够在处理单元122的剩余空闲时间段内完成。如果确定该任务能够在剩余空闲时间段内完成,执行时长预测器214可以继续指示任务执行器219将该任务发送到处理单元122执行。
在一些实现中,在处理单元122执行前,需要完成针对任务220的初始化操作,以创建用于任务执行的上下文,但初始化的开销并不会影响任务220的调度。在一些实现中,任务启动模块232可以被配置为执行必要的任务启动操作,例如配置模型单元的参数值、输入数据等。任务启动操作的开销通常小于或等于任务220的执行时间。例如,对于机器学习模型的运行服务,模型单元的启动开销可能在10us左右,通常不超过模型单元的实际执行时间。
在一些实现中,这样的初始化和启动操作可以由通用处理单元,例如可以由处理单元120执行。处理单元120可以与处理单元122异步操作,以提高处理效率。
图3B示出了在处理单元上协同部署多个服务的资源占用的示例。图3B示出了在任务1结束与任务2开始之间的空闲时间段内,将第二服务202的任务220调度到处理单元122执行。处理单元120可以被配置为执行任务220的启动操作,在启动完成后指示处理单元122开始执行任务220。任务220的启动操作与执行操作可以由处理单元120和处理单元122异步执行。这样,处理单元122需要空闲等待第一个被调度的任务220的启动时间段331。由于启动操作耗时非常少,这个等待时间段是可忽略的。之后,处理单元122可以在时间段332中执行已启动的任务220,多个任务220(如果被调度的话)的执行时间段332可以是连续的。
执行监测
在一些实现中,在第二服务202的一个或多个任务220被调度到处理单元122上执行的情况下,任务执行器219还监测任务的执行。在某些情况下,某个或某些任务220的实际执行时长可能会超过预计执行时长,从而导致任务220不能在第一服务201的下一任务触发之前完成。任务的实际执行时长超过预计执行时长可能是由于执行错误、数据错误等原因导致。如果不能及时结束这样的任务的执行,可能会导致第一服务201的任务处理被延迟。
为避免引发对第一服务201的干扰和造成第一服务201的QoS下降,在一些实现中,如果检测到第二服务202的一个或多个任务220在先前确定的空闲时间段到期前无法完成,任务执行器220可以终止任务220在处理单元122上的执行进程,以使处理单元122可以被快速回收用于执行第一服务201的任务。
在一些实现中,如果检测到一个或多个任务220在处理单元122的空闲时间段到期之前无法完成,任务执行器219可以立即指示处理单元122停止这些任务的执行。这样的方式可以称为是对第一服务201的QoS的硬保障。
在一些实现中,如果检测到一个或多个任务220在处理单元122的空闲时间段到期之前无法完成,任务执行器219暂时先不终止任务220的执行,而是在维持任务的执行的同时监测第一服务201的QoS的下降幅度。如果第一服务201的QoS未下降到QoS阈值以下,处理单元122可以有机会继续执行当前未完成的任务220,并在QoS下降到阈值之前再完成一个或多个任务220。如果第一服务201的QoS下降到QoS阈值以下,这意味着进一步的下降将会影响到第一服务201的服务体验,任务执行器219可以终止处理单元122上还未完成的任务220。例如,如果第一服务201的QoS要求指示FPS要求,推迟下一帧的处理时间将会导致FPS下降。如果FPS下降幅度在某个阈值内,可以使处理单元122继续执行第二服务202的任务,直到FPS下降到阈值以下。
允许一定程度的QoS下降的方式可以称为是对第一服务201的QoS的软保障。该方式特别适合某些任务的预计执行时长较长的第二服务。对于这些第二服务,相比于“硬保障”的方式,“软保障”的方式能够进一步提高处理单元122的利用率。此外,“硬保障”的方式适合应用在第一服务的QoS的轻微下降不影响服务体验的场景中。
在一些实现中,为了尽快能够终止处理单元122上未完成的任务220,可以以较高优先级发送针对任务220的断言(asserting)信号来快速终止任务,将处理单元122占用于第一服务202的任务执行。任务220的终止将会使存储器中的相关数据均被清除,这可能会导致第二服务202的执行进度损失。
例如,如果第二服务202的某些任务220被中断,可能会需要重新运行整个第二服务202,特别是在机器学习模型的训练服务中。对于机器学习模型的训练服务,在利用一批训练数据来迭代运行模型多次后,通过全部运行结果来更新模型的参数值。如果在某次运行中某个或某些模型单元的任务被终止,那么可能会导致本轮模型的执行进度丢失。尽管第二服务202可能会周期性地保存参数值的校验点,但这个校验点的保存频率较低(通常在若干训练轮次后,这可能会是若干小时一次)。
在终止未完成的任务220时,期望能够降低对第二服务202的执行进度的损害。在一些实现中,可以设置一个存储区,用于存储配置第二服务的任务的参数值,例如存储机器学习模型的参数值。该存储区的参数值可以随着第二服务202的任务的执行完成而被更新。如果第二服务202的任务要被迭代地执行,例如在执行机器学习模型的训练服务时,那么可以在每一次机器学习模型运行一次后,更新存储区中的参数值。图4示出了这样的存储区的示例。如图4所示,假设第二服务202的某个任务220的实际执行时长410较长,在还未完成执行时第一服务202的任务被触发,那么可以通过断言信号412使任务220终止,并在时间段420使处理单元122开始执行第一服务201的任务。可以设置存储区430用于存储第二服务202的任务所需的参数值432。
在下一次以上文讨论的类似方式检测到处理单元122的新的空闲时间段440时,可以恢复对第二服务202的任务220的执行。此时,可以基于存储区430中存储的参数值来配置要执行的任务,这可以尽可能降低对第二服务202的服务进度的影响。
注意,通常在处理单元122上终止第二服务202的任务是为了避免对第一服务201造成干扰,因此可以维持存储区中所存储的参数值。在一些实现中,为了维持参数组合,同时保持第二服务202暂停,可以利用与第二服务202分离的进程来构建存储区用于参数值的存储。在恢复第二服务202的任务执行时,可以将该存储区的指针直接提供给要执行的任务220的存储器管理进程。在一些实现中,如果处理单元122支持进程间通信(IPC),可以从处理单元122的存储器中创建用于存储参数值的存储区。这样,在允许第二服务202的任务220时,可以不需要执行存储器拷贝操作。在一些实现中,用于存储参数值的参数区也可以位于其他存储器中,例如位于主机存储器中,并在任务执行时从其他存储器被拷贝到处理单元122的存储器。
在上文的一些实现中,讨论了将一个第二服务202的任务调度到处理单元122上在空闲时间段内执行,以提高资源利用率。在其他实现中,根据需要,也可以以类似方式,将执行时长可预测的多个第二服务202的任务调度到处理单元122在空闲时间段内执行。
其他资源竞争的管理
除了处理单元122的处理资源外,第一服务201和第二服务202的任务执行可能还涉及资源池110中的其他资源,例如处理单元120的处理资源,存储器资源114、接口资源116、存储设备资源118等。如果利用同一资源来支持第一服务201和第二服务202,那么也需要对管理该资源,以避免干扰。在一些实现中,图2的任务执行器219中的相关资源管理器234可以被配置为对其他资源的管理。
在一些实现中,处理单元120,例如CPU,可以被配置为执行第一服务201和第二服务202的各个任务的预处理操作。例如,对于流媒体服务,处理单元120可以用于执行服务初始化、获取和分析用户交互、处理流媒体逻辑、模拟服务效果等。对于机器学习模型的运行服务,处理单元120可以用于执行数据预处理,例如图像数据解码、图像整形、数据增强等。如果第二服务202对处理资源120的占用过高,可能会发生资源竞争,导致第一服务201的QoS下降,例如流媒体服务的FPS下降、加载时间增加等。
在一些实现中,可以通过设置进程的优先级来避免处理单元120的资源竞争。例如,在处理单元120中,可以利用第一线程来执行第一服务201的任务的预处理操作,并利用第二线程来执行第二服务202的任务的预处理操作。第一线程的优先级可以被设置为高于第二线程的优先级。相比于不设置优先级或者设置相同优先级,通过将第一服务201的线程设置为具有高于第二服务202的线程的由下级,可以在处理单元120上降低干扰。
在一些实现中,处理单元122会与存储器对接,以在任务执行期间在存储器上缓存执行所需的数据。处理单元122与存储器的对接需要利用接口资源116,例如PCIe接口等高速接口。举例而言,流媒体服务的任务执行会需要通过接口获取存储器上的原数据,缓存所渲染的帧,等等。机器学习模型的运行服务需要通过接口传送数据和模型的参数值。在处理单元122与存储器的接口上,可能也会发生资源竞争。随着与第二服务202共用处理单元122,第一服务201在接口上所能获得的数据传送速率可能会降低。
为避免对接口资源的竞争,在一些实现中,可以利用带宽预留技术,为第一服务201预留足够的接口带宽,例如可以将接口中预定大小的接口带宽预留给第一服务201。可以在第一服务201不使用接口时,允许接口传送第二服务202的数据。可以利用各种适当技术来实现对接口的带宽预留,本公开的实现在此方面不受限制。
在一些实现中,对于存储设备资源118,第一服务201和第二服务202的任务执行可能都需要从存储设备加载数据,例如流媒体服务需要从存储设备读取渲染资源(诸如纹理内容),机器学习模型的运行任务需要从存储设备读取处理所需的数据。对存储设备的输入输出I/O的竞争可能会使第一服务201的数据加载时间过长,影响服务质量,甚至可能会导致处理性能差。例如,如果I/O竞争严重,可能会观察到流媒体的某些帧中存在内容缺失。因此,在一些实现中,可以利用I/O隔离技术,将第一服务201相关的数据I/O操作与第二服务202的I/O操作相隔离。I/O隔离技术例如可以包括命名空间(namespace)的设置,I/O优先级的设置等,使得第一服务201和第二服务202的I/O操作彼此隔离,避免了干扰。
在一些实现中,由于第二服务202的任务总是在处理单元122的空闲时间段内被调度执行,对于处理单元122的存储器和高速缓存,第二服务202的数据传送通常不会与第一服务201的数据传送发生重叠,从而不会彼此造成干扰。在执行某个服务的任务时,前一服务的任务所产生的高速缓存数据会被冲刷掉,不会导致高速缓存占用。此外,由于对于处理单元122的命令通常是被按顺序发出,不会与先占性,因此也不会出现处理单元122的上下文切换开销。
在一些实现中,如果第一服务201和第二服务202的任务执行需要网络资源,例如传送待处理数据/指令,或传送执行结果,也可以在分离的网络中完成不同服务的数据通信,不会造成网络上的干扰。在一些实现中,对于流媒体服务,在完成帧渲染后,可能还需要帧编码器来对渲染后的帧进行编码,以通过网络传输编码后得到的码流。第二服务202通常不会被选择为类似的流媒体服务,因此在帧编码器上可能不存在竞争。
示例流程
图5示出了根据本公开的一些实现的用于资源管理的过程500的流程图。过程500可以被实现在图2的资源管理系统210处。
在框510,资源管理系统210至少基于第一服务的任务的即时执行信息,确定处理单元的第一时间段。第一时间段是这样的时间段,在该时间段内处理单元暂停执行第一服务的任务。
在框520,资源管理系统210至少基于第二服务的任务的预计执行时长,选择第二服务中能够在第一时间段内完成的至少一个任务。
在框530,资源管理系统210在第一时间段内将第二服务的至少一个任务调度到处理单元执行。
在一些实现中,第一服务和第二服务在处理单元的占用方面具有不同的特性。
在一些实现中,第一服务在处理单元的资源占用方面的可预测性低于第二服务在处理单元的资源占用方面的可预测性。
在一些实现中,确定第一时间段包括:基于即时执行信息确定第一服务的第一任务的完成时间;基于第一服务的服务质量要求,确定第一服务的第二任务的预计开始时间,第二任务将在第一任务之后被执行;以及基于完成时间和预计开始时间,来确定第一时间段。
在一些实现中,即时执行信息包括被发送到处理单元的针对第一服务的命令队列。在一些实现中,确定第一任务的完成时间包括:从命令队列检测针对第一任务的启动命令;响应于检测到启动命令,在命令队列中添加用于通知第一任务的完成的通知命令;以及响应于接收到第一任务的完成的通知,确定第一任务的完成时间。
在一些实现中,第一服务包括流媒体服务,第一服务的任务包括流媒体服务的帧的处理任务,并且其中服务质量要求包括流媒体服务的帧率要求。
在一些实现中,第二服务包括机器学习模型的运行服务,或科学计算服务。
在一些实现中,该方法还包括:通过在另一处理单元上执行至少一次第二服务的任务,来确定第二服务的任务的预计执行时长,另一处理单元与处理单元具有相同类型。
在一些实现中,该方法还包括:在第二服务的至少一个任务的执行期间,如果检测到第二服务的至少一个任务中的一个或多个任务在第一时间段到期前无法完成,在处理单元上终止一个或多个任务的执行。
在一些实现中,终止一个或多个任务的执行包括:如果检测到一个或多个任务在第一时间段到期前无法完成,在维持一个或多个任务的执行的同时监测第一服务的服务质量是否下降到服务质量阈值以下;以及响应于确定第一服务的服务质量下降到服务质量阈值以下,在处理单元上终止一个或多个任务中未完成的任务。
在一些实现中,该方法还包括:在存储区中存储用于配置第二服务的任务的参数值,参数值随着第二服务的任务的执行完成而被更新。
在一些实现中,该方法还包括:至少基于第一服务的另外的即时执行信息,确定处理单元的第二时间段,在第二时间段内处理单元暂停执行第一服务的任务;至少基于第二服务的任务的预计执行时长,选择第二服务中能够在第二时间段内完成的另外至少一个任务;以及在第二时间段内将第二服务的另外至少一个任务调度到处理单元执行,另外至少一个任务的执行基于所存储的参数值。
在一些实现中,该方法还包括执行以下至少一项:利用第一线程执行第一服务的任务的预处理操作以及利用第二线程执行第二服务的任务的预处理操作,第一线程的优先级高于第二线程的优先级,对于处理单元与存储器的接口,将接口的预定大小的接口带宽预留给第一服务,将第一服务相关的数据输入输出操作与第二服务的输入输出操作相隔离。
示例设备
图6示出了能够实施本公开的多个实现的电子设备的示意框图。应当理解,图6所示出的电子设备600仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。
如图6所示,电子设备600包括通用计算设备形式的电子设备600。电子设备600的组件可以包括但不限于一个或多个处理器或处理设备610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备650以及一个或多个输出设备660。
在一些实现中,电子设备600可以被实现为计算设备、计算系统、服务器、大型机等具有计算能力的设备。
处理设备610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备600的并行处理能力。处理设备610可以包括中央处理单元(CPU)、图形处理单元(GPU)、微处理器、控制器、和/或微控制器等。
电子设备600通常包括多个计算机存储介质。这样的介质可以是电子设备600可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器620可以包括易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储设备630可以包括可拆卸或不可拆卸的介质,并且可以包括计算机可读介质,诸如内存、闪存驱动、磁盘或者任何其他介质,其能够用于存储信息和/或数据并且可以在电子设备600内被访问。
电子设备600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
通信单元640实现通过通信介质与另外的计算设备进行通信。附加地,电子设备600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备600可以使用与一个或多个其他服务器、个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
输入设备650可以是一个或多个各种输入设备,例如鼠标、键盘、数据导入设备等。输出设备660可以是一个或多个输出设备,例如显示器、数据导出设备等。电子设备600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备600交互的设备进行通信,或者与使得电子设备600与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
在一些实现中,除了被集成在单个设备上之外,电子设备600的各个部件中的一些或所有部件还可以以云计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算组件被访问。云计算架构的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的组件和功能。备选地,它们可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
电子设备600可以用于实施本公开的多个实现中的资源管理。存储器620可以包括一个或多个模块,其具有一个或多个程序指令,这些模块可以由处理单元660访问和运行,以实现本文所描述的各种实现的功能。例如,存储器620可以包括资源管理模块622,用于执行对特定处理单元的资源管理。如图6所示,电子设备600可以通过输入设备650获取资源管理需要的输入,并可以通过输出设备660提供资源管理的输出。在一些实现中,电子设备600还可以经由通信单元640从其他设备(未示出)接收输入。
示例实现方式
以下列出了本公开的一些示例实现方式。
在一个方面,本公开提供了一种计算机实现的方法。该方法包括:至少基于第一服务的任务的即时执行信息,确定所述处理单元的第一时间段,在所述第一时间段内所述处理单元暂停执行所述第一服务的任务;至少基于第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第一时间段内完成的至少一个任务;以及在所述第一时间段内将所述第二服务的所述至少一个任务调度到所述处理单元执行。
在一些示例实现中,所述第一服务和所述第二服务在所述处理单元的占用方面具有不同的特性。
在一些示例实现中,所述第一服务在所述处理单元的资源占用方面的可预测性低于所述第二服务在所述处理单元的资源占用方面的可预测性。
在一些示例实现中,确定所述第一时间段包括:基于所述即时执行信息确定所述第一服务的第一任务的完成时间;基于所述第一服务的服务质量要求,确定所述第一服务的第二任务的预计开始时间,所述第二任务将在所述第一任务之后被执行;以及基于所述完成时间和所述预计开始时间,来确定所述第一时间段。
在一些示例实现中,所述即时执行信息包括被发送到所述处理单元的针对所述第一服务的命令队列。在一些示例实现中,确定所述第一任务的所述完成时间包括:从所述命令队列检测针对所述第一任务的启动命令;响应于检测到所述启动命令,在所述命令队列中添加用于通知所述第一任务的完成的通知命令;以及响应于接收到所述第一任务的完成的通知,确定所述第一任务的完成时间。
在一些示例实现中,所述第一服务包括流媒体服务,所述第一服务的任务包括所述流媒体服务的帧的处理任务,并且其中所述服务质量要求包括所述流媒体服务的帧率要求。
在一些示例实现中,所述第二服务包括机器学习模型的运行服务,或科学计算服务。
在一些示例实现中,所述方法还包括:通过在另一处理单元上执行至少一次所述第二服务的任务,来确定所述第二服务的任务的所述预计执行时长,所述另一处理单元与所述处理单元具有相同类型。
在一些示例实现中,所述方法还包括:在所述第二服务的所述至少一个任务的执行期间,如果检测到所述第二服务的所述至少一个任务中的一个或多个任务在所述第一时间段到期前无法完成,在所述处理单元上终止所述一个或多个任务的执行。
在一些示例实现中,终止所述一个或多个任务的执行包括:如果检测到所述一个或多个任务在所述第一时间段到期前无法完成,在维持所述一个或多个任务的执行的同时监测所述第一服务的服务质量是否下降到服务质量阈值以下;以及响应于确定所述第一服务的服务质量下降到所述服务质量阈值以下,在所述处理单元上终止所述一个或多个任务中未完成的任务。
在一些示例实现中,所述方法还包括:在存储区中存储用于配置所述第二服务的任务的参数值,所述参数值随着所述第二服务的任务的执行完成而被更新。
在一些示例实现中,所述方法还包括:至少基于所述第一服务的另外的即时执行信息,确定所述处理单元的第二时间段,在所述第二时间段内所述处理单元暂停执行所述第一服务的任务;至少基于所述第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第二时间段内完成的另外至少一个任务;以及在所述第二时间段内将所述第二服务的所述另外至少一个任务调度到所述处理单元执行,所述另外至少一个任务的执行基于所存储的所述参数值。
在一些示例实现中,所述方法还包括执行以下至少一项:利用第一线程执行所述第一服务的任务的预处理操作以及利用第二线程执行所述第二服务的任务的预处理操作,所述第一线程的优先级高于所述第二线程的优先级,对于所述处理单元与存储器的接口,将所述接口的预定大小的接口带宽预留给所述第一服务,将所述第一服务相关的数据输入输出操作与所述第二服务的输入输出操作相隔离。
在另一方面,本公开提供了一种电子设备。该电子设备包括:处理器;以及存储器,耦合至处理器并且包含存储于其上的指令,指令在由处理器执行时使设备执行以下动作,所述动作包括:至少基于第一服务的任务的即时执行信息,确定所述处理单元的第一时间段,在所述第一时间段内所述处理单元暂停执行所述第一服务的任务;至少基于第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第一时间段内完成的至少一个任务;以及在所述第一时间段内将所述第二服务的所述至少一个任务调度到所述处理单元执行。
在一些示例实现中,所述第一服务和所述第二服务在所述处理单元的占用方面具有不同的特性。
在一些示例实现中,所述第一服务在所述处理单元的资源占用方面的可预测性低于所述第二服务在所述处理单元的资源占用方面的可预测性。
在一些示例实现中,确定所述第一时间段包括:基于所述即时执行信息确定所述第一服务的第一任务的完成时间;基于所述第一服务的服务质量要求,确定所述第一服务的第二任务的预计开始时间,所述第二任务将在所述第一任务之后被执行;以及基于所述完成时间和所述预计开始时间,来确定所述第一时间段。
在一些示例实现中,所述即时执行信息包括被发送到所述处理单元的针对所述第一服务的命令队列。在一些示例实现中,确定所述第一任务的所述完成时间包括:从所述命令队列检测针对所述第一任务的启动命令;响应于检测到所述启动命令,在所述命令队列中添加用于通知所述第一任务的完成的通知命令;以及响应于接收到所述第一任务的完成的通知,确定所述第一任务的完成时间。
在一些示例实现中,所述第一服务包括流媒体服务,所述第一服务的任务包括所述流媒体服务的帧的处理任务,并且其中所述服务质量要求包括所述流媒体服务的帧率要求。
在一些示例实现中,所述第二服务包括机器学习模型的运行服务,或科学计算服务。
在一些示例实现中,所述动作还包括:通过在另一处理单元上执行至少一次所述第二服务的任务,来确定所述第二服务的任务的所述预计执行时长,所述另一处理单元与所述处理单元具有相同类型。
在一些示例实现中,所述动作还包括:在所述第二服务的所述至少一个任务的执行期间,如果检测到所述第二服务的所述至少一个任务中的一个或多个任务在所述第一时间段到期前无法完成,在所述处理单元上终止所述一个或多个任务的执行。
在一些示例实现中,终止所述一个或多个任务的执行包括:如果检测到所述一个或多个任务在所述第一时间段到期前无法完成,在维持所述一个或多个任务的执行的同时监测所述第一服务的服务质量是否下降到服务质量阈值以下;以及响应于确定所述第一服务的服务质量下降到所述服务质量阈值以下,在所述处理单元上终止所述一个或多个任务中未完成的任务。
在一些示例实现中,所述动作还包括:在存储区中存储用于配置所述第二服务的任务的参数值,所述参数值随着所述第二服务的任务的执行完成而被更新。
在一些示例实现中,所述动作还包括:至少基于所述第一服务的另外的即时执行信息,确定所述处理单元的第二时间段,在所述第二时间段内所述处理单元暂停执行所述第一服务的任务;至少基于所述第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第二时间段内完成的另外至少一个任务;以及在所述第二时间段内将所述第二服务的所述另外至少一个任务调度到所述处理单元执行,所述另外至少一个任务的执行基于所存储的所述参数值。
在一些示例实现中,所述动作还包括执行以下至少一项:利用第一线程执行所述第一服务的任务的预处理操作以及利用第二线程执行所述第二服务的任务的预处理操作,所述第一线程的优先级高于所述第二线程的优先级,对于所述处理单元与存储器的接口,将所述接口的预定大小的接口带宽预留给所述第一服务,将所述第一服务相关的数据输入输出操作与所述第二服务的输入输出操作相隔离。
在又一方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机存储介质中并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行以下动作,所述动作包括:至少基于第一服务的任务的即时执行信息,确定所述处理单元的第一时间段,在所述第一时间段内所述处理单元暂停执行所述第一服务的任务;至少基于第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第一时间段内完成的至少一个任务;以及在所述第一时间段内将所述第二服务的所述至少一个任务调度到所述处理单元执行。
在一些示例实现中,所述第一服务和所述第二服务在所述处理单元的占用方面具有不同的特性。
在一些示例实现中,所述第一服务在所述处理单元的资源占用方面的可预测性低于所述第二服务在所述处理单元的资源占用方面的可预测性。
在一些示例实现中,确定所述第一时间段包括:基于所述即时执行信息确定所述第一服务的第一任务的完成时间;基于所述第一服务的服务质量要求,确定所述第一服务的第二任务的预计开始时间,所述第二任务将在所述第一任务之后被执行;以及基于所述完成时间和所述预计开始时间,来确定所述第一时间段。
在一些示例实现中,所述即时执行信息包括被发送到所述处理单元的针对所述第一服务的命令队列。在一些示例实现中,确定所述第一任务的所述完成时间包括:从所述命令队列检测针对所述第一任务的启动命令;响应于检测到所述启动命令,在所述命令队列中添加用于通知所述第一任务的完成的通知命令;以及响应于接收到所述第一任务的完成的通知,确定所述第一任务的完成时间。
在一些示例实现中,所述第一服务包括流媒体服务,所述第一服务的任务包括所述流媒体服务的帧的处理任务,并且其中所述服务质量要求包括所述流媒体服务的帧率要求。
在一些示例实现中,所述第二服务包括机器学习模型的运行服务,或科学计算服务。
在一些示例实现中,所述动作还包括:通过在另一处理单元上执行至少一次所述第二服务的任务,来确定所述第二服务的任务的所述预计执行时长,所述另一处理单元与所述处理单元具有相同类型。
在一些示例实现中,所述动作还包括:在所述第二服务的所述至少一个任务的执行期间,如果检测到所述第二服务的所述至少一个任务中的一个或多个任务在所述第一时间段到期前无法完成,在所述处理单元上终止所述一个或多个任务的执行。
在一些示例实现中,终止所述一个或多个任务的执行包括:如果检测到所述一个或多个任务在所述第一时间段到期前无法完成,在维持所述一个或多个任务的执行的同时监测所述第一服务的服务质量是否下降到服务质量阈值以下;以及响应于确定所述第一服务的服务质量下降到所述服务质量阈值以下,在所述处理单元上终止所述一个或多个任务中未完成的任务。
在一些示例实现中,所述动作还包括:在存储区中存储用于配置所述第二服务的任务的参数值,所述参数值随着所述第二服务的任务的执行完成而被更新。
在一些示例实现中,所述动作还包括:至少基于所述第一服务的另外的即时执行信息,确定所述处理单元的第二时间段,在所述第二时间段内所述处理单元暂停执行所述第一服务的任务;至少基于所述第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第二时间段内完成的另外至少一个任务;以及在所述第二时间段内将所述第二服务的所述另外至少一个任务调度到所述处理单元执行,所述另外至少一个任务的执行基于所存储的所述参数值。
在一些示例实现中,所述动作还包括执行以下至少一项:利用第一线程执行所述第一服务的任务的预处理操作以及利用第二线程执行所述第二服务的任务的预处理操作,所述第一线程的优先级高于所述第二线程的优先级,对于所述处理单元与存储器的接口,将所述接口的预定大小的接口带宽预留给所述第一服务,将所述第一服务相关的数据输入输出操作与所述第二服务的输入输出操作相隔离。
在又一方面,本公开提供了一种计算机可读介质,其上存储有计算机可执行指令,计算机可执行指令在由设备执行时使设备执行上述方面的方法的一个或多个示例实现。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种计算机实现的方法,包括:
至少基于第一服务的任务的即时执行信息,确定所述处理单元的第一时间段,在所述第一时间段内所述处理单元暂停执行所述第一服务的任务;
至少基于第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第一时间段内完成的至少一个任务;以及
在所述第一时间段内将所述第二服务的所述至少一个任务调度到所述处理单元执行。
2.根据权利要求1所述的方法,其中所述第一服务在所述处理单元的资源占用方面的可预测性低于所述第二服务在所述处理单元的资源占用方面的可预测性。
3.根据权利要求1所述的方法,其中确定所述第一时间段包括:
基于所述即时执行信息确定所述第一服务的第一任务的完成时间;
基于所述第一服务的服务质量要求,确定所述第一服务的第二任务的预计开始时间,所述第二任务将在所述第一任务之后被执行;以及
基于所述完成时间和所述预计开始时间,来确定所述第一时间段。
4.根据权利要求3所述的方法,其中所述即时执行信息包括被发送到所述处理单元的针对所述第一服务的命令队列,其中确定所述第一任务的所述完成时间包括:
从所述命令队列检测针对所述第一任务的启动命令;
响应于检测到所述启动命令,在所述命令队列中添加用于通知所述第一任务的完成的通知命令;以及
响应于接收到所述第一任务的完成的通知,确定所述第一任务的完成时间。
5.根据权利要求3所述的方法,其中所述第一服务包括流媒体服务,所述第一服务的任务包括所述流媒体服务的帧的处理任务,并且其中所述服务质量要求包括所述流媒体服务的帧率要求。
6.根据权利要求1所述的方法,其中所述第二服务包括机器学习模型的运行服务,或科学计算服务。
7.根据权利要求1所述的方法,还包括:
通过在另一处理单元上执行至少一次所述第二服务的任务,来确定所述第二服务的任务的所述预计执行时长,所述另一处理单元与所述处理单元具有相同类型。
8.根据权利要求1所述的方法,还包括:在所述第二服务的所述至少一个任务的执行期间,
如果检测到所述第二服务的所述至少一个任务中的一个或多个任务在所述第一时间段到期前无法完成,在所述处理单元上终止所述一个或多个任务的执行。
9.根据权利要求8所述的方法,其中终止所述一个或多个任务的执行包括:
如果检测到所述一个或多个任务在所述第一时间段到期前无法完成,在维持所述一个或多个任务的执行的同时监测所述第一服务的服务质量是否下降到服务质量阈值以下;以及
响应于确定所述第一服务的服务质量下降到所述服务质量阈值以下,在所述处理单元上终止所述一个或多个任务中未完成的任务。
10.根据权利要求8所述的方法,还包括:
在存储区中存储用于配置所述第二服务的任务的参数值,所述参数值随着所述第二服务的任务的执行完成而被更新。
11.根据权利要求10所述的方法,还包括:
至少基于所述第一服务的另外的即时执行信息,确定所述处理单元的第二时间段,在所述第二时间段内所述处理单元暂停执行所述第一服务的任务;
至少基于所述第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第二时间段内完成的另外至少一个任务;以及
在所述第二时间段内将所述第二服务的所述另外至少一个任务调度到所述处理单元执行,所述另外至少一个任务的执行基于所存储的所述参数值。
12.根据权利要求1所述的方法,还包括执行以下至少一项:
利用第一线程执行所述第一服务的任务的预处理操作以及利用第二线程执行所述第二服务的任务的预处理操作,所述第一线程的优先级高于所述第二线程的优先级,
对于所述处理单元与存储器的接口,将所述接口的预定大小的接口带宽预留给所述第一服务,
将所述第一服务相关的数据输入输出操作与所述第二服务的输入输出操作相隔离。
13.一种电子设备,包括:
处理器;以及
存储器,耦合至所述处理器并且包含存储于其上的指令,所述指令在由所述处理器执行时使所述设备执行以下动作,所述动作包括:
至少基于第一服务的任务的即时执行信息,确定所述处理单元的第一时间段,在所述第一时间段内所述处理单元暂停执行所述第一服务的任务;
至少基于第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第一时间段内完成的至少一个任务;以及
在所述第一时间段内将所述第二服务的所述至少一个任务调度到所述处理单元执行。
14.根据权利要求13所述的设备,其中所述第一服务在所述处理单元的资源占用方面的可预测性低于所述第二服务在所述处理单元的资源占用方面的可预测性。
15.根据权利要求13所述的设备,其中确定所述第一时间段包括:
基于所述即时执行信息确定所述第一服务的第一任务的完成时间;
基于所述第一服务的服务质量要求,确定所述第一服务的第二任务的预计开始时间,所述第二任务将在所述第一任务之后被执行;以及
基于所述完成时间和所述预计开始时间,来确定所述第一时间段。
16.根据权利要求15所述的设备,其中所述即时执行信息包括被发送到所述处理单元的针对所述第一服务的命令队列,其中确定所述第一任务的所述完成时间包括:
从所述命令队列检测针对所述第一任务的启动命令;
响应于检测到所述启动命令,在所述命令队列中添加用于通知所述第一任务的完成的通知命令;以及
响应于接收到所述第一任务的完成的通知,确定所述第一任务的完成时间。
17.根据权利要求15所述的设备,其中所述第一服务包括流媒体服务,所述第一服务的任务包括所述流媒体服务的帧的处理任务,并且其中所述服务质量要求包括所述流媒体服务的帧率要求。
18.根据权利要求13所述的设备,其中所述第二服务包括机器学习模型的运行服务,或科学计算服务。
19.根据权利要求13所述的设备,还包括:在所述第二服务的所述至少一个任务的执行期间,
如果检测到所述第二服务的所述至少一个任务中的一个或多个任务在所述第一时间段到期前无法完成,在所述处理单元上终止所述一个或多个任务的执行。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机存储介质中并且包括计算机可执行指令,计算机可执行指令在由设备执行时使设备执行以下动作,所述动作包括:
至少基于第一服务的任务的即时执行信息,确定所述处理单元的第一时间段,在所述第一时间段内所述处理单元暂停执行所述第一服务的任务;
至少基于第二服务的任务的预计执行时长,选择所述第二服务中能够在所述第一时间段内完成的至少一个任务;以及
在所述第一时间段内将所述第二服务的所述至少一个任务调度到所述处理单元执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210806930.0A CN117407149A (zh) | 2022-07-08 | 2022-07-08 | 处理单元的资源利用 |
PCT/US2023/024633 WO2024010665A1 (en) | 2022-07-08 | 2023-06-07 | Resource utilization of a processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210806930.0A CN117407149A (zh) | 2022-07-08 | 2022-07-08 | 处理单元的资源利用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407149A true CN117407149A (zh) | 2024-01-16 |
Family
ID=87070788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210806930.0A Pending CN117407149A (zh) | 2022-07-08 | 2022-07-08 | 处理单元的资源利用 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117407149A (zh) |
WO (1) | WO2024010665A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2894564A1 (en) * | 2014-01-10 | 2015-07-15 | Fujitsu Limited | Job scheduling based on historical job data |
CN111752706B (zh) * | 2020-05-29 | 2024-05-17 | 北京沃东天骏信息技术有限公司 | 资源配置方法、装置及存储介质 |
CN113568728A (zh) * | 2021-07-30 | 2021-10-29 | 济南浪潮数据技术有限公司 | 一种作业调度方法、装置、设备及介质 |
-
2022
- 2022-07-08 CN CN202210806930.0A patent/CN117407149A/zh active Pending
-
2023
- 2023-06-07 WO PCT/US2023/024633 patent/WO2024010665A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024010665A1 (en) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188392B2 (en) | Scheduling system for computational work on heterogeneous hardware | |
JP6799947B2 (ja) | スライディングタイムウィンドウを用いてタスクをスケジュール設定するためのシステムおよび方法 | |
KR100628492B1 (ko) | 실시간 동작 수행방법 및 시스템 | |
WO2010082244A1 (ja) | 情報処理装置および情報処理方法 | |
JP6191691B2 (ja) | 異常検出装置、制御方法、及びプログラム | |
US10782999B2 (en) | Method, device, and single-tasking system for implementing multi-tasking in single-tasking system | |
JP2000353099A (ja) | アクティブ・パイプラインにおける流れ制御方法 | |
CN112445615A (zh) | 一种线程的调度系统、计算机设备和存储介质 | |
CN109491780B (zh) | 多任务调度方法及装置 | |
Li et al. | Towards minimizing resource usage with QoS guarantee in cloud gaming | |
US20210149726A1 (en) | Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium | |
US11307895B2 (en) | Auto-scaling cloud-based memory-intensive applications | |
Gentry et al. | Robust dynamic resource allocation via probabilistic task pruning in heterogeneous computing systems | |
US20240202024A1 (en) | Thread processing methods, scheduling component, monitoring component, server, and storage medium | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN104598311A (zh) | 一种面向Hadoop的实时作业公平调度的方法和装置 | |
US20130125131A1 (en) | Multi-core processor system, thread control method, and computer product | |
Zhang et al. | {PilotFish}: Harvesting Free Cycles of Cloud Gaming with Deep Learning Training | |
WO2019187719A1 (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
CN109766168B (zh) | 任务调度方法和装置、存储介质以及计算设备 | |
EP2905703A1 (en) | Parallel computer system, control method of parallel computer system, and computer-readable storage medium | |
CN117407149A (zh) | 处理单元的资源利用 | |
Roitzsch et al. | Atlas: Look-ahead scheduling using workload metrics | |
US20230140272A1 (en) | Trajectory-based hierarchical autoscaling for serverless applications | |
CN112685158B (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 |