CN102859492A - 用于gpu命令调度的技术 - Google Patents

用于gpu命令调度的技术 Download PDF

Info

Publication number
CN102859492A
CN102859492A CN2011800213197A CN201180021319A CN102859492A CN 102859492 A CN102859492 A CN 102859492A CN 2011800213197 A CN2011800213197 A CN 2011800213197A CN 201180021319 A CN201180021319 A CN 201180021319A CN 102859492 A CN102859492 A CN 102859492A
Authority
CN
China
Prior art keywords
gpu
order
buffering
applicable
scheduler
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.)
Granted
Application number
CN2011800213197A
Other languages
English (en)
Other versions
CN102859492B (zh
Inventor
P.珀森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN102859492A publication Critical patent/CN102859492A/zh
Application granted granted Critical
Publication of CN102859492B publication Critical patent/CN102859492B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本文描述了一种用于调度图形处理单元(GPU)命令的分派的技术。此技术的方法实现包括从多个应用接收命令,缓冲接收的命令,以及将缓冲的命令作为命令批向GPU分派。分派经调度,从而在向GPU分派的两个连续命令批之间形成GPU闲置期。

Description

用于GPU命令调度的技术
技术领域
本公开一般涉及在异构计算环境中的命令调度,并且具体地说,涉及用于图形处理单元(GPU)的命令的调度。
背景技术
GPU一直在固定计算机中使用,并且今天也正变成诸如移动电话等手持式装置的重要技术特征。虽然最初目的是用于3D图形的加速,但今天GPU用于大量的另外处理密集型图形任务,如2D图形渲染、多个图形层合成单个图像、图像和视频处理及用户接口加速。
固有的体系结构平行机制使GPU特别适用于图形任务,但在通用计算领域中许多情况下在GPU而不是中央处理单元(CPU)上执行任务时也存在速度和功率益处。特别是在异构嵌入装置中,CPU经常是关键资源,而GPU一般利用不足。通用GPU (GPGPU)因此正变得越来越普遍,并且对应的标准(OpenCL)最近已由科纳斯组织(Khronos group)定义。
WO 2009/111045 A1描述了用于GPU的一种典型环境体系结构。由客户端应用生成的图形命令异步写入命令缓冲器。窗口服务器配置成检测客户端应用生成图形命令。窗口服务器分析单独的图像以确定是否要为此图像启动合成处理。在合成处理期间,图像与其它客户端应用的一个或多个其它图形或视频层组合,并且对应的合成图形命令随后存储在命令缓冲器中。
GPU驱动程序从命令缓冲器按命令由客户端应用和窗口服务器写入的顺序读取图形命令集。GPU驱动程序具有批生成器模块,该模块从检索自命令缓冲器的图形命令准备一批图形命令。一旦准备好后,便将该批图形命令(对应于图像数据的一个帧)经硬件命令队列在单个事务中发送到GPU。
从批生成器模块到GPU的图像命令批的传送由GPU驱动程序的通知处理程序模块控制。通知处理程序从GPU接收指示GPU准备好接收另外命令的通知消息。通知消息是基于从GPU发送到托管GPU驱动程序的CPU的中断。
诸如WO 2009/111045 A1中所述体系结构等常规GPU体系结构的一个缺陷是它们不防止单独的应用独占或甚至阻塞GPU的事实。为此原因,已提议GPU命令调度器。
Mikhail Bautin、Ashok Dwarakinath和Tzi-Cker Chiueh所著“图形引擎资源管理”("Graphics Engine Resource Management", Proceedings of 15th Multimedia Computing and Networking Conference, 2008, SPIE 28 January 2008)提议了一种GPU命令调度器,该调度器通过其CPU调度优先级控制应用的GPU命令生产率。具体而言,以GPU调度匹配GPU调度器的资源分配决定的此类方式调度GPU命令。因此,无论应用特定需求如何,平均份额的GPU时间能够分配到每个应用。
M. Bautin等人建议的GPU命令调度器的软件实现包括用于请求GPU资源的每个应用的专用命令队列。通过使用加权循环调度策略,从这些“预应用”命令队列调度GPU命令群。
人们发现,常规GPU命令调度方案仍有某些缺点。例如,调度一般以应用为中心,这意味着在命令调度过程期间,未将各个GPU的特定需要和可能性考虑在内。
US 2008/303833 A1 公开了用于通知共享显示驱动程序以包括多个图形处理单元(GPU)分别渲染的多个图形数据的图形帧来更新显示的方法和设备。
Chia-Ming Chang等人所著“用于低功率图形处理单元的节能技术”("Energy-saving techniques for low-power graphics processing unit", International SoC Design Conference, 2008, IEEE, Piscataway, NJ, USA)公开了带有节能技术的一种GPU,它允许从算法、体系结构与电路级别以低功耗实现高性能。
US 2005/125701 A1公开了用于在处理系统内提供能源管理的方法和系统,它能够借助于通过过程的智能调度和符合每个过程的能源使用的测量级别来管理过程,从而降低能耗。
发明内容
本公开的目的是提供用于GPU的命令调度技术,以避免常规(例如,以应用为中心的)调度方案的特定缺点。
根据第一方面,提供了一种调度GPU命令的分派的方法,其中,方法包括从多个应用接收命令,缓冲接收的命令,以及将缓冲的命令作为批向GPU分派。分派基于调度,调度被确定以在向GPU分派的两个连续命令批之间形成GPU闲置期。
在一个示范实现中,命令批被分派到GPU驱动程序。这样,分派过程可与GPU本身启动的处理请求分离(例如,参阅WO 2009/111045 A1)。
以控制GPU闲置期的形成为目的调度命令批的分派可准许GPU降低其功耗。例如,GPU可在由此形成的闲置期内进入节能模式或者甚至转入睡眠状态。调度可在操作系统的控制下执行。相应地,操作系统可获得GPU处理周期的控制。
为最大化闲置期,可实现一个或多个闲置期扩展过程。一个此类闲置期扩展过程可包括排除向GPU分派一个或多个缓冲的命令。为此,可在第一步骤中分析缓冲的命令。在第二步骤中,可根据分析的结果,排除向GPU分派一个或多个分析的命令。
缓冲的命令的分析可以许多不同方式执行。例如,可使用基于图表的分析方案。在此类基于图表的分析方案中,可形成缓冲的命令的分层或非分层图表表示。从缓冲的命令形成的图表可包括节点和边。在一个变型中,每个节点表示在应用到零个、一个或多个源表面的每个表面时产生特定目的地表面的一个或多个缓冲的命令。在此变型中,每个边可链接代表一个目的地表面的第一节点和代表用于第一节点的一个源表面的第二节点。
如本文中所理解的一样,表面可以是由包含定义表面的图形有关信息的数据结构表示的抽象实体。图形有关信息可包括涉及在显示装置上的特定图形对象、图像任务和/或图形区域的GPU命令的逻辑编组。
例如,每个表面可具有表面范围和表面内容(每个可由对应的数据结构部分表示)。表面范围可指示在显示装置上输出时表面内容的大小(例如,高度和宽度)和/或位置。另一方面,表面内容可由与表面相关联的至少一个缓冲的命令定义。例如,表面内容可由通过执行与表面相关联的至少一个缓冲的命令而形成的中间表示定义。中间表示例如可采用(例如,符合JPEG或任何其它图形标准的图像文件的)图像或纹理的形式。另外,或者备选,表面内容可由至少一个作业定义。每个作业可包括涉及特定源表面的一个或多个缓冲的命令。
在一个实现中,在每个分派过程前解析图表以确定要分派的缓冲的命令。另外,可在每个分派过程后(至少部分)再重新形成图表。在图表的部分再形成期间,可再使用涉及自上次分派过程以来一直未更改的缓冲的命令的一个或多个以前形成的图表部分(例如,子图表)。另外,对于自上次分派过程以来一直未更改的缓冲的命令,可形成相关联的中间表示。通过执行这些命令并在代表中间表示的数据结构中存储执行结果,可形成中间表示。
分析缓冲的命令可包括解析图表以确定能够跳过的至少一个图表部分(例如,节点或子图表)。随后,可排除向GPU分派与能够跳过的图表部分有关的缓冲的命令。跳过的图表部分可涉及另一表面隐藏的表面(或表面的一部分)。另外或备选,跳过的图表部分可涉及在与跳过的图表部分相关联的缓冲的命令的以前执行期间已生成和存储的中间表示。
调度可定义显示装置的显示更新率。因此,可通过调度动态控制显示更新率。在一个示例中,调度将至少GPU和CPU之一的当前处理能力(例如,工作负载)考虑在内。如果一个或多个中间表示可用,则可检索并在显示装置上渲染中间表示而不是在即将到来的显示更新过程期间执行(已排除向GPU分派的)缓冲的命令。如将理解的一样,中间表示消耗存储器资源但节省处理(例如,GPU)资源。
在又一实现中,可分析缓冲的命令以确定与缓冲的命令相关联的总GPU工作负载。根据工作负载确定,可启动在GPU与至少另一GPU和CPU之一之间的工作负载平衡。
可经GPU应用编程接口(API)从各种应用接收GPU命令。另外,命令批可分派到负责向GPU馈送GPU命令的GPU驱动程序。
根据另一方面,提供了一种计算机程序产品。计算机程序产品包括程序代码部分,程序代码部分在计算装置上执行时,促使计算装置执行本文中所述任何方法的步骤。计算机程序产品可存储在诸如永久性或可重写存储器、CD-ROM或DVD等计算机可读记录介质上。计算机程序产品也可提供用于经诸如因特网、蜂窝电信网络或无线或有线局域网(LNA)等一个或多个计算机网络的下载。
根据还有的另一方面,提供了一种用于GPU命令的调度器,其中,调度器包括适用于从多个应用接收命令的接口、适用于缓冲接收的命令的缓冲器及适用于将缓冲的命令作为命令批向GPU分派的控制器。控制器配置成基于调度控制分派,调度被确定以在向GPU分派的两个连续命令批之间形成GPU闲置期。
控制器也可适用于分析缓冲的命令并且根据分析的结果排除向GPU分派一个或多个分析的命令。控制器可还适用于从缓冲的命令形成图表(如上概括所述)。随后,可由控制器在分析缓冲的命令时解析图表以确定能够跳过的至少一个图表部分。随后,排除向GPU分派与能够跳过的图表部分有关的缓冲的命令。能够跳过的图表部分的几个示例已经在上面描述。
在调度定义显示更新率的情形中,控制器可还适用于根据至少GPU和CPU之一的当前处理能力,动态控制显示更新率。另外,控制器也可适用于分析缓冲的命令以确定与缓冲的命令相关联的总GPU工作负载,以及根据工作负载确定启动在GPU与至少另一GPU和CPU之一之间的工作负载平衡。
用于接收GPU命令的调度器接口可采用GPU API的形式。另外,调度器可还包括或连接到适用于接收分派的GPU命令的GPU驱动程序。GPU驱动程序又可配置成向GPU馈送从调度器接收的GPU命令。
附图说明
在下述内容中,将参照图形中所示的示范实施例,更详细地论述本文中所述的技术,其中
图1以示意图方式示出根据本文中所述技术的一实施例的在应用与GPU驱动程序/GPU之间的命令调度器的布置;
图2以示意图方式示出包括图1的命令调度器的移动终端的一实施例;
图3是示出调度过程的一方法实施例的示意流程图;
图4是示出GPU闲置期的形成的示意图;
图5是示出在用于图形应用的GPU与CPU之间的工作负载平衡过程的示意图;
图6是示出作业图表的形成的示意图;
图7是示出作业图表的内容的示意图;
图8示出作业图表的简化表示;
图9示出作业图表的第一示例和显示屏幕的相关联渲染结果;以及
图10和11示出作业图表的第二示例和显示屏幕的相关联渲染结果。
具体实施方式
在下面的描述中,为便于说明而不是限制,陈述了特定的细节,如特定的装置配置和特定的图形内容处理及显示情形,以便提供本文中公开技术的详尽理解。本领域的技术人员将明白,在脱离这些特定细节的其它实施例中也可实践此技术。
本领域的人员还将理解,可通过使用单独的硬件电路,使用结合按照程序工作的微处理器或通用计算机起作用的软件,使用专用集成电路(ASIC)和/或使用一个或多个数字信号处理器(DSP),实现本文中说明的方法、步骤和功能。也将理解的是,虽然下面的实施例将主要以方法和装置的形式描述,但本文中公开的技术也可在一个或多个处理单元和耦合到处理单元的存储器中实施,其中,存储器存储在由一个或多个处理单元执行时执行本文中论述的步骤的一个或多个程序。
图1示出根据本文中所述技术的一实施例的GPU命令调度器140的实现情形。如图1所示,命令调度器140位于在一方面的生成GPU命令的多个应用与另一方面的GPU 180的GPU驱动程序160之间。在图1所示示例中,命令调度器140包括适用于从应用接收对应GPU命令的2D图形API及3D图形API。命令调度器140还包括配置成接收和/或生成从应用生成的两个或更多GPU命令推导的合成命令的接口。
GPU命令将在各个命令批(command batch)中分派到GPU驱动程序160并因此分派到GPU 180之前由命令调度器140缓冲,而不是由每个应用经GPU驱动程序160直接发送GPU命令到GPU 180。因此,GPU 180将受到保护,防止各种应用的未经协调访问,未经协调访问会防止GPU 180转入睡眠状态或启动本地节能措施以及不能与系统级资源和电源管理方案协作。
一旦GPU命令由命令调度器140缓冲,便能够分析,简化,删除缓冲的GPU命令等等。具体而言,操作系统(OS)经命令调度器140变得控制GPU使用。OS因此可控制在GPU 180与CPU(或又一GPU)之间如何分布负载。另外,OS可控制命令调度器140以便实现GPU 180与系统级资源和电源管理方案的协作。例如,OS可经命令调度器140限制显示更新率以降低总负载和系统功耗。
命令调度器140的这些和其它有利方面现在将参照图2到11更详细地描述。相同的标号将用于表示相同或类似的组件。
图2示出在移动终端100中的命令调度器140的示范实现。在图2中,移动终端100示成采用移动电话(例如,智能电话)的形式。将容易理解的是,命令调度器140也能够在诸如个人计算机或膝上型计算机等其它装置中实现。
图2所示移动终端100除命令调度器140外还包括CPU 120、GPU驱动程序160、GPU 180及显示装置200。CPU 120配置成执行OS 210和各种应用的程序代码。OS 210配置成控制命令调度器140。应注意的是,虽然在CPU 120上运行的应用配置成生成GPU命令,但应用无需一定是3D图形应用。更确切地说,应用也可以是例如利用GPU 180作为GPGPU以减轻CPU 120负载的2D图形、图像处理、视频和通用应用。
如图2所示,命令调度器140包括GPU API 220形式的朝向CPU 120的接口。GPU API 220例如可组合图1所示的2D图形API和3D图形API的功能性。GPU API 220可另外配置成如上参照图1所论述接收和/或生成合成命令。
命令调度器140还包括位于GPU API 220下游的命令缓冲器240。命令缓冲器240配置成暂时存储经GPU API 220接收的GPU命令。在一个实现中,命令缓冲器240以命令队列的形式实现(例如,根据FIFO范例)。
命令调度器140的控制器260适用于在各个命令批中将命令从命令缓冲器240分派到GPU驱动程序160。控制器260调度各个命令批的分派,从而在朝向GPU 180分派的两个连续命令批之间形成GPU闲置期。控制器260进行的分派过程的调度可将从OS 210接收的信息或指令考虑在内。这样,GPU命令调度可与系统级资源和电源管理方案协调一致。
GPU驱动程序160从命令调度器140的命令缓冲器240接收GPU命令批。由此接收的GPU命令由GPU驱动程序160根据常规命令馈送策略馈送到GPU 180(例如,参阅WO 2009/111045 A1)。
现在将参照图3的示范流程图300中所示的方法实施例,更详细地描述命令调度器140的操作。
如图3所示,调度过程从命令调度器140从在CPU 120上运行的多个应用接收GPU命令开始(步骤302)。这些GPU命令可涉及图形有关的处理操作以更新在显示装置200上的呈现。另外或备选,GPU命令可与根据例如OS 210实行的负载平衡方案从CPU 120卸载到GPU 180的通用处理操作有关。
在下一步骤304中,从各种应用接收的GPU命令暂时存储在命令缓冲器240中。GPU命令的缓冲可以许多不同方式执行。根据一个示范缓冲方案,在命令缓冲器240中根据有利于控制器260分析缓冲的命令的命令图表将GPU命令排队。
在又一步骤306中,控制器260将缓冲的命令作为单个命令批分派到GPU驱动程序160并因此向GPU 180分派。控制器260调度分派,从而在两个连续命令批之间形成GPU闲置期。图4示出从两个连续命令批的处理产生的两个GPU活动期之间的此类闲置期。在闲置期内,GPU 180可转入睡眠状态或进入低功率模式。结果功率降低对诸如图2的移动终端100等电池操作装置特别有益。
图4的闲置期是命令调度器140防止GPU 180由在CPU 120上运行的多个应用程序“随机访问”的结果。这些“随机访问”产生自各种应用相互独立形成其GPU命令的事实。因此,在来自不同应用的两个连续GPU命令之间的时期将长到足以准许GPU 180进入低功率模式或转入睡眠状态的机会极少。只有借助于在生成GPU命令的应用与处理GPU命令的GPU 180之间插入命令调度器140,才能够实现以最大化闲置期为目的的缓冲和缓冲的GPU命令的成批分派。具体而言,分派可如一般从WO 2009/111045 A1所知变得独立于GPU请求。
命令批从命令缓冲器240的分派可由OS 210根据系统级资源或电源管理方案触发或调整。例如,OS 210可通过控制(例如,动态调整)在两个连续分派过程之间的时期,控制显示装置210的显示更新率。相应地,显示更新率可由OS 210主动限制,以限制总负载和功耗(例如,根据移动终端100的当前电池状态)。
备选或另外,OS 210可通过如图5概述所示,允许在运行时在CPU 120与GPU 180之间的负载平衡,在系统级资源和电源管理方案中包含GPU 180。如图5所示,示范2D图形命令的处理可根据当前系统负载在CPU 120与GPU 180之间分布。
图5的上部分图形中所示的工作负载分布情形示出只依赖CPU 120并仅将GPU 180用于2D图形命令合成的渲染2D图形的“传统”方式。在系统工作负载增大时,如图5的中间的图形所示,合理的处理量可从CPU 120转移到GPU 180。由此,与顶部图形所示的方案相比,CPU负载降到30%。GPU负载上升,但由于仅GPU已优化用于的处理任务(例如,要求并行处理的任务)转移到GPU 180,因此,上升的量不如CPU负载降低的量。
在下部图形中,GPU使用被最大化,而CPU使用被最小化。此方案也包括将不特别适用于GPU 180的任务从CPU 120转移到GPU 180。因此,与从顶部图到中间图的过渡相比,总效率增益更低。
在顶部图所示的工作负载分布情形中,CPU 120可能变成可能的瓶颈,而在底部图形中,GPU 180可能变成瓶颈。在CPU 120与GPU 180之间适当的工作负载平衡将在运行时执行。
应注意的是,图5所示情形只示出请求CPU和GPU处理资源的许多客户端应用之一。除图5所示2D图形应用外,3D图形应用和其它图形或非图形应用可与图5示范示出的2D图形应用同时请求对应处理资源。
在下面,将参照图6到11,描述最大化在两个连续命令批之间的闲置期的基于图表的方案。如作为图1所示实施例的扩展的图6所示,命令调度器140的基于图表的功能性由控制器260提供。具体而言,基于在命令缓冲器240当前存储的命令,控制器260形成作业。基于作业,控制器260形成和维护分层作业图表。可基于新近到达命令缓冲器240的命令,在每个分派过程后(至少部分)再形成作业图表。
一旦作业图表已形成,便由控制器260对其进行分析以确定是否能够排除任何当前缓冲的命令与下一命令批一起向GPU 180分派。如容易理解的一样,排除一个或多个缓冲的命令分派到GPU将扩展GPU闲置期,并因此有助于降低GPU功耗。
图7示出由控制器260为缓冲的命令集形成的分层作业图表的一实施例。简要地说,作业图表包括节点(也称为表面)和链接表面的边(或顶点)。每个表面与一个或多个作业相关联,并且每个作业由在命令缓冲器240中当前包含的一个或多个命令定义。表面可备选由从其相关联作业的执行产生的所谓中间表面定义。根表面表示为屏幕,并且表示显示装置200的总显示区域。
通常,能够将表面视为定义表面范围属性和表面内容的抽象实体(例如,数据结构)。表面范围可简单地指示在显示装置200上渲染时表面内容的大小(例如,宽度和高度)和(可选地)位置。表面范围可由多边形定义。多边形可使用归一化坐标及变换矩阵定义,变换矩阵允许将归一化坐标变换成装置或用户空间坐标系统的自定义坐标。
表面内容可由作业的有序列表描述,每个作业可选地具有到另一表面的引用(“边”),由此构成定向图表。备选,内容可由通过执行根源在表面的作业列表(可能递归到组成表面)而形成的中间表示(一般为图像或纹理)描述。中间表示因此能够视为表面的属性,表示执行相关联作业列表的结果。一旦中间表示已形成,它便可存储以供以后再使用,并且除非在将来的显示周期内在基础作业或表面中有更改,否则,它无需再形成。
以类似方式,作业能够视为定义一个或多个以下数据项目的数据结构:
1)在命令缓冲器240中当前存储的一个或多个GPU命令和相关联数据(如指示边的数据等)的序列(有序集);
2)目的地表面(即,受与此作业相关联的GPU命令的执行影响的表面);
3)可选源表面,对其应用作业作为输入;以及
4)扩展(例如,指示作业应用到的区域的外接多边形)。
图7的复杂作业图表能够如图8所示简化,并且此类简化表示将在下面更详细地论述以说明子图表(“图表部分”)、公共子图表的概念和在子图表与中间表示之间的关系。
图9示出在一方面编组成作业图表的多个作业与另一方面在显示装置200上产生特定渲染的屏幕之间的关联。如图9所示,作业可与涉及清空表面内容,绘制表面内容,调整表面内容大小,定位表面内容,混合表面内容等的图形命令有关。总共定义了三个不同表面A、B和C,并且将各个作业与表面中的各个表面相关联。
图10和11示出在显示装置200渲染的内容的关系之间的又一示例(参见图10)和基于在显示装置200上产生对应内容渲染的缓冲的GPU命令形成的对应作业图表(图11)。
如图11所示,7个表面S0到S6根源在屏幕表面。屏幕表面本身包括三个子图表或图表部分:                                               
Figure 2011800213197100002DEST_PATH_IMAGE002
Figure 2011800213197100002DEST_PATH_IMAGE004
Figure DEST_PATH_IMAGE006
。子图表
Figure DEST_PATH_IMAGE008
由表面S0和S1共享,并因此组成到S0和S1的公共子图表。图10是视频聊天的模型,在其示范内容渲染中,S3是通过组合前景(S5/女性)和背景(S6/山脉)构成的图像,其由聊天图像(S0)及其倒影(S1)两者使用。
由于S3由S0和S1两者使用,并且S3通过组合S5和S6构成,因此,通过在由S0第一次使用时渲染S3成中间表示(例如,图像文件),并且在同一个显示更新周期直接将中间表示再用于S1,可用GPU处理资源(组合两个图像)交换存储器资源(用于S3的存储空间)。另外,只要S5和S6或其相应作业列表中的作业/命令继续在命令缓冲器240中存在,中间表示便能够也再用于将来显示更新周期。
一旦中间表示已生成并存储在相关联存储器(图2中未示出)中,涉及中间表示的子图表便可在下一显示更新周期内跳过,这意味着可排除分派在命令缓冲器240中的对应GPU命令到GPU 180。更确切地说,将从存储器检索中间表示以便在即将到来的更新周期内渲染,而不分派对应命令到GPU 180。
应注意的是,在当前嵌入式平台上,存储器能够比GPU处理资源更昂贵,因此,是否为公共子图表生成中间表示的决定可取决于特定硬件体系结构。备选或另外,也可基于GPU 180的当前工作负载和其它参数做出决定。
通常,需要在每个分派过程后基于新近写入命令缓冲器240的命令再形成作业图表(并且可从命令缓冲器240删除分派的命令)。然而,在某些情况下,在生成新作业图表时可能可再使用以前作业图形的现有部分(即,执行部分更新)。这意味着可能不必为即将到来的显示更新周期再形成整个作业图表。
假定有图11的作业图表,如果应用通过添加/删除单独的作业或者更改作业的顺序而更改S4的内容,则先验已知根源不在S2的子图表将不受S4的内容更改影响。作为示例,如果S0和S1已变成中间表示(例如,图像),则获得在显示装置200上的最终渲染所需进行的所有操作是渲染S2,并随后将它与S0和S1的中间表示组合到如用于屏幕表面的作业列表定义的屏幕表面上(应记住,如本文中理解的“屏幕”是表面,并且不一定是显示装置200的物理屏幕)。由于部分更新的原因,能够简化作业图表的生成。
在上面论述的示例中,作业图表由控制器260解析以确定能够跳过的子图表,使得能够排除向GPU 180分派相关联的缓冲的命令。排除向GPU 180分派缓冲的命令的又一可能性产生于涉及在显示装置200上渲染时由另一表面隐藏的表面(或表面的一部分)的子图表。
如上已论述的一样,表面和作业具有例如以多边形的形式定义其边界的扩展属性。基于扩展属性,能够由控制器260确定由特定表面或作业在显示装置200上的渲染是否将可看到。在此确定期间,也考虑如在作业图表中定义的表面和作业的执行顺序。如上所述,作业以有序列表的形式存储在作业图表中,并且表面在作业图表中分层排序。
因此,如果作业或表面将对显示更新周期没有贡献,则在由控制器260解析作业图表时可跳过它。作业的跳过将在对应作业图表中留下作业,但将防止向GPU 180分派相关联的命令。与作业类似,如果表面被隐藏,则在确定要向GPU 180分派的缓冲的命令时,将跳过隐藏的表面和在其中路由选择的所有子图表。表面和根源在其中的子图表的跳过将防止向GPU 180分派在命令缓冲器240中存储的相关联的命令。
如从优选实施例的描述已明白的一样,本文中所述技术准许保护GPU 180,防止多个应用的随机访问,使得能够以受控方式形成在两个连续GPU活动期之间的GPU闲置期。由于闲置期的形成能够由OS 210控制,因此,GPU 180能够被包括到系统级资源和电源管理方案中。另外,在GPU 180与CPU 120之间的工作负载平衡变为可能,并且OS 210对显示更新率有影响,使得显示更新率能够适用于总系统的当前资源情况。
作为又一有利措施,可通过排除向GPU 180分派在命令缓冲器240中的某些命令,扩展闲置期。可使用基于图表的方案执行可排除向GPU 180分派的命令的确定。在一个实现中,基于图表的技术准许检测代表不影响在显示装置200上的渲染过程的GPU命令的子图表。此类GPU命令因此无需由GPU处理。
在上述内容中,已示范描述了实现本文中公开的技术的实施例和各种模式。本发明不应视为限于本文中论述的特定原理、实施例和模式。更确切地说,将理解的是,在不脱离如随附权利要求书中定义的本发明的范围的情况下,本领域技术人员可进行各种更改和修改。

