IP Library › Granted Patent US 11,263,044
Granted Patent B2
US 11,263,044 · App. 16/692,856 · Granted Mar 1, 2022

Workload-based clock adjustment at a processing unit

Inventors: Mangesh P. Nijasure (Orlando, FL); Michael Mantor (Orlando, FL); Ashkan Hosseinzadeh Namin (Markham, CA); Louis Regniere (Orlando, FL)
Assignees: Advanced Micro Devices, Inc.; ATI TECHNOLOGIES ULC
G06F9/4881G06F1/324G06F9/505G06F9/5044G06T1/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,263,044
App. No.
16/692,856
Granted
Mar 1, 2022
Kind
B2
Abstract

A graphics processing unit (GPU) adjusts a frequency of clock based on identifying a program thread executing at the processing unit, wherein the program thread is detected based on a workload to be executed. By adjusting the clock frequency based on the identified program thread, the processing unit adapts to different processing demands of different program threads. Further, by identifying the program thread based on workload, the processing unit adapts the clock frequency based on processing demands, thereby conserving processing resources.

Claims (45)

1. A method comprising:

in response to receiving a plurality of commands from a central processing unit (CPU), determining, at a graphics processing unit (GPU), a first workload to be executed at the GPU based on at least one of the plurality of commands;

identifying, based on the first workload, a first program thread of a plurality of program threads concurrently executing at the CPU; and

in response to identifying the first program thread, adjusting a clock signal of the GPU to a specified clock frequency associated with the first program thread.

2. The method of claim 1 , wherein:

identifying the first program thread comprises identifying the first program thread in response to the first workload exceeding a first workload threshold.

3. The method of claim 2 , further comprising:

determining, at the GPU, a second workload to be executed at the GPU after the first workload based on at least one other command of the plurality of commands;

identifying, based on the second workload, a second program thread of the plurality of program threads concurrently executing at the CPU; and

in response to identifying the second program thread, adjusting the clock signal of the GPU from the specified clock frequency associated with the first program thread to the specified clock frequency associated with the second program thread.

4. The method of claim 3 , wherein:

identifying the second program thread comprises identifying the second program thread in response to the second workload being below a second workload threshold.

5. The method of claim 2 , wherein the first workload threshold is programmable.

6. The method of claim 1 , wherein determining the first workload comprises determining the first workload further based on information received at a scheduler of the GPU.

7. The method of claim 1 , wherein determining the first workload comprises determining the first workload further based on a number of wavefronts scheduled for execution at a set of compute units of the GPU.

8. The method of claim 1 wherein determining the first workload comprises determining the first workload further based on a type of draw command received at the GPU.

9. The method of claim 1 , wherein adjusting the clock signal of the GPU comprises ramping the clock signal from a second frequency to the specified clock frequency associated with the first program thread.

10. A method, comprising:

identifying a first program thread, of a plurality of program threads, based on a first workload to be executed at a graphics processing unit (GPU), wherein the GPU is executing workloads on behalf of the plurality of program threads, and the plurality of program threads are concurrently executed at a central processing unit (CPU); and

in response to identifying the first program thread, adjusting a clock of the GPU to a first frequency associated with the first program thread.

11. The method of claim 10 , wherein:

identifying the first program thread comprises identifying the first program thread in response to the first workload exceeding a first workload threshold.

12. The method of claim 11 , further comprising:

identifying a second program thread of the plurality of program threads based on a first workload to be executed at the GPU; and

in response to identifying the second program thread, adjusting the clock of the GPU to a second frequency associated with the second program thread.

13. The method of claim 10 , wherein adjusting the clock comprises ramping the clock from a second frequency to the first frequency.

14. A graphics processing unit (GPU), comprising:

a scheduler to receive, from a central processing unit (CPU) a plurality of commands associated with a plurality of program threads concurrently executing at the CPU;

a plurality of compute units configured to execute workloads based on the plurality of commands;

a clock control module to generate a first clock signal for the plurality of compute units; and

a clock frequency adjustment module configured to:

determine a first workload to be executed at the plurality of compute units;

identify, based on the first workload, a first program thread of the plurality of program threads concurrently executed at the CPU; and

in response to identifying the first program thread, adjust the first clock signal to a specified clock frequency associated with the first program thread.

15. The GPU of claim 14 , wherein the clock frequency adjustment module is configured to:

identify the first program thread in response to the first workload exceeding a first workload threshold.

16. The GPU of claim 15 , wherein the clock frequency adjustment module is configured to:

determine a second workload to be executed at the plurality of compute units;

identify, based on the second workload, a second program thread; and

in response to identifying the second program thread, adjust the first clock signal from the specified clock frequency associated with the first program thread to a second specified clock frequency associated with the second program thread.

17. The GPU of claim 16 , wherein the clock frequency adjustment module is configured to:

identify the second program thread in response to the second workload being below a second workload threshold.

18. The GPU of claim 15 , wherein the first workload threshold is programmable.

19. The GPU of claim 14 , wherein the clock frequency adjustment module is configured to determine the first workload based on a number of wavefronts scheduled at a set of compute units of the GPU.

20. The GPU of claim 14 , wherein the clock frequency adjustment module is configured to determine the first workload based on a number of draw commands received at the scheduler.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: HOSSEINZADEH NAMIN, ASHKAN
To: ATI TECHNOLOGIES ULC
Reel/Frame 051120/0420 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: NIJASURE, MANGESH P.; MANTOR, MICHAEL; REGNIERE, LOUIS
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 051121/0080 →
Continuity (1)
Related Publication 20210157639A1 · May 27, 2021