The Bene t of Predicated Execution for Software Pipelining
نویسندگان
چکیده
Software pipelining is a compile-time scheduling technique that overlaps successive loop iterations to expose operation-level parallelism. An important problem with the development of e ective software pipelining algorithms is how to handle loops with conditional branches. Conditional branches increase the complexity and decrease the e ectiveness of software pipelining algorithms by introducing many possible execution paths into the scheduling scope. This paper presents an empirical study of the importance of an architectural support, referred to as predicated execution, on the e ectiveness of software pipelining. In order to perform an in-depth analysis, we focus on Rau's modulo scheduling algorithm for software pipelining. Three versions of the modulo scheduling algorithm, one with and two without predicated execution support, are implemented in a prototype compiler. Experiments based on important loops from numeric applications show that predicated execution support substantially improves the e ectiveness of the modulo scheduling algorithm.
منابع مشابه
The Beneet of Predicated Execution for Software Pipelining
Software pipelining is a compile-time scheduling technique that overlaps successive loop iterations to expose operation-level parallelism. An important problem with the development of eeective software pipelin-ing algorithms is how to handle loops with conditional branches. Conditional branches increase the complexity and decrease the eeectiveness of software pipelin-ing algorithms by introduci...
متن کاملRegister Binding for DSP Code Containing Predicated Execution
Predicated execution is an efficient mechanism to avoid conditional constructs in application programs. In this paper we describe how an existing method for register binding can be extended to support predicated execution. The method exploits the combination of register constraints, resource and timing constraints and models the overlap of value lifetimes in a conflict graph. In our extension, ...
متن کاملEnhanced Modulo Scheduling for Loops with Conditional
Loops with conditional branches have multiple execution paths which are diicult to software pipeline. The mod-ulo scheduling technique for software pipelining addresses this problem by converting loops with conditional branches into straight-line code before scheduling. In this paper we present an Enhanced Modulo Scheduling (EMS) technique that can achieve a lower minimum Initiation Interval th...
متن کاملModulo Scheduling with Cache Reuse Information
Instruction scheduling in general, and software pipelining in particular face the di cult task of scheduling operations in the presence of uncertain latencies. The largest contributor to these uncertain latencies is the use of cache memories required to provide adequate memory access speed in modern processors. Scheduling for instruction-level parallel architectures with nonblocking caches usua...
متن کاملRegister Allocation for Predicted Pipelining Using Spiral Graph
The framework of the Spiral Graph is proposed to allocate registers for software pipelining in register-renaming architectures. This will a result in an allocation with the least number of required registers in polynomial time on a rotating register, with the names of the registers renamed one by one and simultaneously. However, the original Spiral Graph cannot inherently manage the conditional...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1993