# US 11,308,680 B2 · Apparatus and method for processing telemetry data in a virtualized graphics processor

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,680 B2
- Document ID: US11308680B2
- Status: Granted
- Kind: B2
- Application number: 17/158,842
- Filed: 2021-01-26
- Published: 2021-07-22
- Granted: 2022-04-19
- Earliest claimed: 2018-12-07
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Ankur Shah; Matthew Callaway; Vivek Garg; Rajeev K Nalawadi; James Varga
- Web page: https://patentgrep.com/patent/US11308680B2

## CPC

- G06T 15/005: {General purpose rendering architectures}
- G06F 1/28: Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
- G06F 1/329: by task scheduling
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5094: {where the allocation takes into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206)}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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

## Abstract

Apparatus and method for processing virtual graphics processor telemetry data based on quanta. For example, one embodiment of a graphics processing apparatus comprises virtualization control circuitry to virtualize graphics processing resources of one or more graphics processing units (GPU), wherein one or more virtual machines (VMs) are to be provided with controlled access to the graphics processing resources in accordance with a current graphics virtualization configuration specified, at least in part, in one or more virtualization control registers of the virtualization control circuitry; a scheduler to schedule each VM for processing by the graphics processing resources in accordance with the graphics virtualization configuration, the scheduler to generate a VM switch event responsive to each VM being scheduled for processing on the graphics processing resources; power management circuitry to collect telemetry data associated with VMs which have temporarily completed processing on the graphics processing resources and to forward the telemetry data to a telemetry data aggregator, the telemetry data aggregator to combine telemetry data collected for each VM over a period of time and to store per-VM telemetry data in a data repository accessible by a virtualization management application.

## Claims

### Claim 1

A graphics processing apparatus comprising:
virtualization control circuitry to virtualize graphics processing resources of one or more graphics processing units (GPU), wherein one or more virtual machines (VMs) are to be provided with controlled access to the graphics processing resources in accordance with a graphics virtualization configuration specified, at least in part, in one or more virtualization control registers of the virtualization control circuitry;
a scheduler to schedule each VM for processing by the graphics processing resources, wherein the scheduler is to assign a time-sliced quantum of the graphics processing resources to each VM in accordance with the graphics virtualization configuration;
a telemetry data aggregator to combine telemetry data associated with the VMs collected at an end of each time-sliced quantum over a period of time to generate per-VM telemetry data; and
data repository accessible by a virtualization management application to store the per-VM telemetry, wherein the virtualization management application is to access and analyze the per-VM telemetry data and to responsively update the virtualization control registers to specify changes to the graphics virtualization configuration based on the analysis.

### Claim 2 (depends on 1)

The graphics processing apparatus of claim 1 wherein the scheduler is to generate an event notification to a power management circuitry at the end of each time-slice quantum.

### Claim 3 (depends on 2)

The graphics processing apparatus of claim 2 wherein the power management circuitry is to collect telemetry data responsive to receipt of the event notification.

### Claim 4 (depends on 3)

The graphics processing apparatus of claim 3 wherein collecting the telemetry data comprises reading one or more registers associated with the graphics processing resources.

### Claim 5 (depends on 1)

The graphics processing apparatus of claim 1 wherein the virtualization control circuitry is to be updated by the virtualization management application following analysis of the per-VM telemetry data by the virtualization management application.

### Claim 6 (depends on 1)

The graphics processing apparatus of claim 1 wherein each time sliced quantum is assigned based on one or more variables including a subscription associated with each VM, a quality of service (QoS) guaranteed to each VM, a current graphics processing load on the GPUs, graphics processing requirements associated with each VM, and graphics processing requirements associated with graphics applications executed on each VM.

### Claim 7 (depends on 1)

The graphics processing apparatus of claim 1 wherein the virtualization control circuitry comprises instruction processing circuitry to process instructions to implement a virtual machine monitor (VMM), the VMM to control operation of the VMs.

### Claim 8 (depends on 1)

The graphics processing apparatus of claim 1 wherein the graphics processing resources comprises one or more 3D graphics engines to perform 3D graphics operations on behalf of each of the VMs.

### Claim 9

