Modulo Scheduling and Resource
Representation Showdown
Contact: Patrick Carribault
Goal
Comparison of several modulo-scheduling heuristics and their
interactions with different resource-contention modules (in charge of
resource usage and conflict detection).
Description
During the 2 lectures on instruction scheduling (acyclic scheduling and
software pipelining), we have seen several ways to represent and
maintain resource usage: reservation tables and automaton.
It was only the main basis of such representations: several papers
tried to
optimize these models to increase the query speed, to speed up the
construction, to reduce the storage, ...
One drawback of reservation tables is the exposition of redundant
information: the storage of such tables as a tree is one solution to
merge common parts but it may increases the query time.
Representing resource constraints with a finite state automaton (FSA)
hampers the need to explicitely allocate resources, but its
construction and storage is huge.
Several papers deal with this problem by splitting this automaton into
multiple automata and using a partial online construction.
Furthermore, we have dealt with two approaches of modulo scheduling
heuristics: Iterative Modulo Scheduling (by Rau) and Swing Modulo
Scheduling (by Llosa et al.). Both approaches share the same framework
but traverse the instructions in a completely different order.
Furthermore, while the first one includes a notion of budget to stop
looking for a schedule at a fixed II, the second one does not need any
backtracking process (unscheduling).
This project focuses on the implementation of several
resource-constaint representation and several modulo scheduling
heuristics according to state-of-the-art papers.
Different optimizations and heuristics inside each approach will be
tested on a set of input DDGs.
Details
- Number of students: 4 (can be simplified for 2 as well)
- Language: C
- Infrastructure: a library will be provided. It gives functions
and structures to read both a DDG and a machine model (reservation
tables) from files.
The output of the project is not a full schedule with register
allocated, but only a set of scheduling dates (representing a valid
schedule)
- Modulo scheduling heuristics: Iterative Modulo Scheduling (IMS)
and Swing Modulo Scheduling (SMS)
- Resource contention modules: Automaton and tree of reservation
tables
- Statistics: need to design and determine relevant statistics to
compare these approaches.
References
Openings
The topic is not bounded and can be adapted according to the work and
the directions of the students...