Optimized function assignment in a multi-core processor
Abstract
A method and system including a computer processor; an optimization module executing on the computer processor and configured to enable the computer processor to: receive a user application, where the user application includes a set of functions; simulate execution of different configurations of the set of functions on a multi-core microprocessor chip, where: the multi-core microprocessor chip includes a set of tiles arranged in a grid configuration, where each tile includes a processor core and a corresponding router, where each router is communicatively coupled with at least one other router to form a network-on-chip and each router implements a deterministic static priority routing policy, and the different configurations include execution of the set of functions by different groups of tiles; monitor network traffic patterns of the execution of the different configurations; rank the different configurations according to ranking criteria, where the ranking criteria is used to rank each of the different configurations based on the corresponding network traffic patterns; and select an optimal configuration of the different configurations based on the ranking.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system comprising:
a computer processor; an optimization module executing on the computer processor and configured to enable the computer processor to:
receive a user application, wherein the user application includes a set of functions;
simulate execution of different configurations of the set of functions on a multi-core microprocessor chip, wherein:
the multi-core microprocessor chip comprises a set of tiles arranged in a grid configuration, wherein each tile comprises a processor core and a corresponding router, wherein each router is communicatively coupled with at least one other router to form a network-on-chip and each router implements a deterministic static priority routing policy, and
the different configurations include execution of the set of functions by different groups of tiles;
monitor network traffic patterns of the execution of the different configurations;
rank the different configurations according to ranking criteria, wherein the ranking criteria is used to rank each of the different configurations based on the corresponding network traffic patterns; and
select an optimal configuration of the different configurations based on the ranking.
2 . The system of claim 1 , wherein the optimization module is further configured to enable the computer processor to receive an identification of a high priority function of the set of functions, wherein the ranking is based on optimal network traffic patterns for the high priority function.
3 . The system of claim 1 , wherein the optimization module is further configured to enable the computer processor to determine a high traffic function of the set of functions based on the monitoring, wherein the ranking is based on optimal network traffic patterns for the high traffic function.
4 . The system of claim 1 , wherein the optimization module is further configured to enable the computer processor to assign a function with high outbound network traffic to a group of tiles in an area of the grid having high routing priority.
5 . The system of claim 1 , wherein:
execution of a function includes execution of a set of sub-functions by a group of tiles; and the optimization module is further configured to enable the computer processor to arrange the set of sub-functions with particular tiles of a group of tiles executing the function for optimal performance in accordance with the static priority routing policy.
6 . The system of claim 1 , wherein the optimization module is further configured to enable the computer processor to:
determine that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and assign execution of the first function to a first group of tiles proximate to a second group of tiles executing the second function.
7 . The system of claim 1 , wherein the optimization module is further configured to enable the computer processor to:
determine that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and assign execution of the first function to a first group of tiles in a high routing priority area of the grid with respect to a second group of tiles executing the second function.
8 . The system of claim 1 , wherein the ranking criteria comprises at least one selected from a group consisting of overall network traffic of the network-on-chip, network traffic for high priority functions, overall performance of the network-on-chip, performance for high priority functions, and overall power consumption of the network-on-chip.
9 . The system of claim 1 , wherein the user application comprises at least one selected from a group consisting of source code, assembly code, and machine code.
10 . A method comprising:
receiving a user application, wherein the user application includes a set of functions; simulating execution of different configurations of the set of functions on a multi-core microprocessor chip, wherein:
the multi-core microprocessor chip comprises a set of tiles arranged in a grid configuration, wherein each tile comprises a processor core and a corresponding router, wherein each router is communicatively coupled with at least one other router to form a network-on-chip and each router implements a deterministic static priority routing policy, and
the different configurations include execution of the set of functions by different groups of tiles;
monitoring network traffic patterns of the execution of the different configurations; ranking the different configurations according to ranking criteria, wherein the ranking criteria is used to rank each of the different configurations based on the corresponding network traffic patterns; and selecting an optimal configuration of the different configurations based on the ranking.
11 . The method of claim 10 :
further comprising receiving an identification of a high priority function of the set of functions; and wherein the ranking is based on optimal network traffic patterns for the high priority function.
12 . The method of claim 10 :
further comprising determining a high traffic function of the set of functions based on the monitoring; and wherein the ranking is based on optimal network traffic patterns for the high traffic function.
13 . The method of claim 10 , further comprising assigning a function with high outbound network traffic to a group of tiles in an area of the grid having high routing priority.
14 . The method of claim 10 :
wherein execution of a function includes execution of a set of sub-functions by a group of tiles; and further comprising arranging the set of sub-functions with particular tiles of a group of tiles executing the function for optimal performance in accordance with the static priority routing policy.
15 . The method of claim 10 , further comprising:
determining that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and assigning execution of the first function to a first group of tiles proximate to a second group of tiles executing the second function.
16 . The method of claim 10 , further comprising:
determining that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and assigning execution of the first function to a first group of tiles in a high routing priority area of the grid with respect to a second group of tiles executing the second function.
17 . The method of claim 10 , wherein the ranking criteria comprises at least one selected from a group consisting of overall network traffic of the network-on-chip, network traffic for high priority functions, overall performance of the network-on-chip, performance for high priority functions, and overall power consumption of the network-on-chip.
18 . The method of claim 10 , wherein the user application comprises at least one selected from a group consisting of source code, assembly code, and machine code.
19 . A method comprising:
receiving a user application, wherein the user application includes a set of functions to be executed by a multi-core microprocessor chip, wherein the multi-core microprocessor chip comprises a set of tiles each including a processor core and a corresponding router, wherein each router is communicatively coupled with at least one other router to form a network-on-chip grid and each router implements a deterministic static priority routing policy; receiving an identification of a high priority function of the set of functions; identifying one or more tiles with high routing priority according to the static priority routing policy; and assigning execution of the high priority function to the one or more tiles with high routing priority.
20 . The method of claim 19 , wherein the high priority function is a high traffic function.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.