Compile time scheduler
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, andConfiguredSequence.cuh
is a dispatcher of the currently configured sequence. - The sequence can be defined by specifying
-DSEQUENCE=<sequence_name>
at compile time, wheresequence_name
matches one of the files defined instream/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 thevisit
function. In case it is empty, a macroDEFINE_EMPTY_SET_ARGUMENTS_SIZE(<algorithm_type>)
can be used. -
readme.md
andcontributing.md
have been updated. - Compile time is about 2.30 minutes on lab14.