Systems, methods, and computer program products for preemption of threads at a synchronization barrier
AssigneeIntel Corporation
InventorMarek Targowski
Life of this patent
Estimating the term…
Abstract
Systems and methods for the processing of EU threads (also known as warps) in a thread group. The status of each EU thread in the group may be monitored, to determine if it is executing or if it is halted and waiting at a synchronization barrier. If certain threshold conditions are met, the waiting EU threads may be preempted to allow execution of threads from another thread group. The threshold conditions may include a minimum number of EUs in use, a minimum number of EU threads in the first thread group that are waiting at the synchronization barrier and/or a maximum number of EU threads that are still executing, and a minimum wait time for one or more of the EU threads waiting at the barrier.
Claims26
A method, comprising:
- receiving status information regarding execution unit (EU) threads in a first thread group, wherein the status information for a thread comprises a notification of whether the thread is waiting at a synchronization barrier;
- for an EU thread that reaches the synchronization barrier, determining how long the EU thread has been waiting at the synchronization barrier;
- determining if threshold conditions are met, based on the status information;
- and
- if the threshold conditions are met, preempting the EU threads waiting at the synchronization barrier, with threads from a second thread group.
A processor comprising:
- a plurality of execution units (EUs) configured to execute one or more EU thread groups;
- thread management logic configured to
- receive status information regarding execution unit (EU) threads in a first thread group, wherein the status information for a thread comprises a notification of whether the thread is waiting at a synchronization barrier;
- for an EU thread that reaches the synchronization barrier, determine how long the EU thread has been waiting at the synchronization barrier;
- and
- determine if threshold conditions are met, based on the status information;
- and preemption logic configured to
- if the threshold conditions are met, preempt the EU threads waiting at the synchronization barrier, with threads from a second thread group.
A system comprising:
- a plurality of execution units (EUs) configured to execute one or more EU thread groups;
- thread management logic configured to
- receive status information regarding execution unit (EU) threads in a first thread group, wherein the status information for a thread comprises a notification of whether the thread is waiting at a synchronization barrier;
- for an EU thread that reaches the synchronization barrier, determine how long the EU thread has been waiting at the synchronization barrier;
- and
- determine if threshold conditions are met, based on the status information;
- preemption logic configured to preempt the EU threads waiting at the synchronization barrier, with threads from a second thread group;
- and
- a display configured to display graphics processed by said execution units.
Dependencies are inferred from the claim text.