1 / 21

Predicated Static Single Assignment (PSSA)

Predicated Static Single Assignment (PSSA). Presented by AbdulAziz Al-Shammari shammari@cs.ucsd.edu. Papers. Path Analysis and Renaming for Predicated Instruction Scheduling - L. Carter, E .Simon, B. Calder, L. Carter, and J. Ferrante Predicated Static Single Assignment

bethan
Download Presentation

Predicated Static Single Assignment (PSSA)

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. Predicated Static Single Assignment(PSSA) Presented by AbdulAziz Al-Shammari shammari@cs.ucsd.edu

  2. Papers • Path Analysis and Renaming for Predicated Instruction Scheduling - L. Carter, E .Simon, B. Calder, L. Carter, and J. Ferrante • Predicated Static Single Assignment - L. Carter, E .Simon, B. Calder, L. Carter, and J. Ferrante

  3. Motivation • Increasing instruction level parallelism (ILP) are needed to exploit the potential parallelism available in wide issues architectures (e.g. EPIC). • Limitation to ILP: - Control-flow dependencies. - Data-flow dependencies.

  4. Motivation (cont.) • Static Single Assignment (SSA) removes false data dependencies across basic block boundaries in a CFG revealing more ILP but … • Still need to create a larger pool of sequential instructions for even more ILP… How? - Eliminate control-flow dependencies using predicated executing.

  5. Motivation (cont.) • Problem…! - Introduces Predicate dependencies: exists between every operation and the definition(s) of its guarding predicate. SSA doesn’t deal with such dependencies • Solution A predicate-sensitive implementation of SSA PSSA

  6. Outline • Predicated Execution • Predicated Static Single Assignment (PSSA) • Code Optimizations - Predicated Speculation - Control Height Reduction • Experimental Results • Future Work • Conclusions

  7. Predicated Execution • Each operation is guarded by one of the predicate registers (provided by hardware arch.) that holds the value of its guarding predicate and committed only if the value of its guarding predicate is true. • Predicate registers: • a feature in hardware to support predicated code • Advantages • removes hard-to-predict branches • provides a larger pool for ILP (by combining several smaller basic blocks into one larger hyperblock)

  8. Predicated Execution- Hyperblock • A hyperblock is “a predicated region of code consisting of a straight-line sequence of instructions with a single entry point and possibly multiple exit points ”. • If-conversion: “The process of replacing branches with compare operations and associating operations with predicate defined by that compare”.

  9. Predicated Execution- Example

  10. PSSA • Introduce Full-Path Predicates to extend SSA to handle predicate dependencies and the multiple control paths that are merged together in a single predicated region. • Allows effective predicated scheduling by (1) eliminating false dependencies -via renaming (2) Creating full-path predicates, and (3) providing path-sensitive data flow analysis • Goal: to accomplish the same objectives as SSA for a predicated hyperblock

  11. PSSA- transformation..! • Each operations is processed in turn at the top of the hyperblock and proceeding to the end. • PSSA form: First, PSSA assigns each target of an assignment operation in the hyperblock a unique variables. Second, PSSA summarizes under what conditions each of the multiple definitions of a variable reaches a joint in the hyperblock (using full-path predicates).

  12. Example

  13. PSSA- transformation (cont.) • Two phases: - Hyperblocks are converted to PSSA form before optimization. - After optimization, PSSA inserts clean-up code on edges leaving the hyperblock. • Optimizations: • Predicated Speculation • Control Height Reduction

  14. Predicated Speculation (PSpec) • PSpec schedules a normal operations at its earliest schedulable cycle. • The speculative operation is scheduled earlier than the operation it is control dependent on, and predicated on true.

  15. Control Height Reduction (CHR) • CHR eases control constrains between multiple control statements. • Allows successive control operations on the control path to be scheduled in the same cycle, effectively reducing control dependence height.

  16. Experimental Results Executed cycles normalized to the number of cycles to execute the original code produced by Trimaran for a 16 issue machine Reduce execution time from 12% to 68%.

  17. Experimental Results (cont.) Weighted average number of operations schedule per cycle for hyperblocks when used using PSSA with PSpec and CHR

  18. Experimental Results (cont.) Weighted average register pressure in hyperblocks when using PSSA with PSpec and CHR

  19. Experimental Results (cont.) Static and Dynamic Code Expansion normalized to original code size.

  20. Future Work • Examine different PSSA representations to reduce code duplication and the number of full-path predicates created. • Apply more optimization techniques • Study the advantages in implementing ø-functions for non-critical path names. • Create a more efficient implementation of PSSA.

  21. Conclusions • PSSA is an extension of SSA for a predicate code • PSSA enables using code optimization such as: - Predicated Speculation - Control Height Reduction (+) Using PSSA to enable Predicated peculation and Constant Height Reduction reduce execution time from 12% to 68%. (-) PSSA increase code size significantly.

More Related