Skip to content

Compile time scheduler

Daniel Campora Perez requested to merge dcampora_compile_time_scheduler into master

This MR changes a lot of the backend to schedule algorithms at compile time. It also adds an easy way to change between sequences at compile time.

  • sequence_setup now only contains three configurable files: AlgorithmDependencies.cuh contains all dependencies for every algorithm. Arguments.cuh contains all existing arguments, and ConfiguredSequence.cuh is a dispatcher of the currently configured sequence.
  • The sequence can be defined by specifying -DSEQUENCE=<sequence_name> at compile time, where sequence_name matches one of the files defined in stream/sequence_setup/include/sequences, without the .cuh.
  • All the backend logic or most of it has been moved to the folder stream/gear/include.
  • All visitors must now also implement a set_arguments_size function in addition to the visit function. In case it is empty, a macro DEFINE_EMPTY_SET_ARGUMENTS_SIZE(<algorithm_type>) can be used.
  • readme.md and contributing.md have been updated.
  • Compile time is about 2.30 minutes on lab14.

Merge request reports