80 likes | 104 Vues
Explore ILP formulation for scheduling and register allocation on C6X, leveraging CPLEX and Pegasus formats for efficient solutions. Model implications and compare algorithm performance for enhanced optimization.
E N D
Integer programming approaches to simultaneous scheduling and register allocation on the C6X Andrew Gilpin, Rebecca Hutchinson April 12, 2005
Project Outline • Formulate scheduling as an ILP. • Sanity check formulation using CPLEX to solve. • Translate Pegasus format to ILP; translate CPLEX solution back to Pegasus. • Formulate and incorporate register allocation into the ILP and translation.
Implementation Progress • Formulation complete, implementation halfway done • Taking advantage of new technology • Latest version of CPLEX allows “warm-starts” • Allows us to use list-scheduling solution to “seed” the ILP, hopefully yielding faster solve times • Hopefully we can extend this model to include register allocation as well
Proposed evaluation • Compare schedule lengths of our algorithm to schedule sizes from Leuper’s algorithm • Test data: functions in test.c • Also compare compile times • We expect to be slower, but how much? • Compare running times in simulator
References • Wilken, Liu, and Heffernan. “Optimal Instruction Scheulding Using Integer Programming.” PLDI 2000. • Chang, Chen, and King. “Using Integer Linear Programming for Instruction Scheduling and Register Allocation in Multi-issue Processors.” Computers and Mathematics with Applications,Vol 34(9):1-14. • Goodwin and Wilken. “Optimal and Near-optimal Global Register Allocation Using 0-1 Integer Programming.” Software-Practice and Experience, Vol 26(8), 929-965, August 1996. • Texas Instruments: TMS320C62xx CPU and Instruction Set Reference Guide, www.ti.com/sc/c6x, 1998