1. Evaluator-executor transformation for efficient pipelining of loops with conditionals
- Author
-
Jongeun Lee, Yeonghun Jeong, and Seongseok Seo
- Subjects
Statement (computer science) ,Loop fission ,Software pipelining ,LOOP (programming language) ,Hardware and Architecture ,Computer science ,Loop inversion ,Loop fusion ,Overhead (computing) ,Parallel computing ,Loop tiling ,Software ,Information Systems - Abstract
Control divergence poses many problems in parallelizing loops. While predicated execution is commonly used to convert control dependence into data dependence, it often incurs high overhead because it allocates resources equally for both branches of a conditional statement regardless of their execution frequencies. For those loops with unbalanced conditionals, we propose a software transformation that divides a loop into two or three smaller loops so that the condition is evaluated only in the first loop, while the less frequent branch is executed in the second loop in a way that is much more efficient than in the original loop. To reduce the overhead of extra data transfer caused by the loop fission, we also present a hardware extension for a class of Coarse-Grained Reconfigurable Architectures (CGRAs). Our experiments using MiBench and computer vision benchmarks on a CGRA demonstrate that our techniques can improve the performance of loops over predicated execution by up to 65% (37.5%, on average), when the hardware extension is enabled. Without any hardware modification, our software-only version can improve performance by up to 64% (33%, on average), while simultaneously reducing the energy consumption of the entire CGRA including configuration and data memory by 22%, on average.
- Published
- 2013
- Full Text
- View/download PDF