Data driven scheduler on multiple computing cores
AssigneeAdvanced Micro Devices, Inc.
InventorsJimshed Mirza, YunPeng Zhu
Life of this patent
Estimating the term…
Abstract
Methods, devices, and systems for data driven scheduling of a plurality of computing cores of a processor. A plurality of threads may be executed on the plurality of computing cores, according to a default schedule. The plurality of threads may be analyzed, based on the execution, to determine correlations among the plurality of threads. A data driven schedule may be generated based on the correlations. The plurality of threads may be executed on the plurality of computing cores according to the data driven schedule.
Claims51
A method for data driven scheduling of a plurality of computing cores of a processor, the method comprising:
- executing a plurality of threads on the plurality of computing cores, according to a default schedule;
- analyzing the plurality of threads, based on the execution according to the default schedule, to determine correlated threads among the plurality of threads, wherein the threads are determined to be correlated based on whether they access the same information from a memory or access the same reference from the memory, and based on a maximum correlation among the plurality of threads;
- generating a data driven schedule wherein each of the correlated threads are scheduled for execution on a different computing core of the plurality of computing cores based on the data driven schedule in an order which provides a highest average correlation of the plurality of threads;
- and
- executing the plurality of threads on the plurality of computing cores according to the data driven schedule.
A processor configured for data-driven scheduling, comprising:
- a plurality of computing cores;
- a memory shared by each of the plurality of computing cores;
- dispatching circuitry configured to dispatch a plurality of threads to execute on the plurality of computing cores, according to a default schedule;
- correlation circuitry configured to analyze the plurality of threads, based on the execution according to the default schedule, to determine correlated threads among the plurality of threads, wherein the threads are determined to be correlated based on whether they access the same information from memory or access the same reference from memory, and based on a maximum correlation among the plurality of threads;
- and
- scheduling circuitry configured to determine a data driven schedule wherein each of the correlated threads are scheduled for execution on a different computing core of the plurality of computing cores based on the data driven schedule in an order which provides a highest average correlation of the plurality of threads;
- wherein the dispatching circuitry is further configured to dispatch the plurality of threads to execute on the plurality of computing cores according to the data driven schedule.
A system for memory management of a multicore processor, the system comprising:
- a processor comprising:
- a plurality computing cores;
- a memory shared by each of the plurality of computing cores;
- dispatching circuitry configured to dispatch a plurality of threads to execute on the plurality of computing cores, according to a default schedule;
- correlation circuitry configured to analyze the plurality of threads, based on the execution according to the default schedule, to determine correlated threads among the plurality of threads, wherein the threads are determined to be correlated based on whether they access the same information from memory or access the same reference from memory, and based on a maximum correlation among the plurality of threads;
- and
- scheduling circuitry configured to determine a data driven schedule wherein each of the correlated threads are scheduled for execution on a different computing core of the plurality of computing cores based on the data driven schedule in an order which provides a highest average correlation of the plurality of threads;
- wherein the dispatching circuitry is further configured to dispatch the plurality of threads to execute on the plurality of computing cores according to the data driven schedule.
Dependencies are inferred from the claim text.