Systems and methods for footprint based scheduling
AssigneeReservoir Labs, Inc.
InventorsBenoit J. Meister, Muthu M. Baskaran, Richard A. Lethin
Life of this patent
Estimating the term…
Abstract
A system can generate and impose constraints on a compiler/scheduler so as to specifically minimize the footprints of one or more program variables. The constraints can be based on scopes of the variables and/or on dependence distances between statements specifying operations that use the one or more program variables.
Claims36
A method for controlling scheduling of statements of a program for execution by a computing apparatus, the method comprising performing by a processor configured as a compiler the steps of:
- identifying a plurality of statements within a loop nest, the plurality of statements representing operations using a variable;
- determining an original scope of the variable within the loop nest, the original scope being a maximum depth of the loop nest at which all values produced and stored in the variable at a given iteration of the loop nest are also fully consumed by all consumers of the variable at the same iteration, the maximum depth not being greater than the depth at which one or more values are assigned to the variable;
- and
- setting a constraint corresponding to a memory footprint of the variable for a scheduler for scheduling the loop nest for execution by the computing apparatus, the constraint being based on, at least in part, the original scope.
A system for controlling scheduling of statements of a program for execution by a computing apparatus, the system comprising:
- a first processor;
- and
- a first memory in electrical communication with the first processor, the first memory comprising instructions which, when executed by a processing unit comprising at least one of the first processor and a second processor, and in electronic communication with a memory module comprising at least one of the first memory and a second memory, program the processing unit to:
- identify a plurality of statements within a loop nest, the plurality of statements representing operations using a variable;
- determine an original scope of the variable within the loop nest, the original scope being a maximum depth of the loop nest at which all values produced and stored in the variable at a given iteration of the loop nest are also fully consumed by all consumers of the variable at the same iteration, the maximum depth not being greater than the depth at which one or more values are assigned to the variable;
- set a constraint corresponding to a memory footprint of the variable for a scheduler for scheduling the loop nest for execution by the computing apparatus, the constraint being determined based on, at least in part, the original scope.
An article of manufacture comprising a non-transitory storage medium having stored therein instructions which, when executed by a processing unit program the processing unit in electronic communication with a memory module, for controlling scheduling of statements of a program for execution by a computing apparatus, to:
- identify a plurality of statements within a loop nest, the plurality of statements representing operations using a variable;
- determine an original scope of the variable within the loop nest, the original scope being a maximum depth of the loop nest at which all values produced and stored in the variable at a given iteration of the loop nest are also fully consumed by all consumers of the variable at the same iteration, the maximum depth not being greater than the depth at which one or more values are assigned to the variable;
- set a constraint corresponding to a memory footprint of the variable for a scheduler for scheduling the loop nest for execution by the computing apparatus, the constraint being based on, at least in part, the original scope.
Dependencies are inferred from the claim text.