Claims (24)

1. 一种调度图形处理单元GPU命令的分派的方法,所述方法包括:
从多个应用接收命令;
缓冲所接收的命令;以及
将所缓冲的命令作为命令批向GPU (180)分派,
其特点在于基于调度控制所述分派,所述调度被确定以在向所述GPU (180)分派的两个连续命令批之间形成GPU闲置期。
2. 如权利要求1所述的方法,还包括:
分析所述缓冲的命令;以及
根据所述分析的结果,排除向所述GPU (180)分派一个或多个所分析的命令。
3. 如权利要求1所述的方法,还包括从所述缓冲的命令形成图表,所述图表包括:
节点,其中每个节点表示在应用到零个、一个或多个源表面的每个表面时产生特定目的地表面的一个或多个缓冲的命令;以及
链接所述节点的边,其中每个边链接代表一个目的地表面的第一节点和代表用于所述第一节点的一个源表面的第二节点。
4. 如权利要求3所述的方法,其中每个目的地表面具有表面范围和表面内容,以及其中所述表面内容由通过执行与所述目的地表面相关联的至少一个缓冲的命令而形成的中间表示定义。
5. 如权利要求2和3所述的方法,其中分析所述缓冲的命令包括通过解析确定能够跳过的至少一个图表部分,以及其中排除向所述GPU (180)分派与能够跳过的图表部分有关的缓冲的命令。
6. 如权利要求5所述的方法,其中所述跳过的图表部分涉及另一表面隐藏的表面或表面的一部分。
7. 如权利要求4和5所述的方法,其中所述跳过的图表部分涉及在与所述跳过的图表部分相关联的缓冲的命令的以前执行期间已生成和存储的中间表示。
8. 如权利要求1所述的方法,其中所述调度定义显示更新率,并且还包括:
根据至少所述GPU (180)和中央处理单元(120)之一的当前处理能力,动态控制所述显示更新率。
9. 如权利要求1所述的方法,还包括:
分析所述缓冲的命令以确定与所述缓冲的命令相关联的总GPU工作负载;以及
根据所述工作负载确定,启动在所述GPU (180)与至少另一GPU和中央处理单元(120)之一之间的工作负载平衡。
10. 如权利要求1所述的方法,其中经GPU应用编程接口(220)从所述应用接收所述命令。
11. 如权利要求1或10所述的方法,其中所接收的命令向GPU驱动程序(160)分派,所述GPU驱动程序(160)适用于向所述GPU (180)馈送所分派的接收命令。
12. 一种包括程序代码部分的计算机程序产品,在计算装置上执行时所述程序代码部分促使所述计算装置执行如权利要求1到11任一项所述的步骤。
13. 如权利要求12所述的计算机程序产品,被存储在计算机可读记录介质上。
14. 一种用于图形处理单元GPU命令的调度器(140),所述调度器(140)包括:
接口(220),适用于从多个应用接收命令;
缓冲器(240),适用于缓冲所接收的命令;
控制器(260),适用于将所缓冲的命令作为命令批向GPU (180)分派,
其特点在于所述控制器(260)适用于基于调度控制所述分派,所述调度被确定以在向所述GPU (180)分派的两个连续命令批之间形成GPU闲置期。
15. 如权利要求14所述的调度器,其中所述控制器(260)还适用于:
分析所述缓冲的命令;以及
根据所述分析的结果,排除向所述GPU (180)分派一个或多个所分析的命令。
16. 如权利要求14所述的调度器,其中所述控制器(260)还适用于从所述缓冲的命令形成图表,所述图表包括:
节点,其中每个节点表示在应用到零个、一个或多个源表面的每个表面时产生特定目的地表面的一个或多个缓冲的命令;以及
链接所述节点的边,其中每个边链接代表一个目的地表面的第一节点和代表用于所述第一节点的一个源表面的至少一个第二节点。
17. 如权利要求16所述的调度器,其中每个目的地表面具有表面范围和表面内容,以及其中所述表面内容由通过执行与所述目的地表面相关联的至少一个缓冲的命令而形成的中间表示定义。
18. 如权利要求15和16所述的调度器,其中分析所述缓冲的命令包括通过解析确定能够跳过的至少一个图表部分,以及其中排除向所述GPU (180)分派与能够跳过的图表部分有关的缓冲的命令。
19. 如权利要求18所述的调度器,其中所述跳过的图表部分涉及另一表面隐藏的表面或表面的一部分。
20. 如权利要求17和18所述的调度器,其中所述跳过的图表部分涉及在与所述跳过的图表部分相关联的缓冲的命令的以前执行期间已生成和存储的中间表示。
21. 如权利要求14所述的调度器,其中所述调度定义显示更新率,以及其中所述控制器(260)还适用于:
根据至少所述GPU (180)和中央处理单元(120)之一的当前处理能力,动态控制所述显示更新率。
22. 如权利要求14所述的调度器,其中所述控制器还适用于:
分析所述缓冲的命令以确定与所述缓冲的命令相关联的总GPU工作负载;以及
根据所述工作负载确定,启动在所述GPU (180)与至少另一GPU和中央处理单元(120)之一之间的工作负载平衡。
23. 如权利要求14所述的调度器,还包括至少以下之一:
GPU应用编程接口(220),适用于从所述应用接收所述GPU命令;以及
GPU驱动程序(160),适用于接收所分派的GPU命令。
24. 如权利要求14所述的调度器,还连接到至少以下之一:
GPU应用编程接口(220),适用于从所述应用接收所述GPU命令;以及
GPU驱动程序(160),适用于接收所分派的GPU命令。
CN201180021319.7A 2010-04-28 2011-04-26 调度图形处理单元gpu命令的分派的方法、设备及调度器 Active CN102859492B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP10004490.8A EP2383648B1 (en) 2010-04-28 2010-04-28 Technique for GPU command scheduling
EP10004490.8 2010-04-28
US33288210P 2010-05-10 2010-05-10
US61/332882 2010-05-10
PCT/EP2011/056546 WO2011134942A1 (en) 2010-04-28 2011-04-26 Technique for gpu command scheduling

