210 likes | 312 Views
Sune Fallgaard Nielsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens Plads, Building 322 DK2800 Lyngby, Denmark. List-Based Scheduling. Overview. Introduction Related work DFG and WPG ASAP, ALAP and Mobility Solution: Algorithm
E N D
Sune Fallgaard Nielsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens Plads, Building 322 DK2800 Lyngby, Denmark List-Based Scheduling
Overview • Introduction • Related work • DFG and WPG • ASAP, ALAP and Mobility • Solution: • Algorithm • Selection function • Extenstions • Time complexity • Results • Conclussion [M-1] High-Level Synthesis
* + * * Introduction • Given a DFG we want to schedule operations to minimize the number of functional units needed (adders, multiplier, ALUs, etc.) • Input to algorithm • DFG • Number of cycles.(Not less than shortest path in DFG) • Model must include • Pipelined operations • Chained operations • Multicycle operations [M-1] High-Level Synthesis
Related Work • Other algorithms fix operations one by one • Tend to find local minima instead of global minima • ILP(Integer Linear programming) • Finds global minima • Is an exponential time algorithm and are not usable for large data-sets • This algorithm can escape local minimals by making several iterations. • Tend to find global minimaes (But, no guarantee) [M-1] High-Level Synthesis
DFG and WPG • From “Data Flow Graph” to “Weighted Precedence Graph” [M-1] High-Level Synthesis
ASAP Scheduling • Minimum number of cycles with no resource limitation [M-1] High-Level Synthesis
ALAP Scheduling • Minimum number of cycles with no resource limitation [M-1] High-Level Synthesis
Mobility • Mobility tells which steps each operation can be placed [M-1] High-Level Synthesis
Algorithm - overview • Starts from ASAP/ALAP • Iteratively moves operations based on selection function Si(j,k). (Must not violate WPG) • If no ”good” moves are possible, ”bad” ones are taken. • Stops when there are no movable operations • Select best solution based on cost function from all solutions explored. (Fx. number of functional units) • Repeat the above iteration while the solution improves [M-1] High-Level Synthesis
Algorithm - pseudu repeat{ Count=1 While movable operations{ select tuple(i, k) with maximum Si(j,k) move Oi to step k lock tuple(i, k) gaincount=change in cost when moving Oi to step k } find k that maximizes if(gainmax>0) Move operations 1 to k }until(gainmax<=0) [M-1] High-Level Synthesis
Algorithm - example [M-1] High-Level Synthesis
Algorithm - solution • Solution to running example [M-1] High-Level Synthesis
Selection Function • In each step the selection function • Causes most balanced distribution of operations • Reduces number of required functional units. • Expresses the gain by moving Oi from step j to k • Proportional with • Maximal density at step j and k • Change in Density Gradient(DG) (Density[i] is the number of functional units at step i) [M-1] High-Level Synthesis
Selection function • “Change in Density Gradient” (CDG) • CDG equals (Only concerns the 2 affected steps) • 2 Number of functional units decreases by 1 • 0 No change in number of functional units needed • -2 Number of functional units increases by 1 [M-1] High-Level Synthesis
Selection function • Examples of Selection function calculations [M-1] High-Level Synthesis
Extensions • Mutually Exclusive(ME) operations • Fx. an if-else statement. Operations that are ME can be placed in the same step on the same functional unit • Chained operations • Are already incoporated into the WPG • Multi-cycle operations • Are included in the WPG, but selection function must be expanded. • Pipelined operations • I do not understand the articles interpretation of a pipeline. Shall be treated as a multi-cycle operation. [M-1] High-Level Synthesis
Time complexity m Number of operations in DFG S Number of control steps n Total number of tuples( max=Sm) • After each move update cost O(m*log(m)) • This must be done for all tuples O(nm*log(m))) = (Sm2*log(m)) • Practial time complexity (stated by authors) O(n*log(m)) (since n i independant of m) • Number of iterations is assumed independent of problem [M-1] High-Level Synthesis
Results – Example 1 • Chained operations with the number of cycles less than 8 [M-1] High-Level Synthesis
Results – Example 2 • Pipelined 16-point FIR filter. 2 types of functions units (Multiplier and adder) [M-1] High-Level Synthesis
Results – Example 3 • 5th order elliptic filter with25 additions and 8 multiplications. Multiply is a multicycle operation [M-1] High-Level Synthesis
Conclusion • Very fast an effective • Can escape local minima • Tend to reach optimal solution. (At least for all experimental results so far) • Must faster than than previous approaches. • Handles multicycled, chained and pipelined operations. • Possible to use more sophisticated selection functions. [M-1] High-Level Synthesis