IP Library Granted Patent US 10,452,437
Granted Patent B2
US 10,452,437 · App. 15/192,784 · Granted Oct 22, 2019

Temperature-aware task scheduling and proactive power management

Inventors: Abhinandan Majumdar (Ithaca, NY); Brian J. Kocoloski (Pittsburgh, PA); Leonardo Piga (Austin, TX); Wei Huang (Frisco, TX); Yasuko Eckert (Redmond, WA)
Assignee: Advanced Micro Devices, Inc.
G06F9/4893G06F1/206G06F1/329G06F9/5094Y02D10/24
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 10,452,437
App. No.
15/192,784
Granted
Oct 22, 2019
Kind
B2
Abstract

Systems, apparatuses, and methods for performing temperature-aware task scheduling and proactive power management. A SoC includes a plurality of processing units and a task queue storing pending tasks. The SoC calculates a thermal metric for each pending task to predict an amount of heat the pending task will generate. The SoC also determines a thermal gradient for each processing unit to predict a rate at which the processing unit's temperature will change when executing a task. The SoC also monitors a thermal margin of how far each processing unit is from reaching its thermal limit. The SoC minimizes non-uniform heat generation on the SoC by scheduling pending tasks from the task queue to the processing units based on the thermal metrics for the pending tasks, the thermal gradients of each processing unit, and the thermal margin available on each processing unit.

Claims (44)

1. A system comprising:

a plurality of processing units, wherein at least two of the processing units have different architectures; and

a task queue for storing a plurality of pending tasks;

wherein the system comprises circuitry configured to:

calculate a thermal metric for each pending task of the plurality of pending tasks stored in the task queue, wherein calculating a thermal metric for a pending task comprises calculating at least two different thermal metrics for the pending task based on the two processing units that have different architectures;

determine a thermal gradient for each processing unit of the plurality of processing units including at least two different thermal gradients for two processing units that have different architectures, wherein said thermal gradient indicates a rate at which a processing unit temperature will change when executing a task;

monitor a thermal margin available on each processing unit, wherein said thermal margin indicates how much a temperature of a processing unit can increase without exceeding a thermal limit of the processing unit; and

reduce non-uniform heat generation in the system by scheduling pending tasks from the task queue to the plurality of processing units based on the thermal metrics of the pending tasks, the thermal gradients of each processing unit, and the thermal margin available on each processing unit.

2. The system as recited in claim 1 , wherein the system is configured to schedule pending tasks from the task queue to the plurality of processing units to prevent thermal limits of the processing units from being exceeded.

3. The system as recited in claim 1 , wherein the system is configured to schedule a task to be executed on a first processing unit with a first architecture, responsive to determining executing the task on the first processing unit causes lower increase in temperature than executing on a second processing unit with a second architecture, wherein the task has a classification indicating execution on the second processing unit with the second architecture.

4. The system as recited in claim 2 , wherein the system is configured to adjust power states to the plurality of processing units when scheduling pending tasks to the plurality of processing units to reduce non-uniform heat generation on the system while preventing the thermal limits of the processing units from being exceeded.

5. The system as recited in claim 1 , wherein the system is configured to:

generate a first product by multiplying a thermal metric of a first pending task by a thermal gradient of a first processing unit;

compare the first product to a thermal margin of the first processing unit; and

allow the first pending task to be scheduled to the first processing unit if the first product is less than or equal to the thermal margin of the first processing unit.

6. The system as recited in claim 1 , wherein a thermal metric for a given task is calculated based at least in part on a programmer provided hint.

7. The system as recited in claim 1 , wherein a thermal metric for a given task is calculated based on a historical data associated with previous executions of the given task.

8. A method comprising:

calculating a thermal metric for each pending task of a plurality of pending tasks stored in a task queue, wherein calculating a thermal metric for a pending task comprises calculating at least two different thermal metrics for the pending task based on two processing units that have different architectures;

determining a thermal gradient for each processing unit of a plurality of processing units including at least two different thermal gradients for two processing units that have different architectures, wherein said thermal gradient indicates a rate at which a processing unit temperature will change when executing a task;