Publications (2)

Publication Number Publication Date
CN102859492A true CN102859492A (zh) 2013-01-02
CN102859492B CN102859492B (zh) 2016-09-28

Family

ID=42711750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180021319.7A Active CN102859492B (zh) 2010-04-28 2011-04-26 调度图形处理单元gpu命令的分派的方法、设备及调度器

Country Status (5)

Country Link
US (1) US9001137B2 (zh)
EP (1) EP2383648B1 (zh)
CN (1) CN102859492B (zh)
TW (1) TW201207735A (zh)
WO (1) WO2011134942A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050040A (zh) * 2013-03-15 2014-09-17 英特尔公司 媒体重放工作负荷调度器
WO2015123840A1 (en) * 2014-02-20 2015-08-27 Intel Corporation Workload batch submission mechanism for graphics processing unit
CN105224410A (zh) * 2015-10-19 2016-01-06 成都卫士通信息产业股份有限公司 一种调度gpu进行批量运算的方法及装置
WO2017143522A1 (en) * 2016-02-23 2017-08-31 Intel Corporation Graphics processor workload acceleration using a command template for batch usage scenarios
WO2018076647A1 (zh) * 2016-10-26 2018-05-03 深圳市中兴微电子技术有限公司 数据处理的方法、装置和片上系统、设备、存储介质
CN109558235A (zh) * 2018-11-30 2019-04-02 杭州迪普科技股份有限公司 一种处理器的调度方法、装置及计算机设备
CN109729113A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、服务器系统和计算机程序产品
US10484690B2 (en) 2015-06-04 2019-11-19 Intel Corporation Adaptive batch encoding for slow motion video recording
CN110502348A (zh) * 2019-07-23 2019-11-26 中国航空无线电电子研究所 基于服务的gpu指令提交服务器
CN111459618A (zh) * 2014-06-26 2020-07-28 英特尔公司 虚拟化环境中的智能gpu调度
CN111971694A (zh) * 2018-04-04 2020-11-20 诺基亚技术有限公司 用于深度神经网络的训练数据的协同异构处理
CN113051071A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 命令提交方法和装置、命令读取方法和装置、电子设备

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370283B2 (en) * 2010-12-15 2013-02-05 Scienergy, Inc. Predicting energy consumption
US8972763B2 (en) * 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US8970596B2 (en) * 2012-02-17 2015-03-03 Apple Inc. Using render-graph characteristics to optimize the rendering of an adjusted image
US9019289B2 (en) * 2012-03-07 2015-04-28 Qualcomm Incorporated Execution of graphics and non-graphics applications on a graphics processing unit
US9805439B2 (en) 2012-05-02 2017-10-31 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9613390B2 (en) 2012-05-02 2017-04-04 Nvidia Corporation Host context techniques for server based graphics processing
US9542715B2 (en) 2012-05-02 2017-01-10 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9311169B2 (en) 2012-05-02 2016-04-12 Nvidia Corporation Server based graphics processing techniques
US9304813B2 (en) * 2012-07-18 2016-04-05 Intel Corporation CPU independent graphics scheduler for performing scheduling operations for graphics hardware
CN102890643B (zh) * 2012-07-26 2015-01-21 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
US9384523B1 (en) * 2013-07-30 2016-07-05 Google Inc. Method for reducing input latency on GPU accelerated devices and applications
US9292903B2 (en) 2013-10-03 2016-03-22 Google Inc. Overlap aware reordering of rendering operations for efficiency
US8854385B1 (en) 2013-10-03 2014-10-07 Google Inc. Merging rendering operations for graphics processing unit (GPU) performance
CN105830026B (zh) 2013-11-27 2020-09-15 英特尔公司 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
US9477480B2 (en) * 2014-01-30 2016-10-25 Nvidia Corporation System and processor for implementing interruptible batches of instructions
US9530174B2 (en) 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
US10521874B2 (en) * 2014-09-26 2019-12-31 Intel Corporation Method and apparatus for a highly efficient graphics processing unit (GPU) execution model
US9679346B2 (en) 2015-06-07 2017-06-13 Apple Inc. Graphics engine and environment for efficient real time rendering of graphics that are not pre-known
US10204394B2 (en) 2017-04-10 2019-02-12 Intel Corporation Multi-frame renderer
KR102491606B1 (ko) * 2018-01-09 2023-01-26 삼성전자주식회사 커맨드 세트 기반 리플레이를 통해 수행 정보를 수집하는 프로세서 장치
US10713747B2 (en) 2018-06-08 2020-07-14 Honeywell International Inc. System and method for distributed processing of graphic server components
US10692169B2 (en) 2018-09-28 2020-06-23 Apple Inc. Graphics driver virtual channels for out-of-order command scheduling for a graphics processor
US10861126B1 (en) * 2019-06-21 2020-12-08 Intel Corporation Asynchronous execution mechanism
US11586472B2 (en) * 2019-12-10 2023-02-21 Advanced Micro Devices, Inc. Method of task transition between heterogenous processors
CN112015474B (zh) * 2020-08-28 2024-01-26 格兰菲智能科技有限公司 电子装置及其命令数量减少方法
US12093748B2 (en) 2020-09-25 2024-09-17 Intel Corporation Disaggregated computing for distributed confidential computing environment
CN112214443B (zh) 2020-10-22 2021-12-03 上海壁仞智能科技有限公司 设置于图形处理器中的二次卸载装置和方法
CN112230931B (zh) 2020-10-22 2021-11-02 上海壁仞智能科技有限公司 适用于图形处理器的二次卸载的编译方法、装置和介质
US11886433B2 (en) * 2022-01-10 2024-01-30 Red Hat, Inc. Dynamic data batching for graph-based structures

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060146056A1 (en) * 2004-12-30 2006-07-06 Intel Corporation Method and apparatus for controlling display refresh
EP1978483A1 (en) * 2007-04-04 2008-10-08 Qualcomm Incorporated Indexes of graphics processing objects in graphics processing unit commands
US20080303834A1 (en) * 2007-06-07 2008-12-11 Michael James Elliott Swift Deferred deletion and cleanup for graphics resources
US20090109230A1 (en) * 2007-10-24 2009-04-30 Howard Miller Methods and apparatuses for load balancing between multiple processing units

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125701A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US8310491B2 (en) * 2007-06-07 2012-11-13 Apple Inc. Asynchronous notifications for concurrent graphics operations
US8477143B2 (en) 2008-03-04 2013-07-02 Apple Inc. Buffers for display acceleration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060146056A1 (en) * 2004-12-30 2006-07-06 Intel Corporation Method and apparatus for controlling display refresh
EP1978483A1 (en) * 2007-04-04 2008-10-08 Qualcomm Incorporated Indexes of graphics processing objects in graphics processing unit commands
US20080303834A1 (en) * 2007-06-07 2008-12-11 Michael James Elliott Swift Deferred deletion and cleanup for graphics resources
US20090109230A1 (en) * 2007-10-24 2009-04-30 Howard Miller Methods and apparatuses for load balancing between multiple processing units

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHIA-MING CHANG ET AL: "Energy-saving techniques for low-power graphics processing unit", 《INTERNATIONAL SOC DESIGN CONFERENCE》 *
JAN LEMEIRE ET AL: "Towards Fully User Transparent Task and Data Parallel Image Processing", 《PROCEEDINGS OF THE 6TH INTERNATIONAL SYMPOSIUM ON IMAGE AND SIGNAL PROCESSING AND ANALYSIS》 *
MIKHAIL BAUTIN ET AL: "Graphic Engine Resource Management", 《MULTIMEDIA COMPUTING AND NETWORKING 2008》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9591358B2 (en) 2013-03-15 2017-03-07 Intel Corporation Media playback workload scheduler
CN104050040B (zh) * 2013-03-15 2017-09-12 英特尔公司 媒体重放工作负荷调度器
CN104050040A (zh) * 2013-03-15 2014-09-17 英特尔公司 媒体重放工作负荷调度器
WO2015123840A1 (en) * 2014-02-20 2015-08-27 Intel Corporation Workload batch submission mechanism for graphics processing unit
CN105940388A (zh) * 2014-02-20 2016-09-14 英特尔公司 用于图形处理单元的工作负荷批量提交机制
TWI562096B (en) * 2014-02-20 2016-12-11 Intel Corp Workload batch submission mechanism for graphics processing unit
CN111459618A (zh) * 2014-06-26 2020-07-28 英特尔公司 虚拟化环境中的智能gpu调度
US10484690B2 (en) 2015-06-04 2019-11-19 Intel Corporation Adaptive batch encoding for slow motion video recording
CN105224410A (zh) * 2015-10-19 2016-01-06 成都卫士通信息产业股份有限公司 一种调度gpu进行批量运算的方法及装置
WO2017143522A1 (en) * 2016-02-23 2017-08-31 Intel Corporation Graphics processor workload acceleration using a command template for batch usage scenarios
US10846142B2 (en) 2016-02-23 2020-11-24 Intel Corporation Graphics processor workload acceleration using a command template for batch usage scenarios
WO2018076647A1 (zh) * 2016-10-26 2018-05-03 深圳市中兴微电子技术有限公司 数据处理的方法、装置和片上系统、设备、存储介质
CN109729113A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、服务器系统和计算机程序产品
CN109729113B (zh) * 2017-10-27 2021-03-23 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、服务器系统和计算机程序产品
CN111971694A (zh) * 2018-04-04 2020-11-20 诺基亚技术有限公司 用于深度神经网络的训练数据的协同异构处理
CN109558235B (zh) * 2018-11-30 2020-11-06 杭州迪普科技股份有限公司 一种处理器的调度方法、装置及计算机设备
CN109558235A (zh) * 2018-11-30 2019-04-02 杭州迪普科技股份有限公司 一种处理器的调度方法、装置及计算机设备
CN110502348A (zh) * 2019-07-23 2019-11-26 中国航空无线电电子研究所 基于服务的gpu指令提交服务器
CN110502348B (zh) * 2019-07-23 2023-10-27 中国航空无线电电子研究所 基于服务的gpu指令提交服务器
CN113051071A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 命令提交方法和装置、命令读取方法和装置、电子设备

