Scheduler of program instructions for streaming vector processor having interconnected functional units
First Claim
1. A method for scheduling a computation for execution on a computer comprising a plurality of functional units interconnected by a plurality of interconnections, the computation being representable by a data-flow graph having a plurality of nodes and a plurality of edges and the method comprising:
- (a) computing a loop-period of the computation;
(b) attempting to schedule the plurality of nodes within the loop period for throughput by assigning an execution cycle and a functional unit to each node of the plurality of nodes;
(c) adjusting the scheduling of flexible nodes of the plurality of nodes to reduce the number of interconnections required in any execution cycle if the number of interconnections required exceeds the number of interconnections in the plurality of interconnections; and
(d) allocating the plurality of edges to one or more of the plurality of interconnections.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for scheduling a computation for execution on a computer with a number of interconnected functional units. The computation is representable by a data-flow graph with a number of nodes connected by edge. A loop-period of the computation is calculated and the nodes are scheduled for throughput by assigning an execution cycle and a functional unit to each node of the data-flow graph. The scheduling of flexible nodes is adjusted to minimize the number of interconnections required in each execution cycle. The edges of the data-flow graph are allocated to one or more of the interconnections between functional units. The scheduling method may be used, for example, to optimize the interconnection fabric design for an ASIC or as part of a compiler for a re-configurable streaming vector processor.
104 Citations
24 Claims
-
1. A method for scheduling a computation for execution on a computer comprising a plurality of functional units interconnected by a plurality of interconnections, the computation being representable by a data-flow graph having a plurality of nodes and a plurality of edges and the method comprising:
-
(a) computing a loop-period of the computation; (b) attempting to schedule the plurality of nodes within the loop period for throughput by assigning an execution cycle and a functional unit to each node of the plurality of nodes; (c) adjusting the scheduling of flexible nodes of the plurality of nodes to reduce the number of interconnections required in any execution cycle if the number of interconnections required exceeds the number of interconnections in the plurality of interconnections; and (d) allocating the plurality of edges to one or more of the plurality of interconnections. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for minimizing the number of interconnections required by a computer to execute a computation, the computer comprising a plurality of functional units interconnected by a plurality of interconnections, the computation being representable by a data-flow graph having a plurality of nodes and a plurality of edges and the method comprising:
-
(a) computing a loop-period of the computation; (b) attempting to schedule the plurality of nodes within the loop period by assigning an execution cycle and a functional unit to each node of the plurality of nodes; (c) adjusting the scheduling the plurality of nodes to minimize the number of interconnections required in any execution cycle; (d) adjusting the scheduling of the plurality of nodes to increase throughput if the throughput is below a predetermined minimum throughput; (e) adjusting the scheduling of the plurality of nodes to decrease latency if the latency exceeds a predetermined maximum latency; and (f) allocating the plurality of edges to one or more of the plurality of interconnections.
-
-
17. A computer readable medium containing instructions which, when executed on a first computer, carry out a process of scheduling a computation for execution on a second computer, the second computer having a plurality of functional units interconnected by a plurality of interconnections, and the computation being representable by a data-flow graph having a plurality of nodes and a plurality of edges, the process of scheduling comprising:
-
(a) computing a loop-period of the computation; (b) attempting to schedule the plurality of nodes within the loop period for throughput by assigning an execution cycle and a functional unit to each node of the plurality of nodes; (c) adjusting the scheduling of flexible nodes of the plurality of nodes to reduce the number of interconnections required in each execution cycle if the number of interconnections required is greater than the number of interconnection in the plurality of interconnections; and (d) allocating the plurality of edges to one or more of the plurality of interconnections. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. An application specific integrated circuit for performing a computation representable by a data-flow graph having a plurality of nodes and a plurality of edges, the application specific integrated circuit having a plurality of functional units interconnected by a plurality of interconnections, wherein the number of interconnections in the plurality of interconnections is determined by:
-
(a) computing a loop-period of the computation; (b) attempting to schedule the plurality of nodes within the loop period for throughput by assigning an execution cycle and a functional unit to each node of the plurality of nodes; (c) adjusting the scheduling of flexible nodes of the plurality of nodes to minimizing the number of interconnections required in each execution cycle; and (d) allocating the plurality of edges to one or more of the plurality of interconnections. - View Dependent Claims (24)
-
Specification