A method comprising:
providing one or more virtual machines (VMs) with controlled access to graphics processing resources of one or more graphics processing units (GPUs) in accordance with a current graphics virtualization configuration specified, at least in part, in one or more virtualization control registers of virtualization control circuitry;
scheduling each VM for processing by the graphics processing resources;
assigning a time-sliced quantum of the graphics processing resources to each VM in accordance with the graphics virtualization configuration;
collecting telemetry data associated with the VMs at an end of each time-sliced quantum;
combining telemetry data collected for each VM over a period of time to generate per-VM telemetry data;
storing the per-VM telemetry data in a data repository;
analyzing the per-VM telemetry data in the data repository; and
updating the virtualization control registers to specify changes to the graphics virtualization configuration based on the analysis.

### Claim 10 (depends on 9)

The method of claim 9 further comprising:
generating an event notification at the end of each time slice quantum.

### Claim 11 (depends on 10)

The method of claim 10 further comprising:
collecting telemetry data associated with the VMs responsive to receipt of the event notification.

### Claim 12 (depends on 11)

The method of claim 11 wherein collecting the telemetry data comprises reading one or more registers associated with the graphics processing resources.

### Claim 13 (depends on 9)

The method of claim 9 further comprising:
updating the virtualization control circuitry following analysis of the per-VM telemetry data.

### Claim 14 (depends on 9)

The method of claim 9 wherein each time sliced quantum is assigned based on one or more variables including a subscription associated with each VM, a quality of service (QoS) guaranteed to each VM, a current graphics processing load on the GPUs, graphics processing requirements associated with each VM, and graphics processing requirements associated with graphics applications executed on each VM.

### Claim 15 (depends on 9)

The method of claim 9 further comprising:
processing virtualization instructions to implement a virtual machine monitor (VMM), the VMM to control operation of the VMs.

### Claim 16 (depends on 9)

The method of claim 9 wherein the graphics processing resources comprises one or more 3D graphics engines to perform 3D graphics operations on behalf of each of the VMs.

### Claim 17

A non-transitory machine-readable medium storing program code which, when executed by a machine, causes the machine to perform operations of:
providing one or more virtual machines (VMs) with controlled access to graphics processing resources of one or more graphics processing units (GPUs) in accordance with a current graphics virtualization configuration specified, at least in part, in one or more virtualization control registers of virtualization control circuitry;
scheduling each VM for processing by the graphics processing resources;
assigning a time-sliced quantum of the graphics processing resources to each VM in accordance with the graphics virtualization configuration;
collecting telemetry data associated with the VMs at an end of each time-sliced quantum;
combining telemetry data collected for each VM over a period of time to generate per-VM telemetry data;
storing the per-VM telemetry data in a data repository;
analyzing the per-VM telemetry data in the data repository; and
updating the virtualization control registers to specify changes to the graphics virtualization configuration based on the analysis.

### Claim 18 (depends on 17)

The non-transitory machine-readable medium of claim 17 further comprising program code to cause the machine to perform the operations of:
generating an event notification at the end of each time slice quantum.

### Claim 19 (depends on 18)

The non-transitory machine-readable medium of claim 18 further comprising program code to cause the machine to perform the operations of:
collecting telemetry data associated with the VMs responsive to receipt of the event notification.

### Claim 20 (depends on 19)

The non-transitory machine-readable medium of claim 19 wherein collecting the telemetry data comprises reading one or more registers associated with the graphics processing resources.

### Claim 21 (depends on 17)

The non-transitory machine-readable medium of claim 17 further comprising program code to cause the machine to perform the operations of:
updating the virtualization control circuitry following analysis of the per-VM telemetry data.

### Claim 22 (depends on 17)

The non-transitory machine-readable medium of claim 17 wherein each time sliced quantum is assigned based on one or more variables including a subscription associated with each VM, a quality of service (QoS) guaranteed to each VM, a current graphics processing load on the GPUs, graphics processing requirements associated with each VM, and graphics processing requirements associated with graphics applications executed on each VM.

### Claim 23 (depends on 17)

The non-transitory machine-readable medium of claim 17 further comprising program code to cause the machine to perform the operations of:
processing virtualization instructions to implement a virtual machine monitor (VMM), the VMM to control operation of the VMs.

### Claim 24 (depends on 17)

The non-transitory machine-readable medium of claim 17 wherein the graphics processing resources comprises one or more 3D graphics engines to perform 3D graphics operations on behalf of each of the VMs.