Also Published As

Publication number Publication date
CN102859492B (zh) 2016-09-28
EP2383648B1 (en) 2020-02-19
US9001137B2 (en) 2015-04-07
TW201207735A (en) 2012-02-16
US20130057563A1 (en) 2013-03-07
EP2383648A1 (en) 2011-11-02
WO2011134942A1 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
CN102859492A (zh) 用于gpu命令调度的技术
US11243806B2 (en) System on chip including a multi-core processor and task scheduling method thereof
US9734546B2 (en) Split driver to control multiple graphics processors in a computer system
US9480914B2 (en) Online gaming
CN103262002B (zh) 优化系统调用请求通信
CN103207774A (zh) 用于解决线程发散的方法和系统
KR101609079B1 (ko) 그래픽 프로세싱 유닛에서의 명령 선별
US10037225B2 (en) Method and system for scheduling computing
US10474574B2 (en) Method and apparatus for system resource management
CN111506434B (zh) 一种任务处理方法、装置及计算机可读存储介质
CN109906437A (zh) 基于线程重要性的处理器核停止和频率选择
CN114675964A (zh) 基于联邦决策树模型训练的分布式调度方法、系统及介质
WO2024037068A1 (zh) 任务调度方法、电子设备及计算机可读存储介质
CN101341456A (zh) 基于调度的高速缓冲存储器/存储器功率最小化技术
CN110795238A (zh) 负载计算方法、装置、存储介质及电子设备
EP3779778A1 (en) Methods and apparatus to enable dynamic processing of a predefined workload
CN118035618B (zh) 数据处理器、数据处理方法、电子设备、存储介质
CN101937370A (zh) 一种在fcmp上支持系统级资源分配和任务调度的方法及装置
Barbieru et al. Soft real-time hadoop scheduler for big data processing in smart cities
CN111813541A (zh) 一种任务调度方法、装置、介质和设备
CN114595060A (zh) 任务处理方法以及系统
KR20160084215A (ko) 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치
CN117891618B (zh) 人工智能模型训练平台的资源任务处理方法及装置
US20240111578A1 (en) Hierarchical work scheduling
US20230168898A1 (en) Methods and apparatus to schedule parallel instructions using hybrid cores

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant