Peano
Loading...
Searching...
No Matches
AllOnGPU.h
Go to the documentation of this file.
1// This file is part of the Peano project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5#include "Strategy.h"
6
7namespace tarch {
8 namespace multicore {
9 namespace orchestration {
10 class AllOnGPU;
11 } // namespace orchestration
12 } // namespace multicore
13} // namespace tarch
14
15
27private:
28 const int _device;
32
34public:
35 static int constexpr RoundRobin = -1;
36
44
45 virtual void startBSPSection(int nestedParallelismLevel) override;
46 virtual void endBSPSection(int nestedParallelismLevel) override;
47
56 virtual FuseInstruction fuse(int taskType) override;
57
61 virtual ExecutionPolicy paralleliseForkJoinSection(int nestedParallelismLevel, int numberOfTasks, int taskType)
62 override;
63
65 int taskType,
66 int queueSize,
67 double averageNumberOfPendingReadyTasksPerProcessTaskExecution,
68 double probabilityThatTaskIsCompleted
69 ) override;
70
75};
virtual FusionImplementation getFusionImplementation() const override
Hardcoded to tarch::multicore::orchestration::FusionImplementation::LazyEvaluation.
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
Definition AllOnGPU.h:31
Interface for any task orchestration.
Definition Strategy.h:305
ExecutionPolicy
Provide hint of execution policy.
Definition Strategy.h:317
FusionImplementation
Control how the fusion is implemented.
Definition Strategy.h:91
@ 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.
Definition accelerator.h:19