1 / 31

Software Pipelining By Nagaraju Pothineni 2003CSY0001

Outline. DefinitionRepresentation of the programData Dependency Graph (DDG)Unconstrained scheduling Estimating Initiation IntervalModulo SchedulingKernel Recognition. . Definition. Software Pipelining : Compiler loop optimization technique that reforms the loop to achieve faster execution rate by overlapping the executions of iterations..

morey
Download Presentation

Software Pipelining By Nagaraju Pothineni 2003CSY0001

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Software Pipelining By Nagaraju Pothineni 2003CSY0001 A term-paper presentation On

    2. Outline Definition Representation of the program Data Dependency Graph (DDG) Unconstrained scheduling Estimating Initiation Interval Modulo Scheduling Kernel Recognition

    3. Definition Software Pipelining : Compiler loop optimization technique that reforms the loop to achieve faster execution rate by overlapping the executions of iterations.

    4. Data Dependency Graph Node – Operations Arc – Dependency Types of Dependencies True Dependencies (RAW) Anti Dependencies (WAR) Output Dependencies (WAW) Control Dependencies Dependency Vs Conflict

    5. Data Dependency Graph Program segment … 1. a = b + c; 2. f = a - d; 3. b = c * d; 4. a = b / e; …

    6. Data Dependency Graph (For Loops) Two categories of arcs Loop Independent Arc Loop Carried Arc In DFG arcs are Loop Independent Arcs Types of Loops Doall loop Doacross Loop

    7. Data Dependency Graph (For Loops) Representation of arcs in the loops An arc a ? b, is annotated with (diff, min) pair diff indicates the dependency between am and b m + diff min indicates that if am is placed at time t then b m + diff can be placed no earlier than t+min

    8. Scheduling Operations from different iterations are scheduled together No need to unroll the loop Find the Repeating pattern – Kernel , the new loop body Pipeline – Executing iterations in parallel

    9. Assume no resource constraints Example1 Greedy Scheduling

    10. Initiation Interval New loop body contains all the operations in the original loop Delay between initiation of iterations of new loop – Initiation Interval (II) or Length of Kernel Span of kernel - number of iterations from the original loop, in the kernel Effective Initiation Interval - Average time one iteration takes to complete EII = (II/Iteration_ct)

    11. Initiation Interval Kernel does not start and stop as the original loop Prelude (?) – Instructions before the new loop Postlude (?) – Instructions after the new loop Lk = ? Km ? L – Original Loop K – Kernel m = (k-n+1)/Iteration_ct n = span

    12. Estimating II Resource Constrained Lower bound Dependency constrained Lower bound

    13. Resource Constrained LB

    14. Dependency constrained LB Dependencies are transitive A path ? with sum of the dif values dif? and sum of the min values min? is equivalent to an arc with (dif?,min?)

    15. Methods of computing II Enumerating cycles Shortest path algorithm Iterative shortest path Linear programming

    16. Enumerating cycles Find all the cycles, then maximum of min?/dif? gives the IIdep

    17. Shortest path algorithm Find the transitive closure of dependency constraints of the graph Uses Floyd’s all paths shortest path algorithm

    18. Transitive closure of a Graph

    19. Iterative shortest path Assume an II and find transitive closure If it is not correct, then increment II and try again Transitive closure is found using path algebra M = [mIJ] where mIJ gives the number of time steps I and J must be separated An arc (diff, min) means operations must be separated by at least min-II*diff

    20. Iterative shortest path M2 gives minimum time steps operations are to be separated considering paths of length 2 Similarly calculate Mi, where i is the maximum path length in the graph For MIJ take the best from {MIJ, M2IJ, M3IJ, … } If all MII are non positive, then II is adequate

    21. Iterative shortest path (Example)

    22. Linear Programming For each arc from a ? b, write the equality Ma,b ? min – II * diff Objective function = minimize II Solve using LP

    23. Modulo Scheduling Basic Scheduling Algorithm Modulo scheduling via hierarchical reduction Path Algebra Predicated Modulo scheduling

    24. Modulo Scheduling Generate a Flat Schedule taking into account resource conflicts and data dependencies. Identical flat schedules for each iteration Regular pipelining Each original iteration starts after II time steps to its previous iteration Results in operations with same Modulo II , scheduled together

    25. Modulo Scheduling - Example

    26. Modulo scheduling via Hierarchical reduction DDG is modified. Nodes are strongly connected components of original DDG Draw an arc between two nodes, if there is an edge in original DDG between the two set of nodes. Each strongly connected component is scheduled using modulo scheduling Apply List scheduling to modified DDG

    27. Modulo scheduling via Hierarchical reduction Example DDG is modified. Nodes are strongly connected components of original DDG Draw an arc between two nodes, if there is an edge in original DDG between the two set of nodes. Each strongly connected component is scheduled using modulo scheduling Apply List scheduling to modified DDG

    28. Path Algebra Mathematical formulation of modulo scheduling Construct Matrix M = [mIJ] represents the relative position of OJ from OI If the chosen II is feasible, then from the matrix generate Flat schedule, else Increment II and try again Limitation : Resource constraints are considered

    29. Predicated Modulo Scheduling Schedules loops containing predicates Resources for all operations in all decisions are available Hardware support

    30. Kernel Recognition Unroll the loop and note dependencies Schedule operations as early as possible Find a block which is repeating

    31. References Software pipelining – Vicki H. Allan, Reese B. Jones, Randal M. Lev, Stephens J. Allan, ACM, Computer surveys, September 1995.

More Related