CN114402302A - 灵活的多用户图形架构 - Google Patents

灵活的多用户图形架构 Download PDF

Info

Publication number
CN114402302A
CN114402302A CN202080064801.8A CN202080064801A CN114402302A CN 114402302 A CN114402302 A CN 114402302A CN 202080064801 A CN202080064801 A CN 202080064801A CN 114402302 A CN114402302 A CN 114402302A
Authority
CN
China
Prior art keywords
processor
graphics
active
application
cores
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
Application number
CN202080064801.8A
Other languages
English (en)
Inventor
吴锐进
斯凯勒·乔纳森·萨利赫
维妮特·戈埃尔
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN114402302A publication Critical patent/CN114402302A/zh
Pending legal-status Critical Current

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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

提供一种用于操作包括多个核心的处理器的技术。所述技术包括确定活动应用程序的数量、基于活动应用程序的所述数量选择所述处理器的处理器配置、根据所选择的处理器配置来配置所述处理器,以及使用配置的处理器执行所述活动应用程序。

Description

灵活的多用户图形架构
相关申请的交叉引用
本申请要求2019年9月24日提交的标题为“灵活的多用户图形架构(FLEXIBLEMULTI-USER GRAPHICS ARCHITECTURE)”的未决美国临时专利申请号62/905,010和2020年6月26日提交的标题为“灵活的多用户图形架构(FLEXIBLE MULTI-USER GRAPHICSARCHITECTURE)”的未决美国非临时专利申请号16/913,562的权益,所述专利申请的全部内容特此通过引用并入本文中。
背景技术
图形处理硬件加速应用程序的图形渲染任务。基于服务器大小的硬件的渲染变得越来越普遍,并且经常对这种渲染进行改进。
附图说明
可从结合附图以举例的方式给出的以下描述中获得更详细的理解,在附图中:
图1A是根据示例的云游戏系统的框图;
图1B是其中可以实施本公开的一个或多个特征的示例装置的框图;
图1C示出根据示例的服务器的附加细节;
图2是示出根据示例的图形核心的细节的框图;
图3是示出图2中所示的图形处理流水线的另外的细节的框图;以及
图4是根据示例的用于操作具有多个图形核心的图形处理器的方法的流程图。
具体实施方式
提供一种用于操作包括多个核心的处理器的技术。所述技术包括确定活动应用程序的数量、基于活动应用程序的所述数量选择所述处理器的处理器配置、根据所选择的处理器配置来配置所述处理器,以及使用配置的处理器执行所述活动应用程序。
图1A是根据示例的云游戏系统101的框图。服务器103与一个或多个客户端105通信。服务器103至少部分地使用图形硬件来执行游戏应用程序。服务器103从一个或多个客户端105接收输入,例如按钮按压、鼠标移动等。服务器103将这些输入提供到在服务器103上执行的应用程序,所述服务器处理输入并生成用于传输至客户端105的视频数据。服务器103将此视频数据传输至客户端105进行显示并且客户端105显示所述视频数据。
图1B是其中可以实施本公开的一个或多个特征的示例装置100的框图。在各种实现方式中,图1A的服务器103和/或客户端105被实现为装置100。在服务器中,包括图形处理器107。在不同的实现方式中,客户端105包括或不包括图形处理器107。在各种实现方式中,装置100包括例如计算机、游戏装置、手持式装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100还可选地包括输入驱动器112和输出驱动器114。应理解,装置100可以包括图1B中未示出的附加组件。
在各种替代方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一裸片上的CPU和GPU,或者一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。在各种替代方案中,存储器104与处理器102位于同一裸片上,或者与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110包括但不限于显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且允许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且允许处理器102将输出发送至输出装置110。输出驱动器114包括图形处理器107。图形处理器107被配置为接受来自处理器102的图形渲染命令,处理那些计算命令和图形渲染命令,并且向显示装置提供像素输出以用于显示。
图1C示出根据示例的服务器103的附加细节。处理器102被配置为支持其中多个虚拟机在处理器102上执行的虚拟化方案。每个虚拟机(“VM”)对于在所述VM中执行的软件“表现”为完全“真实”的硬件计算机系统,但实际上包括可以与其他虚拟机共享装置100的虚拟化计算环境。虚拟化可以完全由软件支持,部分由硬件支持且部分由软件支持,或者完全由硬件支持。图形处理器107支持虚拟化,这意味着图形处理器107可以在处理器102上执行的多个虚拟机之间共享,其中每个VM“相信”VM具有真实硬件图形处理器107的完全所有权。图形处理器107通过将图形处理器107的不同图形核心116分配给每个活动的客户机VM 204来支持虚拟化。每个图形核心116为相关联的客户机VM 204执行图形操作,而不是为任何其他客户机VM 204执行图形操作。
处理器102支持多个虚拟机,包括一个或多个客户机VM 204,并且在一些实现方式中,包括主机VM 202。主机VM 202执行与管理客户机VM 204的图形处理器107的虚拟化有关的一个或多个方面。管理程序206通过执行各种各样的功能为虚拟机提供虚拟化支持,例如管理分配给虚拟机的资源、生成和终止虚拟机、处理系统调用、管理对外围装置的访问、管理内存和页表,以及其他各种功能。在一些实现方式中,主机VM 202为管理员或管理软件提供接口,以控制与虚拟化相关的图形处理器107的配置操作。在一些系统中,主机VM 202不存在,其中替代地本文所描述的主机VM 202的功能由管理程序206执行(这就是GPU虚拟化驱动程序121在管理程序206中以虚线示出的原因)。
主机VM 202和客户机VM 204具有操作系统120。主机VM 202具有管理应用程序123和GPU虚拟化驱动程序121。客户机VM 204具有应用程序126、操作系统120和GPU驱动程序122。这些元件控制处理器102和图形处理器107的操作的各种特征。
主机VM 202的GPU虚拟化驱动程序121不是仅与图形处理器107通信并向图形处理器107发送图形渲染(或其他)命令,而不了解图形处理器107的虚拟化方面的传统图形驱动程序。相反,GPU虚拟化驱动程序121与图形处理器107通信以配置图形处理器107的各个方面用于虚拟化。在一些示例中,除了执行配置功能之外,GPU虚拟化驱动程序121向图形处理器107发出传统的图形渲染命令或发出与图形处理器107的配置不直接相关的其他命令。
客户机VM 204包括操作系统120、GPU驱动程序122和应用程序126。操作系统120是可以在处理器102上执行的任何类型的操作系统。GPU驱动程序122是图形处理器107的“本机”驱动程序,因为GPU驱动程序122控制其上运行GPU驱动程序122的客户机VM 204的图形处理器107的操作,从而向图形处理器107发送例如图形渲染任务或其他工作的任务以进行处理。本机驱动程序可以是用于GPU的装置驱动程序的未修改或略微修改的版本,其将存在于最基本的非虚拟化计算系统中。
尽管GPU虚拟化驱动程序121被描述为包括在主机VM 202中,但在其他实现方式中,GPU虚拟化驱动程序121替代地包括在管理程序206中。在此类实现方式中,主机VM 202可能不存在并且主机VM 202的功能可以由管理程序206执行。
主机VM 202和客户机VM 204的操作系统120在虚拟化环境中执行操作系统的标准功能,例如与硬件通信、管理资源和文件系统、管理虚拟存储器、管理网络堆栈,以及许多其他功能。GPU驱动程序122通过例如向软件(例如,应用程序126)提供应用程序编程接口(“API”)以访问图形处理器107的各种功能来控制任何特定客户机VM 204的图形处理器107的操作。在一些实现方式中,驱动程序122还包括即时编译器,所述编译器编译程序以供图形核心116的处理组件(例如,下文进一步详细讨论的SIMD单元138)执行。对于任何特定的客户机VM 204,GPU驱动程序122控制与所述客户机VM 204相关的图形核心116上的功能,而不控制其他VM的功能。
图形处理器107包括多个图形核心116、共享数据结构144、共享物理接口142、共享高速缓存140、共享多媒体处理器146和共享图形处理器存储器118。
图形处理器107的图形核心116可单独地分配给不同的客户机VM 204。更具体地,GPU虚拟化驱动程序121将物理图形核心116排他地分配给特定客户机VM 204,以用于执行例如图形处理和计算处理的处理任务。
共享多媒体处理器146、图形处理器存储器118、共享高速缓存140、共享物理接口142和共享数据结构144都可在不同的图形核心之间共享。
图形处理器存储器118包括多个存储器部分。在一些配置中,图形处理器存储器118分成多个部分,每个部分被分配给不同的图形核心116。在此类配置中,GPU虚拟化驱动程序121将图形处理器存储器118的特定部分分配给特定图形核心116。在此类配置中,图形核心116能够访问分配给所述图形核心116的图形处理器存储器118的部分,并且图形核心116不能够访问未分配给所述图形核心116的图形处理器存储器118的部分。在一些实现方式中,可分配给不同图形核心116的部分是图形处理存储器118的物理细分,例如特定存储器存储体。在一些实现方式中,将存储器的多于一个部分分配给单个图形核心116。在一些实现方式中,所有(或多个)图形核心116
共享高速缓存140是可共享的,因为不同的图形核心116能够在共享高速缓存140的任何部分中高速缓存数据。然而,在替代实现方式中,不同地配置共享高速缓存140。更具体地,在一个实施方式中,将高速缓存140划分为多个部分并且每个部分被分配给图形核心116(例如,供专用)。在另一个实现方式中,如果图形核心116访问相同的数据,则整个高速缓存140在图形核心116之间共享以减少外部存储器流量。共享物理接口142是图形处理器107外部的组件的输入/输出接口。共享物理接口142在图形核心116之间可共享,因为共享物理接口142能够将每个图形核心116的数据和命令路由到图形处理器107外部的组件。共享数据结构114在图形核心116与图形处理器存储器118之间路由存储器事务。共享数据结构114可在不同图形核心116之间共享,因为每个图形核心116与共享数据结构114连接以访问分配给所述图形核心116的图形处理器存储器118的部分。
在各种配置中,图形核心116可在不同的性能等级下操作。在一些实现方式中,关于物理地存在于所述图形核心内的资源数量,图形核心116中的一个或多个与其他图形核心116中的一个或多个不同。在一些示例中,这些资源包括内存量、高速缓存内存量和/或计算单元134的数量中的一个或多个。
在一些示例中,图形核心116可在运行时在不同性能等级之间切换。在一些实现方式中,每个图形核心116在时钟速度或启用的组件数量中的一个或多个方面具有可调整的性能等级。在一些实现方式中,应用于图形核心116的较高时钟速度或为图形核心116启用的组件数量较多会导致图形核心116的功率使用更大和/或所述图形核心116的散热量更大。一般而言,图形核心116的更高性能等级与更高的功率使用和散热量相关联。
在一些示例中,管理程序206将装置103配置为供一定数量的活动的客户机VM 204使用。根据活动的客户机VM 204的数量和客户机VM 204的性能要求,管理程序206配置不同图形核心116的性能等级。在一些实现方式中,管理程序206总体上识别图形处理器107的功率预算和热预算,并且基于总功率预算和总热预算设置启用的图形核心116的性能等级。因此,在一些实现方式中,在启用更多客户机VM 204的情况下,管理程序206将一个或多个图形核心116的性能等级设置为低于启用更少客户机VM 204的情况下的性能等级。
在一些实现方式中,图形处理器107可在一组固定数量的配置之间切换。每个此配置指示启用的图形核心116的数量,并指示每个启用的图形核心116的特定性能等级。
在一些实现方式中,所述一组固定配置包括其中启用第一图形核心116并且停用第二图形核心116的至少一个配置,以及其中启用第一图形核心116和第二图形核心116两者的另一配置,其中在第一配置中,第一图形核心比在第二配置中的第一图形核心具有更高的性能等级。
图形处理器存储器118对图形核心116具有一定量的带宽。在启用多个图形核心116的配置中,带宽在不同图形核心116之间划分。当启用一个图形核心116时,所述图形核心116可以访问所有存储器带宽。在一些配置中,每个图形核心116可以访问整个图形处理器存储器118。在一些配置中,图形处理器107的所有组件都包括在单个裸片上。在一些实现方式中,每个图形核心116、共享高速缓存140、共享物理接口142、共享数据结构144、共享多媒体处理器146和图形处理器存储器118具有它们自己的单独可调整时钟。
图2是示出根据示例的图形核心116的细节的框图。图形核心116执行用于选定功能的命令和程序,例如可以适合于进行并行处理的图形操作和非图形操作。图形核心116可以用于执行图形流水线操作,例如像素操作、几何计算,以及基于从处理器102接收的命令将图像渲染到显示装置。图形核心116还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,例如与视频、物理模拟、计算流体动力学或其他任务相关的操作。命令处理器213接受来自处理器102(或另一个源)的命令,并将与这些命令相关联的任务委托给图形核心116的各种元件,例如图形处理流水线134和计算单元132。
图形核心116包括计算单元132,所述计算单元包括一个或多个SIMD单元138,所述SIMD单元被配置为根据SIMD范例以并行方式在处理器102的请求下执行操作。SIMD范例是这样一种范例:多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够用不同的数据执行所述程序。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行同一指令,但是可以以不同的数据执行所述指令。如果并非所有通道都需要执行给定指令,则可以利用断言关闭通道。断言也可用于执行具有发散控制流的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流是基于由单个通道执行的计算,与当前未执行的控制流路径相对应的通道的断言以及对不同控制流路径的串行执行允许任意控制流。
计算单元132中的基本计算单元是工作项。每个工作项表示将在特定通道中并行执行的程序的单个实例。可以在单个SIMD处理单元138上将工作项同时作为“波前”执行。一个或多个波前包括在“工作组”中,所述工作组包括指定为执行同一程序的工作项集合。可以通过执行构成工作组的波前中的每一者来执行工作组。在替代方案中,波前在单个SIMD单元138上循序执行,或者在不同的SIMD单元138上部分地或完全地并行执行。调度程序136被配置为执行与调度不同计算单元132和SIMD单元138上的各种工作组和波前相关的操作。
由计算单元132提供的并行性适合于图形相关操作,例如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,从处理器102接受图形处理命令的图形流水线134将计算任务提供给计算单元132以并行执行。
计算单元132还用于执行与图形不相关或不作为图形流水线134的“正常”操作的部分执行的计算任务(例如,执行为补充针对图形流水线134的操作执行的处理的自定义操作)。在处理器102上执行的应用程序126或其他软件将定义这种计算任务的程序传输给图形核心116以供执行。
如本文别处所描述,图形处理器107包括多个图形核心116。每个图形核心116有自己的命令处理器213。因此,每个图形核心116独立地处理从分配给所述图形核心116的客户机VM 204接收的命令流。因此,特定图形核心116的操作不会影响另一个图形核心116的操作。例如,如果图形核心116变得无响应或经历停顿或减速,则所述无响应、停顿或减速不会影响同一图形处理器107内的不同图形核心116。
本文的描述将图形核心116描述为与虚拟化计算方案中的单个客户机VM 204相关联并由其使用。然而,应当理解,其他实现方式也是可能的。更具体地,服务器103包括多个独立的服务器侧实体的任何实现方式落入本公开的范围内,每个独立的服务器侧实体与不同客户端105通信,每个客户端与特定的图形核心116相关联,并且每个客户端将命令流传输至相关联的图形核心116并将此类命令流(例如,像素)的结果传输至相关联的客户端105。通常,此类服务器侧实体在本文中称为服务器应用程序。在一些示例中,一个或多个服务器应用程序是视频游戏,并且服务器103为每个此种视频游戏分配图形处理器107的不同图形核心116。
另外,本文中的描述将图形处理器107的配置描述为由管理程序206控制。然而,服务器103的任何其他组件(实现为硬件、软件或其组合)可以替代地控制图形处理器107的配置。通常,这种组件在本文中称为图形处理器配置控制器。
图3是示出图2所示的图形处理流水线134的附加细节的框图。图形处理流水线134包括各自执行特定功能的级。所述级表示图形处理流水线134的功能的细分。每个级部分或完全实现为在计算单元132中执行的着色器程序,或部分或完全实现为计算单元132外部的固定功能的不可编程硬件。
输入汇编器级302从用户填充的缓冲器(例如,在由处理器102执行的软件(例如应用程序126)的请求下填充的缓冲器)中读取图元数据,并且将数据汇编成图元以供流水线的剩余部分使用。输入汇编器级302可以基于用户填充的缓冲器中包括的图元数据来生成不同类型的图元。输入汇编器级302将汇编的图元格式化以供流水线的其余部分使用。
顶点着色器级304处理由输入汇编器级302组装的图元的顶点。顶点着色器级304执行各种逐顶点操作,例如变换、蒙皮、变形和逐顶点照明。变换操作包括用于变换顶点坐标的各种操作。这些操作包括建模变换、视图变换、投影变换、透视分割和视口变换中的一种或多种。本文中,这种变换被视为修改执行变换的顶点的坐标或“位置”。顶点着色器级304的其他操作修改除了坐标之外的属性。
顶点着色器级304被部分地或完全地实现为将在一个或多个计算单元132上执行的顶点着色器程序。顶点着色器程序由处理器102提供,并且基于由计算机程序员预先编写的程序。驱动程序122对这种计算机程序进行编译,以生成具有适于在计算单元132内执行的格式的顶点着色器程序。
外壳着色器级306、曲面细分器级308和域着色器级310一起协作以实现曲面细分,这通过将图元细分来将简单的图元转换成更复杂的图元。外壳着色器级306基于输入图元而生成用于曲面细分的补片。曲面细分器级308生成用于补片的一组样本。域着色器级310计算与补片的样本相对应的顶点的顶点位置。外壳着色器级306和域着色器级310可以实现为要在计算单元132上执行的着色器程序。
几何着色器级312逐图元执行顶点操作。几何着色器级312可以执行各种不同类型的操作,包括例如点冲刺扩展、动态粒子系统操作、毛鳍生成、阴影体积生成、单遍渲染到立方体贴图、每图元材料交换和每图元材料设置的操作。在一些情况下,在计算单元132上执行的着色器程序执行几何着色器级312的操作。
光栅器级314接受和光栅化简单图元并在上游生成。光栅化由确定特定图元覆盖哪些屏幕像素(或子像素样本)组成。光栅化由固定功能硬件执行。
像素着色器级316基于在上游生成的图元和光栅化的结果来计算屏幕像素的输出值。像素着色器级316可以应用来自纹理存储器的纹理。像素着色器级316的操作由着色器程序执行,所述着色器程序在计算单元132上执行。
输出合并级318接受来自像素着色器级316的输出并且合并那些输出,从而执行例如z测试和阿尔法混合的操作以确定屏幕像素的最终颜色。
图4是根据示例的用于操作具有多个图形核心116的图形处理器107的方法400的流程图。尽管关于图1A至图3的系统进行描述,但本领域技术人员将理解,被配置为以任何技术上可行的顺序执行方法400的步骤的任何系统都落入本公开的范围内。
方法400开始于步骤402,其中图形处理器配置控制器(例如管理程序206)确定活动服务器应用程序(例如客户机VM 204)的数量。活动服务器应用程序是被配置为请求由相关图形核心116执行的工作的服务器应用程序。在一些示例中,图形处理器配置控制器接收来自另一实体(例如云游戏系统的工作负载调度程序)的请求,以将处理器102配置为执行一定数量的活动服务器应用程序和图形处理器107的相同数量的图形核心116。在各种示例中,此请求基于使用云游戏系统的服务的客户端105的数量。
在步骤404,图形处理器配置控制器基于活动服务器应用程序的数量来选择图形处理器配置。在一些示例中,图形处理器配置控制器能够基于活动服务器应用程序的数量并因此基于活动图形核心116的数量来改变一个或多个图形核心116的性能等级。在一些示例中,图形处理器配置的不同之处在于,与启用更多数量的图形核心116的配置中相比,在启用较少图形核心116的配置中,更多的可用功率和热预算可用于那些较少的图形核心116。因此,与启用更多数量的图形核心116的图形处理器配置中提供相同图形核心116相比,在启用较少图形核心116的配置中,至少一个图形核心具有更高的性能等级。在各种示例中,性能等级定义图形核心116的时钟频率、图形核心116可用的存储器带宽量、图形核心116可用的内存量或高速缓存量,或定义图形核心116的性能等级的其他特征中的一个或多个。
在步骤406,图形处理器配置控制器根据所选择的图形处理器配置来配置图形处理器107。具体而言,图形处理器配置控制器根据所选择的图形处理器配置启用被认为启用的图形核心116,并且根据所选择的图形处理器配置设置每个启用的图形核心116的性能等级。
在步骤408,图形处理器配置控制器使活动服务器应用程序用配置的图形处理器107执行。执行服务器应用程序包括使服务器应用程序转发命令流以供图形处理器107的相关联图形核心116处理。更具体地,如本文别处所述,向每个服务器应用程序分配特定的图形核心116。每个服务器应用程序将命令流传输至与所述服务器应用程序相关联的图形核心116。在任何特定图形核心116中,所述图形核心的命令处理器213执行所述命令流,以通过图形处理流水线134处理命令和数据和/或处理计算命令。
应理解,基于本文的公开内容,许多变型是可能的。虽然上面以特定的组合描述特征和要素,但是每个特征或要素可以单独使用而无需其他特征和要素,或者以具有或不具有其他特征和要素的各种组合使用。应理解,虽然图形核心116被描述为包括在一些实现方式中包括固定功能组件的图形处理流水线134,但是本文中预期具有完全通过着色器实施而不具有固定功能硬件的图形处理流水线134的图形核心116,或具有通用计算能力但不具有图形处理能力的图形核心116。换句话说,在本公开中,图形核心116可以用不包括固定功能元件的图形核心代替(且因此完全实现为可编程着色器程序),或者可以用通用计算核心代替,所述通用计算核心包括计算单元132,而不是图形处理流水线134并且可以执行通用计算操作。
所公开的功能块中的任一个可实现为硬连线电路系统、在处理器上执行的软件或其组合。所提供的方法可以在通用计算机、处理器或处理器核心中实现。合适的处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可以通过使用处理后的硬件描述语言(HDL)指令的结果和包括网表的其他中间数据(此类指令能够存储在计算机可读介质上)配置制造工艺来制造此类处理器。这种处理的结果可以是掩模作品,所述掩模作品随后在半导体制造过程中用于制造实现本公开的特征的处理器。
本文提供的方法或流程图可以在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实施,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(例如内部硬盘和可移除磁盘)、磁光介质、以及光学介质(例如CD-ROM盘和数字多功能盘(DVD))。

