Autonomous Context Scheduler For Graphics Processing Units
First Claim
1. An apparatus comprising:
- one or more processing engines configured to execute at least a portion of executable program instructions, said executable program instructions belonging to at least one context of a context list, the context list comprising a plurality of contexts, each context containing working data, pointers and scheduling information for the executable program instructions, and a priority level and resource requirements for the context; and
a scheduler coupled to the one or more processing engines and causing processing of contexts in the context list in an order determined by the priority level and resource requirements of the contexts.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments directed to an autonomous graphics processing unit (GPU) scheduler for a graphics processing system are described. Embodiments include an execution structure for a host CPU and GPU in a computing system that allows the GPU to execute command threads in multiple contexts in a dynamic rather than fixed order based on decisions made by the GPU. This eliminates a significant amount of CPU processing overhead required to schedule GPU command execution order, and allows the GPU to execute commands in an order that is optimized for particular operating conditions. The context list includes parameters that specify task priority and resource requirements for each context. The GPU includes a scheduler component that determines the availability of system resources and directs execution of commands to the appropriate system resources, and in accordance with the priority defined by the context list.
72 Citations
29 Claims
-
1. An apparatus comprising:
-
one or more processing engines configured to execute at least a portion of executable program instructions, said executable program instructions belonging to at least one context of a context list, the context list comprising a plurality of contexts, each context containing working data, pointers and scheduling information for the executable program instructions, and a priority level and resource requirements for the context; and a scheduler coupled to the one or more processing engines and causing processing of contexts in the context list in an order determined by the priority level and resource requirements of the contexts. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for scheduling command thread execution in a graphics processing unit (GPU), comprising:
-
defining a plurality of contexts containing working data, pointers and scheduling information for one or more command threads executed by the GPU; specifying a relative priority for processing of each context of the plurality of contexts, within each respective context; and determining an order of processing of each context of the plurality of contexts within a scheduling component of the GPU based on the relative priority of each context. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A graphics processor control circuit comprising:
-
a bus interface circuit coupling a memory to one or more graphics processing engines contained in a graphics processing unit (GPU), wherein the memory stores a context list including a plurality of contexts, each context containing working data, pointers and scheduling information for executable program instructions, and a priority level for the context and resource requirements for the context; a scheduler in the GPU determining an order of execution of contexts in the context list based on the priority level and resource requirements of the contexts. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A method of operating a computer system comprising:
-
defining a plurality of contexts containing command threads for execution by a graphics processing unit (GPU); and determining an order of execution of each context of the plurality of contexts within a scheduling component of the GPU based on a relative priority of each context and resource requirements of each context. - View Dependent Claims (27, 28)
-
-
29. The method of claim 29 wherein said order of execution is determined further based on at least one of system and user input available to said scheduling component.
Specification