Method for mapping applications on a multiprocessor platform/system
First Claim
Patent Images
1. A method of determining an optimal mapping of application code, enabling efficient execution of the code on a digital system comprising a plurality of computation units and a plurality of memories connected by a network, the method comprising:
- loading a representation of application code, describing the functionality of the application, wherein the code comprises data access instructions on array signals, the representation of the code being partitioned in a plurality of code threads and the representation comprising information on data dependencies between the code threads;
determining for at least one array signal and for at least one data access instruction on the array signal a graph having a plurality of data groupings and indicating whether the data grouping is assignable to either one or more of the code threads;
evaluating for combinations of the data groupings an evaluation criterion; and
selecting the combination of the data groupings with an optimum evaluation criterion within a pre-determined tolerance, while taking into account the data dependencies when the data groupings are assignable to more than one code thread, the selection defining the optimal mapping.
2 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, there is a formalized method for mapping applications on a multiprocessor system. In particular re-use possibilities are explored, e.g. focus on data transfer and memory access issues, with the aim of obtaining low-power and low-energy mappings and/or to overcome memory performance or energy bottlenecks.
42 Citations
17 Claims
-
1. A method of determining an optimal mapping of application code, enabling efficient execution of the code on a digital system comprising a plurality of computation units and a plurality of memories connected by a network, the method comprising:
-
loading a representation of application code, describing the functionality of the application, wherein the code comprises data access instructions on array signals, the representation of the code being partitioned in a plurality of code threads and the representation comprising information on data dependencies between the code threads;
determining for at least one array signal and for at least one data access instruction on the array signal a graph having a plurality of data groupings and indicating whether the data grouping is assignable to either one or more of the code threads;
evaluating for combinations of the data groupings an evaluation criterion; and
selecting the combination of the data groupings with an optimum evaluation criterion within a pre-determined tolerance, while taking into account the data dependencies when the data groupings are assignable to more than one code thread, the selection defining the optimal mapping. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 17)
-
-
14. An automated code mapping system for determining an optimal mapping of application code, enabling efficient execution of the code on a digital system comprising a plurality of computation units and a plurality of memories connected by a network, the automated code mapping system comprising:
-
a memory module configured to store a representation of application code, describing the functionality of the application, wherein the code comprises data access instructions on array signals, the representation of the code being partitioned in a plurality of code threads and the representation comprising information on data dependencies between the code threads;
a first computing device configured to determine for at least one array signal and for at least one data access instruction on the array signal a graph having a plurality of data groupings and indicating whether the data grouping is assignable to either one or more of the code threads;
a second computing device configured to evaluate for combinations of the data groupings an evaluation criterion; and
a third computing device configured to select the combination of the data groupings with an optimum evaluation criterion within a pre-determined tolerance, while taking into account the data dependencies when the data groupings are assignable to more than one code thread, the selection defining the optimal mapping. - View Dependent Claims (15)
-
-
16. An automated code modification system for modifying application code enabling efficient execution of the code on an essentially digital system comprising a plurality of computation units and a plurality of memories, connected by a network, the automated code modification system comprising:
-
a memory module configured to store a representation of application code, describing the functionality of the application, wherein the code comprises data access instructions on array signals, the representation of the code being partitioned in a plurality of code threads and the representation comprising information on data dependencies between the code threads;
a first computation device configured to determine for at least one array signal and for at least one data access instruction on the array signal a graph having a plurality of data groupings and indicating whether the data grouping is assignable to either one or more of the code threads;
a second computation device configured to evaluate for combinations of the data groupings an evaluation criterion;
a third computation device configured to select the combination of the data groupings with an optimum evaluation criterion within a pre-determined tolerance, while taking into account the data dependencies when the data groupings are assignable to more than one code thread, the selection defining the optimal mapping, and a programming device configured to modify the application code based on the selected combination of the data groupings such that the modified application code comprises data accesses to the selected data groupings while preventing occurrence of data dependency violations in case the data groupings are assignable to more than one code thread.
-
Specification