Load store bank aware thread scheduling techniques
AssigneeIntel Corporation
InventorsAbhishek R. APPU, Joydeep RAY, Karthik VAIDYANATHAN, Sreedhar CHALASANI, Vasanth RANGANATHAN
Life of this patent
Estimating the term…
Abstract
Bank aware thread scheduling and early dependency clearing techniques are described herein. In one example, bank aware thread scheduling involves arbitrating and scheduling threads based on the cache bank that is to be accessed by the instructions to avoiding bank conflicts. Early dependency clearing involves clearing dependencies for cache loads in a scoreboard before the data is loaded. In early dependency clearing for loads, delays in operation can be reduced by clearing dependencies before data is required from the cache.
Claims20
A graphics processing unit (GPU) comprising:
- a cache including multiple banks;
- and
- circuitry to schedule threads to access the cache, including to:
- determine which banks of the cache are to be accessed by threads available for scheduling,
- select a plurality of the threads available for scheduling based on the banks to be accessed by the threads, including to select threads that are to access different banks of the cache, and
- schedule the selected threads for execution.
A system comprising:
- a memory device;
- and
- graphics processing unit (GPU) coupled with the memory device, the GPU including:
- a cache including multiple banks;
- and
- circuitry to schedule threads to access the cache, including to:
- determine which banks of the cache are to be accessed by threads available for scheduling,
- select a plurality of the threads available for scheduling based on the banks to be accessed by the threads, including to select threads that are to access different banks of the cache, and
- schedule the selected threads for execution.
A method comprising:
- determining which banks of a cache are to be accessed by threads available for scheduling;
- selecting a plurality of the threads available for scheduling based on the banks to be accessed by the threads, including selecting threads that are to access different banks of the cache;
- and
- scheduling the selected threads for execution.
Dependencies are inferred from the claim text.