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


References

Openings

The topic is not bounded and can be adapted according to the work and the directions of the students...