![]() |
|
This class provides an executor engine to the speculation executor. More...
#include <speculationExecutorEngine.h>
Inheritance diagram for VdfSpeculationExecutorEngine< DataManagerType >:Public Member Functions | |
| VdfSpeculationExecutorEngine (const VdfSpeculationExecutorBase &speculationExecutor, DataManagerType *dataManager) | |
| Constructs an engine used by the speculation executor. | |
| void | RunSchedule (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger) |
Executes the given schedule with a computeRequest and an optional /p errorLogger. | |
| template<typename F > | |
| void | RunSchedule (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger, F &&callback) |
Executes the given schedule with a computeRequest and an optional /p errorLogger. | |
Public Member Functions inherited from VdfPullBasedExecutorEngine< DataManagerType > | |
| VdfPullBasedExecutorEngine (const VdfExecutorInterface &executor, DataManagerType *dataManager) | |
| Constructor. | |
| void | RunSchedule (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger) |
Executes the given schedule with a computeRequest and an optional /p errorLogger. | |
| template<typename F > | |
| void | RunSchedule (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger, F &&callback) |
Executes the given schedule with a computeRequest and an optional /p errorLogger. | |
Additional Inherited Members | |
Public Types inherited from VdfPullBasedExecutorEngine< DataManagerType > | |
| typedef VdfSpeculationExecutorEngine< DataManagerType > | SpeculationExecutorEngine |
| The equivalent speculation executor engine. | |
Protected Types inherited from VdfPullBasedExecutorEngine< DataManagerType > | |
| enum | _ExecutionStage { ExecutionStageStart , ExecutionStagePreRequisitesDone , ExecutionStageReadsDone , ExecutionStageCompute } |
| This enum describes the stages that a node goes through in execution. More... | |
| typedef DataManagerType::DataHandle | _DataHandle |
| The data handle type from the data manager implementation. | |
Protected Member Functions inherited from VdfPullBasedExecutorEngine< DataManagerType > | |
| void | _ComputeNode (const VdfEvaluationState &state, const VdfNode &node, bool absorbLockedCache=false) |
Computes node. | |
| bool | _PassThroughNode (const VdfSchedule &schedule, const VdfNode &node, bool absorbLockedCache=false) |
Causes the outputs with associated inputs in node to have their data passed through. | |
| VdfVector * | _CopyCache (const VdfOutput &toOutput, VdfExecutorBufferData *toBuffer, const VdfOutput &fromOutput, const VdfMask &fromMask) const |
Helper method to _PrepareReadWriteBuffer that copies the cache from fromOutput to toOutput. | |
| const VdfExecutorInterface & | _GetExecutor () |
| Returns the executor running this engine. | |
| DataManagerType * | _GetDataManager () |
| Returns the data manager used by this engine. | |
| VdfVector * | _PassOrCopySourceOutputBuffer (const _DataHandle dataHandle, const VdfOutput &output, const VdfOutput &source, const VdfMask &inputMask, const VdfSchedule &schedule) |
| Fast path for when we know ahead of time the output from which we wish to pass the buffer (or copy) and it is not necessarily the one that is directly connected to the output's associated input. | |
| VdfVector * | _PassOrCopyBufferInternal (const _DataHandle dataHandle, const VdfOutput &output, const VdfOutput &source, const VdfMask &inputMask, const VdfSchedule &schedule) const |
Common method for _PrepareReadWriteBuffer and _PassOrCopySourceOutputBuffer that attempts to pass the buffer from source to output. | |
| void | _PrepareReadWriteBuffer (const _DataHandle dataHandle, const VdfInput &input, const VdfMask &mask, const VdfSchedule &schedule) |
| Prepares a buffer for a read/write output. | |
Static Protected Member Functions inherited from VdfPullBasedExecutorEngine< DataManagerType > | |
| static bool | _IsNotPassing (const VdfOutput &output, const VdfSchedule::OutputId &outputId, const VdfSchedule &schedule) |
| Returns true if the output is associative but does not pass the buffer to another output. | |
This class provides an executor engine to the speculation executor.
Definition at line 38 of file speculationExecutorEngine.h.
|
inline |
Constructs an engine used by the speculation executor.
Definition at line 50 of file speculationExecutorEngine.h.
|
inline |
Executes the given schedule with a computeRequest and an optional /p errorLogger.
Definition at line 63 of file speculationExecutorEngine.h.
| void RunSchedule | ( | const VdfSchedule & | schedule, |
| const VdfRequest & | computeRequest, | ||
| VdfExecutorErrorLogger * | errorLogger, | ||
| F && | callback | ||
| ) |
Executes the given schedule with a computeRequest and an optional /p errorLogger.
Invokes callback after evaluation of each uncached output in the request, and immediatelly after hitting the cache for cached outputs in the request.
Definition at line 172 of file speculationExecutorEngine.h.