IP Library Granted Patent US 11,853,796
Granted Patent B2
US 11,853,796 · App. 16/063,618 · Granted Dec 26, 2023

Controlling operation of a GPU

Inventors: Dave Roberts (Saratoga, CA); Jackson Dsouza (Kings Langley, GB)
Assignee: Imagination Technologies Limited
G06F9/4887G06F9/4818G06F9/4881G06T1/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,853,796
App. No.
16/063,618
Granted
Dec 26, 2023
Kind
B2
Abstract

The operation of a GPU is controlled based on one or more deadlines by which one or more GPU tasks must be completed and estimates of the time required to complete the execution of a first GPU task (which is currently being executed) and the time required to execute one or more other GPU tasks (which are not currently being executed). Based on a comparison between the deadline(s) and the estimates, the operating parameters of the GPU may be changed.

Claims (62)

1. A method of controlling operation of a GPU, the method comprising:

whilst executing a first GPU task having a first predefined priority value and in response to a second GPU task having a second predefined priority value becoming ready to run, determining which of the first GPU task and the second GPU task has a higher priority based on the first and second predefined priority values, wherein the first predefined priority value is defined prior to execution of the first task and the second predefined priority value is defined prior to execution of the second task; and

in response to determining that the second GPU task has a higher priority than the currently executing first GPU task:

estimating a completion time for each of the first, lower priority GPU task and the second, higher priority GPU task,

identifying a deadline associated with the second, higher priority GPU task,

determining, using the estimated completion times, whether both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task,

in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task cannot be completed before the deadline associated with the second, higher priority GPU task, changing the operation of the GPU to increase an operating frequency of the GPU and allowing the first, lower priority GPU task to continue execution before executing the second, higher priority GPU task, and

in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task, allowing the first, lower priority GPU task to continue execution.

2. The method according to claim 1 , wherein determining an estimate to complete each of a plurality of GPU tasks comprises:

identifying a set of GPU tasks of interest; and

estimating a completion time for each of the identified GPU tasks,

and wherein comparing the estimates to deadlines for one or more of the plurality of GPU tasks comprises:

determining, using the estimated completion times, whether each GPU task can be completed before a deadline associated with the particular GPU task,

and wherein in response to determining that all the identified GPU tasks cannot be completed before their associated deadlines, changing the operation of the GPU comprises increasing an operating frequency of the GPU.

3. The method according to claim 2 , wherein estimating a completion time for each of the identified GPU tasks comprises, for each identified GPU task:

identifying one or more workload characteristics of the GPU task;

accessing stored statistics for each identified workload characteristic; and

generating an estimated completion time using the stored statistics for each identified workload characteristic.

4. The method according to claim 2 , further comprising:

determining the deadlines associated with each identified GPU task.

5. The method according to claim 4 , wherein the deadline associated with a GPU task is determined based on a display refresh rate.

6. The method according to claim 1 , wherein allowing the first, lower priority GPU task to continue execution comprises:

allowing execution of the first, lower priority GPU task to complete.

7. The method according to claim 1 , further comprising:

in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task, setting a timer; and

in response to the timer expiring prior to completion of execution of the first, lower priority GPU task, interrupting the execution of the first, lower priority GPU task and executing the second, higher priority GPU task.

8. The method according to claim 1 , wherein estimating a completion time for each of the first, lower priority GPU task and the second, higher priority GPU task comprises, for each GPU task:

identifying one or more workload characteristics of the GPU task;

accessing stored statistics for each identified workload characteristic; and

generating an estimated completion time for the GPU task using the stored statistics for identified workload characteristics.

9. The method according to claim 1 , wherein the deadline associated with the second, higher priority GPU task is determined based on a display refresh rate.

10. The method according to claim 8 , further comprising:

updating stored statistics associated with the first and/or second GPU task.

11. A GPU comprising a microcontroller, wherein the microcontroller is configured to:

determine, whilst executing a first GPU task having a first predefined priority value and in response to a second GPU task having a second predefined priority value becoming ready to run, which of the first GPU task and the second GPU task has a higher priority based on the first and second predefined priority values, wherein the first predefined priority value is defined prior to execution of the first task and the second predefined priority value is defined prior to execution of the second task; and

in response to determining that the second GPU task has a higher priority than the currently executing first GPU task, estimating a completion time for each of the first, lower priority GPU task and the second, higher priority GPU task;

identifying a deadline associated with the second, higher priority GPU task;

wherein the microcontroller is configured to determine, using the estimated completion times, whether both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task;

wherein in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task cannot be completed before the deadline associated with the second, higher priority GPU task, the microcontroller is configured to change the operation of the GPU by increasing an operating frequency of the GPU; and

wherein the microcontroller is further configured, in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task, to allow the first, lower priority GPU task to continue execution.

12. The GPU according to claim 11 , further comprising a memory arranged to store device executable instructions which, when executed, cause the microcontroller to:

determine the estimate to complete each of a plurality of GPU tasks; and

compare the estimates to deadlines for one or more of the plurality of GPU tasks; and

in response to determining that one of the deadlines cannot be met, to change the operation of the GPU.

13. The GPU according to claim 11 , wherein the microcontroller is configured to determine an estimate to complete each of a plurality of GPU tasks by:

identifying a set of GPU tasks of interest; and

estimating a completion time for each of the identified GPU tasks,

and wherein the microcontroller is configured to compare the estimates to deadlines for one or more of the plurality of GPU tasks by: determining, using the estimated completion times, whether each GPU task can be completed before a deadline associated with the particular GPU task,

and wherein in response to determining that all the identified GPU tasks cannot be completed before their associated deadlines, the microcontroller is configured to change the operation of the GPU by increasing an operating frequency of the GPU.

14. The GPU according to claim 13 , wherein the microcontroller is configured to estimate a completion time for each of the identified GPU tasks by:

identifying one or more workload characteristics of the GPU task;

accessing stored statistics for each identified workload characteristic; and

generating an estimated completion time using the stored statistics for each identified workload characteristic.

15. The GPU according to claim 13 , wherein the microcontroller is further configured to determine the deadlines associated with each identified GPU task.

16. The GPU according to claim 15 , wherein the deadline associated with a GPU task is determined based on a display refresh rate.

17. A non-transitory computer readable storage medium having stored thereon an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the system to manufacture a GPU comprising a microcontroller, wherein the microcontroller is configured to:

determine, whilst executing a first GPU task having a first predefined priority value and in response to a second GPU task having a second predefined priority value becoming ready to run, which of the first GPU task and the second GPU task has a higher priority based on the first and second predefined priority values, wherein the first predefined priority value is defined prior to execution of the first task and the second predefined priority value is defined prior to execution of the second task; and

in response to determining that the second GPU task has a higher priority than the currently executing first GPU task, estimating a completion time for each of the first, lower priority GPU task and the second, higher priority GPU task;

identifying a deadline associated with the second, higher priority GPU task;

wherein the microcontroller is configured to determine, using the estimated completion times, whether both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task;

wherein in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task cannot be completed before the deadline associated with the second, higher priority GPU task, the microcontroller is configured to change the operation of the GPU by increasing an operating frequency of the GPU; and

wherein the microcontroller is further configured, in response to determining that both the first, lower priority GPU task and the second, higher priority GPU task can be completed before the deadline associated with the second, higher priority GPU task, to allow the first, lower priority GPU task to continue execution.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2018
From: ROBERTS, DAVE; DSOUZA, JACKSON
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 047279/0591 →