9 namespace orchestration {
67 double averageNumberOfPendingReadyTasksPerProcessTaskExecution,
68 double probabilityThatTaskIsCompleted
virtual FusionImplementation getFusionImplementation() const override
Hardcoded to tarch::multicore::orchestration::FusionImplementation::LazyEvaluation.
static int constexpr RoundRobin
virtual void updateFuseStatistics(int taskType, int queueSize, double averageNumberOfPendingReadyTasksPerProcessTaskExecution, double probabilityThatTaskIsCompleted) override
Update task fusion status.
virtual ExecutionPolicy paralleliseForkJoinSection(int nestedParallelismLevel, int numberOfTasks, int taskType) override
No if we encounter nested parallelism.
AllOnGPU(int device, FusionImplementation FusionImplementation=FusionImplementation::LazyEvaluation)
Initialise strategy.
virtual void endBSPSection(int nestedParallelismLevel) override
Notifies the strategy that we leave a BSP (fork-join) section.
virtual FuseInstruction fuse(int taskType) override
Return how many tasks to fuse at least, at most and to which device to deploy them.
virtual void startBSPSection(int nestedParallelismLevel) override
Notifies the strategy that we enter a BSP section.
const FusionImplementation _fusionImplementation
Interface for any task orchestration.
ExecutionPolicy
Provide hint of execution policy.
FusionImplementation
Control how the fusion is implemented.
@ LazyEvaluation
All fusable tasks are parked in a big queue and we fuse lazily as we need the outcome.
Have to include this header, as I need access to the SYCL_EXTERNAL keyword.