Skip to content

pascalj/resch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resch 🥨

Static Scheduling Algorithms for FPGAs

Resch is part of my research to evaluate exact and heuristic algorithms for the scheduling of tasks on FPGAs.

It provides an abstraction for machine models, schedules and task graphs. Under the hood, it uses graph-tool to import graphs and OR-Tools to generate optimal schedules.

Currently implemented heuristics are:

  • HEFT, which is a baseline for scheduling on heterogeneous resources but not specifically designed for
  • CPOP, an algorithm that tries to minimize the CP, also not designed for FPGAs.

Example

A simple example of its usage is shown in the examples:

g = import_graph(...)
w = import_weights(...)
c = import_edge_weights(...)
S = heft.build_schedule(g, w, c)
S.save_svg("heft.svg", machine_model, print_locs = False)

This converts the graph g:

Simple task graph

to a schedule like this:

Schedule

For feedback or questions, please contact me at [email protected].

About

Static Scheduling Algorithms for FPGAs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages