arch-beer

Weekly Reading
 

Tommy is presenting...

Lightweight Predication Support for Out of Order Processors

Mark Stephenson, Lixin Zhang, and Ram Rangan

Appears in HPCA-15/2009
PDF copy


The benefits of Out of Order (OOO) processing are well known, as is the effectiveness of predicated execution for unpredictable control flow. However, as previous research has demonstrated, these techniques are at odds with one another. One common approach to reconciling their differences is to simplify the form of predication supported by the architecture. For instance, the only form of predication supported by modern OOO processors is a simple conditional move. We argue that it is the simplicity of conditional move that has allowed its widespread adoption, but we also show that this simplicity compromises its effectiveness as a compilation target. In this paper, we introduce a generalized form of hammock predication --- called predicated mutually exclusive groups --- that requires few modifications to an existing processor pipeline, yet presents the compiler with abundant predication opportunities. In comparison to nonpredicated code running on an aggressively clocked baseline system, our technique achieves an 8% speedup averaged across three important benchmark suites.