Back to results
US 11,768,687 B2Granted
Scheduling of threads for execution utilizing load balancing of thread groups
AssigneeIntel Corporation
InventorsBalaji Vembu, Abhishek R. Appu, Joydeep Ray, Altug Koker
Life of this patent
Estimating the term…
Abstract
An apparatus to facilitate thread scheduling is disclosed. The apparatus includes logic to store barrier usage data based on a magnitude of barrier messages in an application kernel and a scheduler to schedule execution of threads across a plurality of multiprocessors based on the barrier usage data.
Claims12
An apparatus comprising:
- a processor to analyze an application kernel to determine a magnitude of barrier messages in the application kernel, generate barrier usage data having a value corresponding to the magnitude of barrier messages in the application kernel, and store the barrier usage data as thread meta-data for the application kernel;
- a memory to store data including the thread meta-data;
- and
- a graphics processor, including a plurality of multiprocessors;
- and a scheduler to schedule the plurality of threads, wherein the scheduler is to:
- retrieve the thread meta-data from the memory,
- parse the thread meta-data to identify the barrier usage data, and
- schedule execution of each thread of the plurality of threads to a respective microprocessor of the plurality of multiprocessors according to a scheduling policy, the scheduling policy being based at least in part on the identified barrier usage data and load balancing of the plurality of threads across the plurality of multiprocessors;
- wherein the scheduler is to prioritize scheduling threads of a thread group based upon usage of barriers by the application kernel, including, upon a determination that the identified barrier usage data indicates a low usage of barriers by the application kernel, prioritizing the scheduling of threads utilizing the load balancing of the plurality of threads across the plurality of multiprocessors.
6 more elements
A method comprising:
- determining a magnitude of barrier messages in an application kernel;
- generating barrier usage data having a value corresponding to the magnitude of barrier messages in the application kernel;
- storing the barrier usage data as thread meta-data for the application kernel in memory;
- retrieving the thread meta-data from the memory;
- parsing the thread meta-data to identify the barrier usage data;
- and
- scheduling execution of each thread of a plurality of threads to a respective microprocessor of a plurality of multiprocessors according to a scheduling policy, the scheduling policy being based at least in part on the identified barrier usage data and load balancing of the plurality of threads across the plurality of multiprocessors;
- wherein the scheduling is to prioritize scheduling threads of a thread group based upon usage of barriers by the application kernel, including, upon a determination that the identified barrier usage data indicates a low usage of barriers by the application kernel, prioritizing the scheduling of threads utilizing the load balancing of the plurality of threads across the plurality of multiprocessors.
5 more elements
A non-transitory computer readable medium having instructions that, when executed by one or more processors, cause the processors to perform operations comprising:
- determining a magnitude of barrier messages in an application kernel;
- generating barrier usage data having a value corresponding to the magnitude of barrier messages in the application kernel;
- storing the barrier usage data as thread meta-data for the application kernel in memory;
- retrieving the thread meta-data from the memory;
- parsing the thread meta-data to identify the barrier usage data;
- and
- scheduling execution of each thread of a plurality of threads to a respective microprocessor of a plurality of multiprocessors according to a scheduling policy, the scheduling policy being based at least in part on the identified barrier usage data and load balancing of the plurality of threads across the plurality of multiprocessors;
- wherein the scheduling is to prioritize scheduling threads of a thread group based upon usage of barriers by the application kernel, including, upon a determination that the identified barrier usage data indicates a low usage of barriers by the application kernel, prioritizing the scheduling of threads utilizing the load balancing of the plurality of threads across the plurality of multiprocessors.
5 more elements
Dependencies are inferred from the claim text.