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_setupnow only contains three configurable files:AlgorithmDependencies.cuhcontains all dependencies for every algorithm.Arguments.cuhcontains all existing arguments, andConfiguredSequence.cuhis a dispatcher of the currently configured sequence. - The sequence can be defined by specifying
-DSEQUENCE=<sequence_name>at compile time, wheresequence_namematches 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_sizefunction in addition to thevisitfunction. In case it is empty, a macroDEFINE_EMPTY_SET_ARGUMENTS_SIZE(<algorithm_type>)can be used. -
readme.mdandcontributing.mdhave been updated. - Compile time is about 2.30 minutes on lab14.