Claims (20)

1.一种用于操作包括多个核心的处理器的方法,所述方法包括:
确定活动应用程序的数量,其中每个活动应用程序包括在第二处理器上执行的应用程序,并且每个活动应用程序被配置为将命令传输至所述处理器以供执行;
基于活动应用程序的所述数量选择所述处理器的处理器配置,其中所述处理器配置包括每活动应用程序一个活动核心;
根据所选择的处理器配置来配置所述处理器;以及
使用配置的处理器执行所述活动应用程序。
2.如权利要求1所述的方法,其中所述处理器配置指示所述处理器的活动核心的数量。
3.如权利要求2所述的方法,其中活动核心的所述数量等于活动应用程序的所述数量。
4.如权利要求1所述的方法,其中所述处理器配置包括所述处理器的所述核心的性能等级。
5.如权利要求4所述的方法,其中所述性能等级指示时钟频率。
6.如权利要求1所述的方法,其中所述处理器包括图形处理器。
7.如权利要求6所述的方法,其中每个核心是包括命令处理器和图形处理流水线的图形核心。
8.如权利要求1所述的方法,其中所述应用程序是服务器应用程序。
9.如权利要求1所述的方法,其中每个应用程序在不同的虚拟机上执行。
10.一种用于操作包括多个核心的处理器的系统,所述系统包括:
所述处理器;以及
控制处理器,其被配置为:
确定活动应用程序的数量,其中每个活动应用程序包括在第二处理器上执行的应用程序,并且每个活动应用程序被配置为将命令传输至所述处理器以供执行;
基于活动应用程序的所述数量选择所述处理器的处理器配置,其中所述处理器配置包括每活动应用程序一个活动核心;
根据所选择的处理器配置来配置所述处理器;以及
使用配置的处理器执行所述活动应用程序。
11.如权利要求10所述的系统,其中所述处理器配置指示所述处理器的活动核心的数量。
12.如权利要求11所述的系统,其中活动核心的所述数量等于活动应用程序的所述数量。
13.如权利要求10所述的系统,其中所述处理器配置包括所述处理器的所述核心的性能等级。
14.如权利要求13所述的系统,其中所述性能等级指示时钟频率。
15.如权利要求10所述的系统,其中所述处理器包括图形处理器。
16.如权利要求15所述的系统,其中每个核心是包括命令处理器和图形处理流水线的图形核心。
17.如权利要求10所述的系统,其中所述应用程序是服务器应用程序。
18.如权利要求10所述的系统,其中每个应用程序在不同的虚拟机上执行。
19.一种存储指令的非暂时性计算机可读介质,所述指令在由第一处理器执行时使所述第一处理器通过以下方式操作包括多个核心的处理器:
确定活动应用程序的数量,其中每个活动应用程序包括在第二处理器上执行的应用程序,并且每个活动应用程序被配置为将命令传输至所述处理器以供执行;
基于活动应用程序的所述数量选择所述处理器的处理器配置,其中所述处理器配置包括每活动应用程序一个活动核心;
根据所选择的处理器配置来配置所述处理器;以及
使用配置的处理器执行所述活动应用程序。
20.如权利要求19所述的非暂时性计算机可读介质,其中所述处理器配置指示所述处理器的活动核心的数量。
CN202080064801.8A 2019-09-24 2020-09-18 灵活的多用户图形架构 Pending CN114402302A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962905010P 2019-09-24 2019-09-24
US62/905,010 2019-09-24
US16/913,562 US20210089423A1 (en) 2019-09-24 2020-06-26 Flexible multi-user graphics architecture
US16/913,562 2020-06-26
PCT/US2020/051647 WO2021061532A1 (en) 2019-09-24 2020-09-18 Flexible multi-user graphics architecture

