Swing module scheduling: a lifetime-sensitive approach

This paper presents a novel software pipelining approach, which is called Swing Modulo Scheduling (SMS). It generates schedules that are near optimal in terms of initiation interval, register requirements and stage count. Swing Modulo Scheduling is an heuristic approach that has a low computational cost. The paper describes the technique and evaluates it for the Perfect Club benchmark suite. SMS is compared with other heuristic methods showing that it outperforms them in terms of the quality of the obtained schedules and compilation time. SMS is also compared with an integer linear programming approach that generates optimum schedules but with a huge computational cost, which makes it feasible only for very small loops. For a set of small loops, SMS obtained the optimum initiation interval in all the cases and its schedules required only 5% more registers and a 1% higher stage count than the optimum.

[1]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[2]  Alan E. Charlesworth,et al.  An Approach to Scientific Array Processing: The Architectural Design of the AP-120B/FPS-164 Family , 1981, Computer.

[3]  Ken Kennedy,et al.  Conversion of control dependence to data dependence , 1983, POPL '83.

[4]  Monica S. Lam,et al.  RETROSPECTIVE : Software Pipelining : An Effective Scheduling Technique for VLIW Machines , 1998 .

[5]  Monica Sin-Ling Lam,et al.  A Systolic Array Optimizing Compiler , 1989 .

[6]  Geoffrey C. Fox,et al.  The Perfect Club Benchmarks: Effective Performance Evaluation of Supercomputers , 1989, Int. J. High Perform. Comput. Appl..

[7]  Peter Y.-T. Hsu,et al.  Overlapped loop support in the Cydra 5 , 1989, ASPLOS III.

[8]  Mike Schlansker,et al.  Parallelization of loops with exits on pipelined architectures , 1990, Proceedings SUPERCOMPUTING '90.

[9]  Kurt Mehlhorn,et al.  LEDA: A Library of Efficient Data Types and Algorithms , 1990, ICALP.

[10]  Suneel Jain,et al.  Circular scheduling: a new technique to perform software pipelining , 1991, PLDI '91.

[11]  B. Ramakrishna Rau,et al.  Register allocation for software pipelined loops , 1992, PLDI '92.

[12]  Edward S. Davidson,et al.  Register requirements of pipelined processors , 1992, ICS '92.

[13]  Stefan Näher,et al.  LEDA: A Library of Efficient Data Types and Algorithms , 1989, STACS.

[14]  Richard A. Huff,et al.  Lifetime-sensitive modulo scheduling , 1993, PLDI '93.

[15]  Guang R. Gao,et al.  Minimal register requirements under resource-constrained software pipelining , 1994, Micro.

[16]  B. Ramakrishna Rau,et al.  Iterative modulo scheduling: an algorithm for software pipelining loops , 1994, MICRO 27.

[17]  Alexandre E. Eichenberger,et al.  Optimum modulo schedules for minimum register requirements , 1995, ICS '95.

[18]  Sumedh W. Sathaye,et al.  Dynamic rescheduling: a technique for object code compatibility in VLIW architectures , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[19]  Alexandre E. Eichenberger,et al.  Stage scheduling: a technique to reduce the register requirements of a module schedule , 1995, MICRO 1995.

[20]  Hypernode reduction modulo scheduling , 1995, MICRO 28.

[21]  E. Davidson,et al.  Stage scheduling: a technique to reduce the register requirements of a modulo schedule , 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture.

[22]  Josep Llosa,et al.  Reducing The Impact Of Register Pressure On Software Pipelined Loops , 1996 .

[23]  Josep Llosa Espuny Reducing the impact of register pressure on software pipelined loops , 1996 .

[24]  Jordi Cortadella,et al.  A mathematical formulation of the loop pipelining problem , 1996 .