Modulo Scheduling for Control-Intensive General-Purpose Programs (1997)
| Citations: | 7 - 0 self |
BibTeX
@TECHREPORT{Lavery97moduloscheduling,
author = {Daniel Michael Lavery},
title = {Modulo Scheduling for Control-Intensive General-Purpose Programs},
institution = {},
year = {1997}
}
Years of Citing Articles
OpenURL
Abstract
It is increasingly necessary for the compiler to overlap successive loop iterations in order to nd su cient instruction-level parallelism to e ectively utilize the resources of high-performance processors. Two competing methods have been developed for moving instructions across itera-tion boundaries: unrolling followed by global acyclic scheduling and software pipelining. This dissertation investigates modulo scheduling, a software pipelining technique. Much of the pre-vious work on modulo scheduling has targeted the relatively well-behaved loops in numeric programs. This dissertation develops new techniques that allow modulo scheduling to be effectively applied to control-intensive non-numeric programs. These techniques overcome the restrictions imposed by problematic control flow and loop exits. This dissertation also demonstrates that unrolling-based optimization prior to scheduling improves the performance of modulo scheduled loops and is, in fact, necessary to allow modulo scheduling to surpass the performance of acyclic scheduling for control-intensive general-purpose programs. Modulo scheduling has the following advantages over the acyclic scheduling approach for control-intensive general-purpose programs. First, modulo scheduling increases performance by maintaining the overlap of loop iterations throughout the execution of the loop. Second,