Publications (1)

Publication Number Publication Date
CN114402302A true CN114402302A (zh) 2022-04-26

Family

ID=74880140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080064801.8A Pending CN114402302A (zh) 2019-09-24 2020-09-18 灵活的多用户图形架构

Country Status (6)

Country Link
US (1) US20210089423A1 (zh)
EP (1) EP4035001A4 (zh)
JP (1) JP2022548563A (zh)
KR (1) KR20220062020A (zh)
CN (1) CN114402302A (zh)
WO (1) WO2021061532A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797410B2 (en) * 2021-11-15 2023-10-24 Advanced Micro Devices, Inc. Chiplet-level performance information for configuring chiplets in a processor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7903116B1 (en) * 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
US8645965B2 (en) * 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
TWI393067B (zh) * 2009-05-25 2013-04-11 Inst Information Industry 具有電源閘控功能之繪圖處理系統及電源閘控方法,及其電腦程式產品
US9037889B2 (en) * 2012-09-28 2015-05-19 Intel Corporation Apparatus and method for determining the number of execution cores to keep active in a processor
WO2015080719A1 (en) * 2013-11-27 2015-06-04 Intel Corporation Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US9898795B2 (en) * 2014-06-19 2018-02-20 Vmware, Inc. Host-based heterogeneous multi-GPU assignment
CN107870800A (zh) * 2016-09-23 2018-04-03 超威半导体(上海)有限公司 虚拟机活跃性检测
US10373284B2 (en) * 2016-12-12 2019-08-06 Amazon Technologies, Inc. Capacity reservation for virtualized graphics processing

