CN117813589A - 感知工作负载的虚拟处理单元 - Google Patents
感知工作负载的虚拟处理单元 Download PDFInfo
- Publication number
- CN117813589A CN117813589A CN202280050649.7A CN202280050649A CN117813589A CN 117813589 A CN117813589 A CN 117813589A CN 202280050649 A CN202280050649 A CN 202280050649A CN 117813589 A CN117813589 A CN 117813589A
- Authority
- CN
- China
- Prior art keywords
- workload
- processing unit
- power mode
- scheduler
- gpu
- 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 claims abstract description 161
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims description 19
- 230000008901 benefit Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid 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/505—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 load
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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/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/5044—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 hardware capabilities
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Power Sources (AREA)
Abstract
一种处理单元[100],其基于所标识的工作负载[200,225]以不同方式配置,并且该处理单元的每个配置被作为不同的虚拟处理单元[111.112]展示给软件(例如,展示给设备驱动程序[103])。使用这些技术,处理系统能够提供该处理单元的不同配置以支持不同类型的工作负载,从而节省系统资源。此外,通过将该不同配置作为不同的虚拟处理单元展示,该处理系统能够使用现有的设备驱动程序或另一系统基础结构来实现不同的处理单元配置。
Description
背景技术
为了增强处理效率,一些处理系统采用专门设计和配置的处理单元来执行由通用处理单元较低效地执行的规定任务。例如,一些处理系统采用被配置为代表一个或多个中央处理单元(CPU)执行图形处理操作和向量处理操作的一个或多个图形处理单元(GPU)。CPU向GPU发送规定的命令(例如,绘制命令),该GPU执行由该命令指示的图形处理操作或向量处理操作。然而,在增强处理效率的同时,在一些情况下,GPU或另一处理单元的专门设计和配置的电路消耗不合需要的大量系统资源。
附图说明
通过参考附图,本公开可以被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
图1是根据一些实施方案的被配置为基于所标识的工作负载来展示虚拟GPU的图形处理单元(GPU)的框图。
图2是示出根据一些实施方案的图1的基于不同的所标识的工作负载将不同的虚拟GPU展示给设备驱动程序的GPU的示例的框图。
图3是示出根据一些实施方案的用于标识图1的GPU处的工作负载的不同工作负载指示器的框图。
图4是示出根据一些实施方案的基于不同的所标识的工作负载将不同的虚拟处理单元展示给设备驱动程序的方法的流程图。
具体实施方式
图1至图4示出了用于基于所标识的工作负载以不同方式配置处理单元并且将该处理单元的每个配置作为不同的虚拟处理单元展示给软件(例如,展示给设备驱动程序)的技术。使用这些技术,处理系统能够提供该处理单元的不同配置以支持不同类型的工作负载,从而节省系统资源。此外,通过将该不同配置作为不同的虚拟处理单元展示,该处理系统能够使用现有的设备驱动程序或另一系统基础结构来实现不同的处理单元配置。
为了说明,在一些实施方案中,一种处理系统包括为中央处理单元(CPU)执行图形操作的GPU。在CPU处执行的应用程序发送命令(例如,绘制命令),并且基于该命令,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至图4所描述的示例实施方案是关于GPU来描述的,但在其他实施方案中,本文所描述的技术在不同类型的处理单元(诸如向量处理单元、并行处理器、机器学习处理单元、单指令多数据(SIMD)处理单元、人工智能处理单元等)处实现。
在一些实施方案中,GPU的不同配置是可编程的,并且因此可由操作系统或在CPU处执行的应用来调整。这允许软件开发者根据应用的资源需要来控制GPU的配置,或针对应用的不同阶段调整GPU配置。此外,在一些实施方案中,用户能够经由图形用户界面(GUI)或另一界面调整配置以针对个别用户的目的定制配置。例如,期望更多功率节省的用户(诸如膝上型计算机系统的用户)能够调整配置以使用更少的系统资源,从而减少由配置中的一个或多个配置所消耗的功率量。
将领会,尽管以上示例以及以下关于图1至图4所描述的示例实施方案是关于GPU来描述的,但在其他实施方案中,本文所描述的技术在不同类型的处理单元(诸如向量处理单元、并行处理器、机器学习处理单元、单指令多数据(SIMD)处理单元、人工智能处理单元等)处实现。
图1示出了根据一些实施方案的被配置为基于所标识的工作负载来展示虚拟GPU的GPU 100。GPU被并入到具有一个或多个中央处理单元(CPU)的处理系统中,并且基于从一个或多个CPU接收的命令来执行图形操作。因此,在不同的实施方案中,GPU 100是多种电子设备(诸如台式计算机、膝上型计算机、服务器、平板电脑、智能电话、游戏控制台等)中的任一种的一部分。
GPU 100通常被配置为执行从设备驱动程序103接收的命令(例如,绘制命令)。在一些实施方案中,设备驱动程序103是在CPU处执行的软件,并且提供GPU与CPU处的一个或多个应用之间的界面。例如,在一些实施方案中,CPU执行操作系统(OS)和一个或多个应用。应用经由OS向设备驱动程序103提供命令。设备驱动程序103将命令翻译成GPU 100所预期的格式。因此,设备驱动程序103提供GPU 100与在CPU处执行的应用之间的抽象层。
为了支持所接收的命令的执行,GPU 100包括调度器102以及着色器引擎105和106。将领会,在一些实施方案中,GPU 100包括用于支持所接收的命令的执行的附加电路和模块,诸如用于支持用于GPU 100的存储器层次结构(例如,一组高速缓冲存储器)的存储器模块、用于管理所接收的命令的接收和执行的命令处理器、除了着色器引擎105和106之外的处理元件等。另外,将领会,本文关于特定模块所描述的功能中的一个或多个功能在一些实施方案中由不同的电路或模块执行。例如,在一些实施方案中,调度器102是GPU 100的命令处理器的一部分,并且本文关于调度器102所描述的功能中的一个或多个功能由命令处理器的另一模块执行。
调度器102通常被配置为从设备驱动程序104接收命令并且生成一组或多组操作以供在着色器引擎105和106的处理元件处执行。由调度器102生成的以供基于一个或多个命令来执行的一组操作在本文中被称为GPU 100的工作负载。因此,基于从设备驱动程序104接收的命令,调度器102生成一个或多个工作负载,并且调度该一个或多个工作负载的操作以供在着色器引擎105和106处执行。在一些实施方案中,调度器基于由用户模式设备驱动程序在命令中插入的一个或多个令牌(诸如基于图像帧边界的一个或多个令牌)来标识给定工作负载的开始或结束。
着色器引擎105和106是各自被配置为基于从调度器102接收的工作负载来执行着色和其他图形操作的一组模块。在一些实施方案中,着色器引擎中的每一者包括多个工作组处理器(WGP),每个WGP包括被配置为对所接收的数据执行可编程并行运算(例如,向量算术运算)的多个计算单元。例如,在一些实施方案中,每个计算单元包括多个单指令多数据(SIMD)单元,该SIMD单元被配置为对一组所接收的数据执行可编程并行运算。WGP、计算单元和SIMD单元在本文中通常被称为处理元件。在一些实施方案中,除了上述处理元件之外,着色器引擎中的每一者还包括附加模块,诸如用于执行图形图元操作的图元单元、光栅化器、一个或多个渲染后端以及用于存储用于处理元件的数据的一个或多个高速缓冲存储器。
在一些实施方案中,着色器引擎105和106的处理元件中的一者或多者能够被置于多种功率模式下,每个功率模式表示不同等级的功率消耗以及处理元件处的对应等级的处理能力。例如,在一些实施方案中,每个着色器引擎的WGP能够独立地被置于活动模式和低功率模式下,在该活动模式下,WGP能够正常执行处理操作并消耗相对大量的功率,在该低功率模式下,WGP不能执行正常处理操作但消耗相对少量的功率。在一些实施方案中,当WGP被置于低功率模式下时,对WGP的模块进行功率门控,使得来自电压轨的功率不被施加到WGP模块。
不同处理元件的功率模式由功率控制模块108基于由调度器102提供的控制信令来控制。因此,在一些实施方案中,如由调度器102控制的控制信令个别地针对着色器引擎105和106的每个WGP设置功率模式。因此,在一些情况下,将着色器引擎105和106的至少一个WGP设置为活动模式,同时将至少一个其他WGP设置为低功率模式,使得不同WGP分别同时处于活动模式和低功率模式。在一些实施方案中,功率控制模块108针对处理元件的不同粒度等级设置功率模式。因此,在一些实施方案中,功率控制模块108在WGP、计算单元、SIMD单元的等级或另一等级或它们的任何组合处设置功率模式。出于描述的目的,假设功率控制模块108在WGP等级处设置功率模式。
在一些实施方案中,调度器102被配置为基于一组工作负载指示器107来标识由设备驱动程序103提供或预期将由该设备驱动程序提供的工作负载。在不同的实施方案中,工作负载指示器107包括或并入有不同的因素,诸如由应用提供的工作负载元数据、离线应用剖析信息、运行时剖析信息、软件提示等,或它们的任何组合。例如,在一些实施方案中,设备驱动程序103提供指示针对工作负载的预期处理需求的元数据,诸如针对待执行的工作负载的绘制调用的数量、分派的数量、图元的数量、工作组的数量等或它们的组合。
在一些实施方案中,工作负载指示器107不是针对待执行的当前工作负载的指示器,而是关于预期未来将在GPU 100处执行的工作负载的提示。例如,在一些实施方案中,调度器102记录从特定程序接收的工作负载的模式。基于这些模式,调度器102生成工作负载指示器107以指示预期未来将执行的工作负载。例如,如果模式指示工作负载B在工作负载A的执行之后被频繁地执行,则响应于执行工作负载A,调度器102将工作负载指示器107设置为指示工作负载B。
基于所标识的工作负载,调度器102将控制信令提供到功率控制模块108以针对着色器引擎105和106的每个WGP设置功率模式。例如,在一些实施方案中,如果工作负载指示器107指示预期工作负载是需要相对大量的处理功率来高效执行的工作负载,则调度器102指示功率控制模块108将较高数量的WGP设置为活动模式。相比之下,如果工作负载指示器107指示预期工作负载是需要较少量的处理功率的工作负载,则调度器102指示功率控制模块108将较低数量的WGP设置为活动模式,并且将较高数量的WGP设置为低功率模式,从而节省功率。为了便于描述,着色器105和106的处理元件的特定设置在本文中被称为着色器的“功率配置”。因此,调度器102被配置为基于工作负载指示器107来设置着色器105和106的功率配置。例如,在一些实施方案中,将WGP分组到规定的着色器阵列中,并且将着色器阵列分组到规定的着色器引擎中。如果将着色器阵列中的所有WGP置于低功率模式下,则也将整个着色器阵列(包括用于将工作馈送到WGP或以其他方式支持WGP的任何逻辑)置于低功率模式下,从而节省功率。
功率配置对GPU 100处的可用于处理工作负载的资源进行设置。在至少一些情况下,期望设备驱动程序103感知GPU 100处的可用资源,使得设备驱动程序103被适当地配置为提供在GPU处执行的应用处的那些资源之间的界面。因此,由于调度器102基于工作负载指示器107来设置着色器105和106的功率配置,所以向设备驱动程序103通知合适的特定功率配置并且将设备驱动程序103配置为使用可用资源是有用的。为了简化通知和配置过程,在一些实施方案中,GPU存储一组虚拟GPU(vGPU)110。每个vGPU(例如,vGPU 111、112)是指示用于着色器引擎105和106的不同功率配置的可用资源的一组数据。
响应于在着色器引擎105和106处设置特定功率配置,调度器102从该组vGPU 110中选择对应的vGPU,并且将GPU 100作为所选择的vGPU展示给设备驱动程序103。即,调度器102向设备驱动程序103通知所选择的vGPU,使得GPU 100对设备驱动程序103表现为好像GPU 100是仅具有由所选择的vGPU指示的资源的物理GPU。例如,在所选择的vGPU中不指示处于低功率模式的任何处理元件,使得这些处理元件不对设备驱动程序103表现为在物理上可用。
为了进一步说明,在一些实施方案中,设备驱动程序103维护GPU的列表以及与列表中的每个GPU相关联的对应资源。此外,设备驱动程序103包括针对列表中的每个GPU的设备ID。响应于驱动程序重置,设备驱动程序103向GPU 100发送对设备ID的查询。作为响应,调度器102提供对应于所选择的vGPU的设备ID。因此,GPU 100对设备驱动程序103表现为是具有由所提供的设备ID指示的资源的物理GPU。例如,在一些实施方案中,诸如在微控制器、管理程序或系统软件处执行的固件的模块接收对所选择的vGPU的请求并使vGPU准备好操作。如果当前配置不匹配所请求的vGPU,则模块重置GPU,并且重新配置GPU 100的参数以匹配所选择的vGPU的参数。模块然后向设备驱动程序103通知vGPU已准备好接受命令。通过将每个不同的功率配置作为vGPU展示,GPU 100能够采用多个不同的功率配置而不需要大量重新设计设备驱动程序103,从而简化不同配置的具体实施。
图2示出了示出根据一些实施方案的基于不同的所标识的工作负载将不同vGPU展示给设备驱动程序103的GPU 100的示例的框图。在图2的示例中,着色器引擎105各自包括两个不同的WGP:针对着色器引擎105指定的WGP 221和WGP 222,以及针对着色器引擎106指定的WGP 223和WGP 224。图2示出了GPU 100在两个不同时间216和217处的两个不同功率配置。每个WGP的功率模式由对应框的阴影表示,透明(白色)着色指示WGP处于活动功率模式,并且灰色着色指示WGP处于低功率模式。
在所描绘的示例中,在时间216处或大约该时间处,调度器102基于工作负载指示器107来标识工作负载220。所选择的功率配置使得WGP 221被设置为活动模式,而WGP 222、223和224被设置为低功率模式。因此,在时间216处,工作负载指示器107指示预期需要着色器引擎105和106的相对较少处理元件的工作负载(工作负载220),以便高效地执行该工作负载。因此,调度器102选择用于GPU 100的功率配置,其中相对大量的处理元件被置于低功率模式下,从而节省功率,同时提供足够的资源用于工作负载220的高效处理。
在一些实施方案中,调度器102存储具有数个条目的表,每个条目包括工作负载标识符、对应于工作负载标识符的一组工作负载指示器(或工作负载指示器范围),以及功率配置。为了选择功率配置,调度器102标识表的对应于工作负载指示器107的条目。即,调度器102标识表的存储匹配工作负载指示器107的一组工作负载指示器的条目,或者工作负载指示器107落入由条目的一组工作负载指示器所指示的范围内的条目。调度器102然后选择存储在所标识的条目处的功率配置。在一些实施方案中,表可由设备驱动程序103或由另一软件编程。例如,这允许应用选择用于给定工作负载或用于给定类型的工作负载的特定功率配置,使得应用可基于特定应用来定制GPU的性能和功率消耗。
如上文所指示,在时间216处,调度器102选择用于GPU 100的功率配置,使得WGP221被设置为活动模式,而WGP 222、223和224被设置为低功率模式。调度器102向功率控制模块108提供控制信令,使得WGP 221-224被设置为所指示的功率模式。另外,调度器102确定vGPU 111对应于所选择的功率配置,并且因此将GPU 100作为vGPU 111展示给设备驱动程序103。例如,在一些实施方案中,调度器102处的上述表的每个条目指示对应于与该条目相关联的功率配置的vGPU标识符。响应于选择条目并将GPU 100设置为对应功率配置,调度器102向设备驱动程序103发送重置信号,从而启动驱动程序重置。在驱动程序重置期间,设备驱动程序103向调度器102发送查询以标识GPU 100的设备类型。作为响应,调度器102向设备驱动程序103提供针对vGPU 111的标识符。GPU 100因此对设备驱动程序103表现为具有与处于活动功率模式的资源相对应的资源的物理GPU。即,GPU 100对设备驱动程序102表现为具有WGP 221并且不具有WGP 222、223和224的GPU。
在时间216之后,在时间217处,调度器102确定工作负载指示器107已改变,使得将在GPU 100处执行不同工作负载(指定的工作负载225)。工作负载225相对于工作负载225需要更多的处理资源。因此,并且基于工作负载指示器107,调度器102选择用于GPU 100的功率配置,使得WGP 222被置于低功率模式下,而WGP 221、223和224被置于活动模式下。
响应于选择用于工作负载225的功率配置,调度器102选择对应于所选择的功率配置的vGPU(指定的vGPU 112)。调度器102向设备驱动程序103发送重置信号,从而启动驱动程序重置。在驱动程序重置期间,调度器102向设备驱动程序103提供针对vGPU 112的标识符。GPU 100因此对设备驱动程序103表现为具有WGP 221、223和224(因为这些WGP处于活动模式)并且不具有WGP 222(因为此WGP处于低功率模式)的物理GPU。
因此,如图2的示例所说明,在一些实施方案中,调度器102基于待执行的工作负载来改变GPU 100的功率配置。此外,对于每个不同的功率配置,将GPU 100作为不同的虚拟GPU展示给设备驱动程序103。即,对于每个不同的功率配置,GPU 100对设备驱动程序103表现为不同的物理GPU。这允许即使在使用未感知到或专门设计成适应不同功率配置的设备驱动程序的系统中也改变GPU的功率配置。
图3示出了根据一些实施方案的工作负载指示器107的示例。在所描绘的示例中,工作负载指示器107包括工作负载配置文件330、应用类型331、软件提示332、运行时配置文件333以及工作负载元数据334。工作负载配置文件330包括在测试环境中针对一个或多个工作负载收集的数据。例如,在一些实施方案中,将GPU 100或具有与GPU 100类似设计的GPU置于处理系统测试环境中并且在处理系统处执行一个或多个应用,从而在GPU处生成一个或多个工作负载。处理系统将指示一个或多个工作负载的数据记录为工作负载配置文件330,并且工作负载配置文件330的副本在GPU 100的制造和初始配置期间被存储在GPU 100处。
例如,在一些实施方案中,工作负载配置文件330被存储为工作负载标识符(ID)的列表,不同的工作负载ID被组织成诸如“轻”工作负载(在测试环境中指示为要求相对少的处理资源的工作负载)和“重”工作负载(在测试环境中指示为要求相对大量的处理资源的工作负载)的类别。当工作负载将在GPU 100处执行时,调度器102标识工作负载的工作负载ID,并且基于工作负载配置文件330来确定待执行的工作负载是被分类为轻工作负载还是重工作负载。响应于确定工作负载被指定为重工作负载,调度器102选择将较高数量的处理元件置于活动模式下的功率配置。响应于确定工作负载被指定为轻工作负载,调度器102选择将较高数量的处理元件置于活动模式下的功率配置。
应用类型331是指示与不同应用类型相关联的预期工作负载的一组数据。例如,在一些实施方案中,应用类型存储不同类型的应用的列表,不同类型的应用被分类成轻工作负载类别和重工作负载类别。当应用启动执行时,设备驱动程序103向调度器102指示应用类型。。例如,在一些实施方案中,游戏应用被分类为重工作负载应用,并且文字处理器被分类为轻工作负载应用。响应于设备驱动程序103指示应用类型,调度器102访问应用类型331以确定应用类型是与轻工作负载还是重工作负载相关联,并且基于该确定来选择功率配置。将领会,重工作负载类别和轻工作负载类别仅是示例,并且在其他实施方案中,不同工作负载指示器107反映较高数量的工作负载类别,诸如轻工作负载、中工作负载和重工作负载。
软件提示332存储指示由软件提供的关于将在GPU 100处执行的预期工作负载的提示的数据。例如,在一些实施方案中,在GPU处执行的软件经由设备驱动程序103向调度器102提供关于预期工作负载的提示,其中该提示指示预期工作负载是重工作负载还是轻工作负载。基于该提示,调度器102选择用于GPU 100的功率配置。在一些实施方案中,当GPU100处的预期工作负载改变时,给定应用向调度器102提供不同提示。
运行时配置文件333是反映在不同工作负载的执行期间在GPU 100处记录的性能信息的一组数据。例如,在一些实施方案中,GPU 100包括记录性能信息(诸如高速缓冲存储器命中、存储器存取、操作分派、执行循环等,或它们的任何组合)的一组性能计数器。当执行给定工作负载(例如,基于特定绘制命令的工作负载)时,调度器102将性能数据记录在性能计数器处,然后将用于工作负载的该性能数据存储在运行时配置文件333处。当再次执行工作负载时,调度器102使用存储在运行时配置文件333处的用于工作负载的性能数据来确定工作负载的类型,诸如该工作负载是重工作负载还是轻工作负载。例如,在一些实施方案中,调度器102将性能数据与一个或多个规定的或可编程的阈值进行比较,并且基于该比较将工作负载分类为重工作负载和轻工作负载中的一者。调度器102然后基于工作负载类别来选择功率配置。
工作负载元数据334存储指示针对将在GPU 100处执行的工作负载的预期资源要求的数据。在一些实施方案中,工作负载元数据由执行应用经由设备驱动程序103提供。例如,在一些实施方案中,对于给定工作负载,应用指示绘制调用的数量、分派的数量、图元的数量、工作组的数量等,或它们的任何组合。在一些实施方案中,调度器102在多个工作单元上(例如,在给定工作负载的多个执行上)对工作负载元数据334求平均,以更好地表示工作负载的资源需求。调度器102将工作负载元数据334与一个或多个规定的或可编程的阈值进行比较以确定工作负载的类别(例如,轻工作负载或重工作负载),并且接着基于所确定的类别来选择用于GPU 100的功率配置。
将领会,尽管上文个别地描述不同类型的工作负载指示器107,但在一些实施方案中,调度器102采用不同类型的指示器的组合来确定用于执行工作负载的工作负载类型。例如,在一些实施方案中,调度器102采用工作负载元数据334和应用类型331两者来确定要执行的工作负载的类型,并且基于所确定的类型来选择用于GPU 100的功率配置。
图4是根据一些实施方案的基于不同的所标识的工作负载将不同的虚拟处理单元展示给设备驱动程序的方法400的流程图。出于描述的目的,方法400是关于在图1的GPU100处的示例具体实施来描述的。然而,在其他实施方案中,方法400在不同类型的处理单元或具有不同配置的处理单元处实现。
在框402处,调度器102基于工作负载指示器107来确定将在GPU 100处执行的工作负载。例如,在一些实施方案中,基于工作负载指示器107,调度器102确定待执行的工作负载的类别,诸如工作负载是重工作负载还是轻工作负载。
在框404处,调度器102基于工作负载来选择用于GPU 100的功率配置,并且基于所选择的功率配置向功率控制模块108发送控制信令以针对着色器引擎105和106的处理元件中的每一个处理元件设置功率模式。例如,在一些实施方案中,如果在框402处,调度器102确定待执行的工作负载是轻工作负载,则调度器102选择其中着色器引擎105和106的较低数量的WGP被置于活动模式下而剩余WGP被设置为低功率模式的功率配置。如果调度器102确定待执行的工作负载是重工作负载,则调度器102选择其中着色器引擎105和106的较高数量的WGP被置于活动模式下而剩余WGP被设置为低功率模式的功率配置。
在框406处,调度器102从虚拟GPU 110选择对应于在框404处选择的功率配置的vGPU。在框408处,调度器102将所选择的vGPU展示给设备驱动程序103。例如,在一些实施方案中,调度器102向设备驱动程序103发送重置指示,从而引起驱动程序重置。在驱动程序重置过程期间,设备驱动程序103请求针对GPU 100的设备标识符。作为响应,调度器102提供针对所选择的vGPU的标识符,使得GPU 100对设备驱动程序103表现为仅具有处于活动模式的处理元件的物理GPU。
如本文所公开的,在一些实施方案中,一种方法包括:响应于标识将在处理单元处执行的第一工作负载,将所述处理单元配置为在第一功率模式下进行操作,其中所述第一功率模式与所述处理单元的处理元件的第一子集处于低功率模式相对应;以及在所述处理单元处于所述第一功率模式的同时,将所述处理单元作为第一虚拟处理单元展示。在一个方面,所述方法包括:响应于标识将在所述处理单元处执行的第二工作负载,将所述第一处理单元配置为在第二功率模式下进行操作,其中所述第二功率模式与所述处理单元的处理元件的第二子集处于所述低功率模式相对应;以及在所述第一处理单元处于所述第二功率模式的同时,将所述处理单元作为第二虚拟处理单元展示。在另一方面,所述方法包括:基于由与所述第一工作负载相关联的应用提供的元数据来标识所述第一工作负载。在再一方面,所述元数据指示将在所述处理单元处执行的绘制调用的数量、线程分派的数量、图形图元的数量、工作组的数量以及着色器指令的数量中的至少一者。
在一个方面,标识所述第一工作负载包括基于由所述应用提供的所述元数据随时间推移的平均值来标识所述第一工作负载。在另一方面,所述方法包括:基于与所述第一工作负载相关联的应用的所存储配置文件来标识所述第一工作负载。在又一方面,所述方法包括:基于与所述第一工作负载相关联的应用的运行时配置文件来标识所述第一工作负载。在再一方面,所述方法包括基于软件请求来选择所述处理元件的第一子集。在另一方面,所述方法包括从一组可编程虚拟处理单元配置文件中选择所述处理元件的第一子集。
在一些实施方案中,一种方法包括:基于将在处理单元处执行的第一工作负载将处理单元设置为第一配置;以及在所述处理单元处于所述第一配置的同时,将所述处理单元作为第一虚拟处理单元展示给设备驱动程序。在另一方面,所述方法包括:基于将在所述处理单元处执行的第二工作负载将所述处理单元设置为第二配置;以及在所述处理单元处于所述第二配置的同时,将所述处理单元作为第二虚拟处理单元展示给所述设备驱动程序。
在一些实施方案中,一种处理单元包括:一组处理元件;功率控制模块,所述功率控制模块用于控制所述一组处理元件的功率模式;以及调度器,所述调度器被配置为:响应于标识将在所述处理单元处执行的第一工作负载,将所述一组处理元件配置为在第一功率模式下进行操作,其中所述第一功率模式与所述一组处理元件的第一子集处于低功率模式相对应;并且在所述一组处理元件处于所述第一功率模式的同时,将所述处理单元作为第一虚拟处理单元展示。在一个方面,所述调度器被配置为:响应于标识将在所述处理单元处执行的第二工作负载,将所述一组处理元件配置为在第二功率模式下进行操作,其中所述第二功率模式与所述一组处理元件的第二子集处于所述低功率模式相对应;并且在所述第一处理单元处于所述第二功率模式的同时,将所述处理单元作为第二虚拟处理单元展示。
在一个方面,所述调度器被配置为:基于由与所述第一工作负载相关联的应用提供的元数据来标识所述第一工作负载。在另一方面,所述元数据指示将在所述处理单元处执行的绘制调用的数量、线程分派的数量、图形图元的数量以及工作组的数量中的至少一者。在再一方面,所述调度器被配置为基于由所述应用提供的所述元数据随时间推移的平均值来标识所述第一工作负载。
在一个方面,所述调度器被配置为:基于与所述第一工作负载相关联的应用的所存储配置文件来标识所述第一工作负载。在另一方面,所述调度器被配置为:基于与所述第一工作负载相关联的应用的运行时配置文件来标识所述第一工作负载。在再一方面,所述调度器被配置为基于软件请求来选择所述处理元件的第一子集。在又一方面,所述调度器被配置为从一组可编程虚拟处理单元配置文件中选择所述处理元件的第一子集。
在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。软件包括可执行指令的一个或多个集合,该可执行指令存储在或以其他方式有形地体现在非暂态计算机可读存储介质上。软件可包括指令和某些数据,这些指令和数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂态计算机可读存储介质可包括例如磁盘或光盘存储设备、固态存储设备诸如闪存存储器、高速缓冲存储器、随机存取存储器(RAM)或其他一个或多个非易失性存储器设备等。存储在非暂态计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码、或者被一个或多个处理器解释或以其他方式执行的其他指令格式。
应当注意,并非以上在一般描述中描述的所有活动或元件都是必需的,特定活动或设备的一部分可能不是必需的,并且可以执行一个或多个另外的活动,或者除了所描述的那些之外还包括元件。更进一步地,列出活动的顺序不一定是执行它们的顺序。另外,已经参考具体实施方案描述了这些概念。然而,本领域普通技术人员理解,在不脱离如以下权利要求中阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而非限制性的,并且所有此类修改旨在被包括在本公开的范围内。
上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可以导致任何益处、优点或解决方案出现或变得更显著的任何特征不应被解释为任何或所有权利要求的关键的、必需的或基本的特征。此外,上文公开的特定实施方案仅是说明性的,因为所公开的主题可以以受益于本文中的教导内容的本领域的技术人员显而易见的不同但等效的方式来修改和实践。除了以下权利要求书中所描述的之外,不旨在对本文所示的构造或设计的细节进行限制。因此,显而易见的是,可以改变或修改上文公开的特定实施方案,并且所有此类变化被认为是在所公开的主题的范围内。因此,本文寻求的保护如以下权利要求中所阐述。
Claims (20)
1.一种方法,包括:
响应于标识将在处理单元处执行的第一工作负载,将所述处理单元配置为在第一功率模式下进行操作,其中所述第一功率模式与所述处理单元的处理元件的第一子集处于低功率模式相对应;以及
在所述处理单元处于所述第一功率模式的同时,将所述处理单元作为第一虚拟处理单元展示。
2.根据权利要求1所述的方法,还包括:
响应于标识将在所述处理单元处执行的第二工作负载,将所述第一处理单元配置为在第二功率模式下进行操作,其中所述第二功率模式与所述处理单元的处理元件的第二子集处于所述低功率模式相对应;以及
在所述第一处理单元处于所述第二功率模式的同时,将所述处理单元作为第二虚拟处理单元展示。
3.根据权利要求1或权利要求2所述的方法,还包括:
基于由与所述第一工作负载相关联的应用提供的元数据来标识所述第一工作负载。
4.根据权利要求3所述的方法,其中所述元数据指示将在所述处理单元处执行的绘制调用的数量、线程分派的数量、图形图元的数量、工作组的数量以及着色器指令的数量中的至少一者。
5.根据权利要求3或权利要求4所述的方法,其中标识所述第一工作负载包括基于由所述应用提供的所述元数据随时间推移的平均值来标识所述第一工作负载。
6.根据权利要求1所述的方法,还包括:
基于与所述第一工作负载相关联的应用的所存储配置文件来标识所述第一工作负载。
7.根据权利要求1所述的方法,还包括:
基于与所述第一工作负载相关联的应用的运行时配置文件来标识所述第一工作负载。
8.根据至少一个前述权利要求所述的方法,还包括基于软件请求来选择所述处理元件的第一子集。
9.根据至少一个前述权利要求所述的方法,还包括从一组可编程虚拟处理单元配置文件中选择所述处理元件的第一子集。
10.一种方法,包括:
基于将在处理单元处执行的第一工作负载将处理单元设置为第一配置;以及
在所述处理单元处于所述第一配置的同时,将所述处理单元作为第一虚拟处理单元展示给设备驱动程序。
11.根据权利要求10所述的方法,还包括
基于将在所述处理单元处执行的第二工作负载将所述处理单元设置为第二配置;以及
在所述处理单元处于所述第二配置的同时,将所述处理单元作为第二虚拟处理单元展示给所述设备驱动程序。
12.一种处理单元,包括:
一组处理元件;
功率控制模块,所述功率控制模块用于控制所述一组处理元件的功率模式;和
调度器,所述调度器被配置为:
响应于标识将在所述处理单元处执行的第一工作负载,将所述一组处理元件配置为在第一功率模式下进行操作,其中所述第一功率模式与所述一组处理元件的第一子集处于低功率模式相对应;以及
在所述一组处理元件处于所述第一功率模式的同时,将所述处理单元作为第一虚拟处理单元展示。
13.根据权利要求12所述的处理单元,其中所述调度器被配置为:
响应于标识将在所述处理单元处执行的第二工作负载,将所述一组处理元件配置为在第二功率模式下进行操作,其中所述第二功率模式与所述一组处理元件的第二子集处于所述低功率模式相对应;以及
在所述第一处理单元处于所述第二功率模式的同时,将所述处理单元作为第二虚拟处理单元展示。
14.根据权利要求12或权利要求13所述的处理单元,其中所述调度器被配置为:
基于由与所述第一工作负载相关联的应用提供的元数据来标识所述第一工作负载。
15.根据权利要求14所述的处理单元,其中所述元数据指示将在所述处理单元处执行的绘制调用的数量、线程分派的数量、图形图元的数量以及工作组的数量中的至少一者。
16.根据权利要求14或权利要求15所述的处理单元,其中所述调度器被配置为基于由所述应用提供的所述元数据随时间推移的平均值来标识所述第一工作负载。
17.根据权利要求12所述的处理单元,其中所述调度器被配置为:
基于与所述第一工作负载相关联的应用的所存储配置文件来标识所述第一工作负载。
18.根据权利要求12所述的处理单元,其中所述调度器被配置为:
基于与所述第一工作负载相关联的应用的运行时配置文件来标识所述第一工作负载。
19.根据权利要求12所述的处理单元,其中所述调度器被配置为基于软件请求来选择所述处理元件的第一子集。
20.根据权利要求12所述的处理单元,其中所述调度器被配置为从一组可编程虚拟处理单元配置文件中选择所述处理元件的第一子集。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163225433P | 2021-07-23 | 2021-07-23 | |
US63/225,433 | 2021-07-23 | ||
US17/564,166 US20230024130A1 (en) | 2021-07-23 | 2021-12-28 | Workload aware virtual processing units |
US17/564,166 | 2021-12-28 | ||
PCT/US2022/037848 WO2023004028A1 (en) | 2021-07-23 | 2022-07-21 | Workload aware virtual processing units |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117813589A true CN117813589A (zh) | 2024-04-02 |
Family
ID=84977726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280050649.7A Pending CN117813589A (zh) | 2021-07-23 | 2022-07-21 | 感知工作负载的虚拟处理单元 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230024130A1 (zh) |
EP (1) | EP4374255A1 (zh) |
KR (1) | KR20240034237A (zh) |
CN (1) | CN117813589A (zh) |
WO (1) | WO2023004028A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240004444A1 (en) * | 2022-06-30 | 2024-01-04 | Advanced Micro Devices, Inc. | Rest-of-chip power optimization through data fabric performance state management |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9569270B2 (en) * | 2009-04-21 | 2017-02-14 | Empire Technology Development Llc | Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts |
US20100321395A1 (en) * | 2009-06-18 | 2010-12-23 | Apple Inc. | Display simulation system and method |
US8190939B2 (en) * | 2009-06-26 | 2012-05-29 | Microsoft Corporation | Reducing power consumption of computing devices by forecasting computing performance needs |
WO2013125160A1 (ja) * | 2012-02-22 | 2013-08-29 | パナソニック株式会社 | 仮想計算機制御装置、及び仮想計算機制御方法 |
WO2013168293A1 (ja) * | 2012-05-11 | 2013-11-14 | 富士通株式会社 | 情報処理装置、電池残量通知方法および電池残量通知プログラム |
US10649518B2 (en) * | 2017-01-26 | 2020-05-12 | Ati Technologies Ulc | Adaptive power control loop |
US11194377B2 (en) * | 2020-01-21 | 2021-12-07 | Dell Products L.P. | System and method for optimizing hardware resources for optimal workload performance |
-
2021
- 2021-12-28 US US17/564,166 patent/US20230024130A1/en active Pending
-
2022
- 2022-07-21 CN CN202280050649.7A patent/CN117813589A/zh active Pending
- 2022-07-21 WO PCT/US2022/037848 patent/WO2023004028A1/en active Application Filing
- 2022-07-21 KR KR1020247005182A patent/KR20240034237A/ko unknown
- 2022-07-21 EP EP22846610.8A patent/EP4374255A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4374255A1 (en) | 2024-05-29 |
WO2023004028A1 (en) | 2023-01-26 |
KR20240034237A (ko) | 2024-03-13 |
US20230024130A1 (en) | 2023-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9864627B2 (en) | Power saving operating system for virtual environment | |
US10423451B2 (en) | Opportunistically scheduling and adjusting time slices | |
JP5462915B2 (ja) | アプリケーションが決定したスケジューリングによる効率的なキャッシュの再利用 | |
JP6219512B2 (ja) | 仮想ハドゥープマネジャ | |
JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
CN106557367B (zh) | 用于为计算资源提供粒度化服务质量的装置、方法和设备 | |
CN102365625B (zh) | 用于虚拟机的虚拟非一致存储器体系结构 | |
ES2701739T3 (es) | Reasignación de hilos basada en software para el ahorro de energía | |
US7290152B2 (en) | Method and system for managing power within a compute component of a multiprocessor system | |
US20090320031A1 (en) | Power state-aware thread scheduling mechanism | |
US20140089699A1 (en) | Power management system and method for a processor | |
JP2014075147A (ja) | システム管理モードのためのプロセッサにおける状態記憶の提供 | |
JP5345990B2 (ja) | 特定のプロセスを短時間で処理する方法およびコンピュータ | |
CN103176848A (zh) | 计算工作分布参考计数器 | |
US20190235902A1 (en) | Bully vm detection in a hyperconverged system | |
US11734067B2 (en) | Multi-core system and controlling operation of the same | |
CN117813589A (zh) | 感知工作负载的虚拟处理单元 | |
KR20230053608A (ko) | 텍스처/로드 명령어 블록에 대한 연기된 gpr 할당 | |
JPH06243112A (ja) | マルチプロセッサ装置 | |
CN113032154B (zh) | 一种虚拟cpu的调度方法、装置、电子设备及存储介质 | |
US10956210B2 (en) | Multi-processor system, multi-core processing device, and method of operating the same | |
CN112114967A (zh) | 一种基于服务优先级的gpu资源预留方法 | |
US10051087B2 (en) | Dynamic cache-efficient event suppression for network function virtualization | |
US20230118846A1 (en) | Systems and methods to reserve resources for workloads | |
US11886224B2 (en) | Core selection based on usage policy and core constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |