Probabilistic Predicate-Aware Modulo Scheduling

  • Authors:
  • Mikhail Smelyanskiy;Scott Mahlke;Edward S. Davidson

  • Affiliations:
  • -;-;-

  • Venue:
  • Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Predicated execution enables the removal of branches by convertingsegments of branching code into sequences of conditional operations.An important side effect of this transformation is that thecompiler must unconditionally assign resources to predicated operations.However, a resource is only put to productive use whenthe predicate associated with an operation evaluates to True. To reducethis superfluous commitment of resources, we propose probabilisticpredicate-aware scheduling to assign multiple operationsto the same resource at the same time, thereby over-subscribing itsuse. Assignment is performed in a probabilistic manner using acombination of predicate profile information and predicate analysisaimed at maximizing the benefits of over-subscription in viewof the expected degree of conflict. Conflicts occur when two ormore operations assigned to the same resource have their predicatesevaluate to True. A predicate-aware VLIW processor pipeline detectssuch conflicts, recovers, and correctly executes the conflictingoperations. By increasing the effective throughput of a fixed setof resources, probabilistic predicate-aware scheduling provided anaverage of 20% performance gain in our evaluations on a 4-issueprocessor, and 8% gain on a 6-issue processor.