Also Published As

Publication number Publication date
WO2021061532A1 (en) 2021-04-01
JP2022548563A (ja) 2022-11-21
US20210089423A1 (en) 2021-03-25
EP4035001A4 (en) 2023-09-13
EP4035001A1 (en) 2022-08-03
KR20220062020A (ko) 2022-05-13

Similar Documents

Publication Publication Date Title
US20210049729A1 (en) Reconfigurable virtual graphics and compute processor pipeline
CN110832457B (zh) 用于虚拟化加速处理装置的提前虚拟化上下文切换
CN109690630B (zh) 一种执行着色器程序的方法和装置
JP6918919B2 (ja) 自動的にコンパイルされたコンピュートシェーダを用いるプリミティブカリング
US11182186B2 (en) Hang detection for virtualized accelerated processing device
JP2020532789A (ja) 可変レートシェーディング
CN114144797A (zh) 小芯片集成的机器学习加速器
US20180211434A1 (en) Stereo rendering
WO2018140223A1 (en) Stereo rendering
US20210089423A1 (en) Flexible multi-user graphics architecture
US20220058048A1 (en) Varying firmware for virtualized device
US20220414950A1 (en) Per-pixel variable rate shading controls using stencil data
CN115702414A (zh) 用于机器学习加速器的堆叠管芯
US10832465B2 (en) Use of workgroups in pixel shader
JP2023510164A (ja) ハイブリッドビニング
KR20230162006A (ko) 두 레벨 비닝을 통한 포스트 깊이 가시성 수집

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