monitoring a thermal margin available on each processing unit, wherein said thermal margin indicates how much a temperature of a processing unit can increase without exceeding a thermal limit of the processing unit; and

reducing non-uniform heat generation by scheduling pending tasks from the task queue to the plurality of processing units based on the thermal metrics of the pending tasks, the thermal gradients of each processing unit, and the thermal margin available on each processing unit.

9. The method as recited in claim 8 , further comprising scheduling pending tasks from the task queue to the plurality of processing units to prevent thermal limits of the processing units from being exceeded.

10. The method as recited in claim 8 , further comprising schedule a task to be executed on a first processing unit with a first architecture, responsive to determining executing the task on the first processing unit causes lower increase in temperature than executing on a second processing unit with a second architecture, wherein the task has a classification indicating execution on the second processing unit with the second architecture.

11. The method as recited in claim 9 , further comprising adjusting power states to the plurality of processing units when scheduling pending tasks to the plurality of processing units to reduce non-uniform heat generation on the system while preventing the thermal limits of the processing units from being exceeded.

12. The method as recited in claim 8 , further comprising:

generating a first product by multiplying a thermal metric of a first pending task by a thermal gradient of a first processing unit;

comparing the first product to a thermal margin of the first processing unit; and

allowing the first pending task to be scheduled to the first processing unit if the first product is less than or equal to the thermal margin of the first processing unit.

13. The method as recited in claim 8 , wherein a thermal metric for a given task is calculated based on at least in part on a programmer provided hint.

14. The method as recited in claim 8 , wherein a thermal metric for a given task is calculated based on a historical data associated with previous executions of the given task.

15. A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to:

calculate a thermal metric for each pending task of a plurality of pending tasks stored in a task queue, wherein calculating a thermal metric for a pending task comprises calculating at least two different thermal metrics for the pending task based on two processing units that have different architectures;

determine a thermal gradient for each processing unit of a plurality of processing units including at least two different thermal gradients for two processing units that have different architectures, wherein said thermal gradient indicates a rate at which a processing unit temperature will change when executing a task;

monitor a thermal margin available on each processing unit, wherein said thermal margin indicates how much a temperature of a processing unit can increase without exceeding a thermal limit of the processing unit; and

reduce non-uniform heat generation by scheduling pending tasks from the task queue to the plurality of processing units based on the thermal metrics of the pending tasks, the thermal gradients of each processing unit, and the thermal margin available on each processing unit.

16. The non-transitory computer readable storage medium as recited in claim 15 , wherein the program instructions are further executable by a processor to schedule pending tasks from the task queue to the plurality of processing units to prevent thermal limits of the processing units from being exceeded.

17. The non-transitory computer readable storage medium as recited in claim 15 , wherein the program instructions are further executable by a processor to schedule a task to be executed on a first processing unit with a first architecture, responsive to determining executing the task on the first processing unit causes lower increase in temperature than executing on a second processing unit with a second architecture, wherein the task has a classification indicating execution on the second processing unit with the second architecture.

18. The non-transitory computer readable storage medium as recited in claim 16 , wherein the program instructions are further executable by a processor to adjust power states to the plurality of processing units when scheduling pending tasks to the plurality of processing units to reduce non-uniform heat generation on the system while preventing the thermal limits of the processing units from being exceeded.

19. The non-transitory computer readable storage medium as recited in claim 15 , wherein the program instructions are further executable by a processor to:

generate a first product by multiplying a thermal metric of a first pending task by a thermal gradient of a first processing unit;

compare the first product to a thermal margin of the first processing unit; and

allow the first pending task to be scheduled to the first processing unit if the first product is less than or equal to the thermal margin of the first processing unit.

20. The non-transitory computer readable storage medium as recited in claim 15 , wherein a thermal metric for a given task is calculated based at least in part on a programmer provided hint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2016
From: MAJUMDAR, ABHINANDAN; KOCOLOSKI, BRIAN J.; PIGA, LEONARDO; HUANG, WEI; ECKERT, YASUKO
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 039008/0842 →
Continuity (1)
Related Publication 20170371719A1 · Dec 28, 2017
Cited By (1)
US 12,306,694