Loading...
Searching...
No Matches
VdfSpeculationExecutorEngine< DataManagerType > Class Template Reference

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.
 

Detailed Description

template<typename DataManagerType>
class VdfSpeculationExecutorEngine< DataManagerType >

This class provides an executor engine to the speculation executor.

Remarks
This class inherits from VdfPullBasedExecutorEngine only to share code. It is not meant to behave polymorphically.

Definition at line 38 of file speculationExecutorEngine.h.

Constructor & Destructor Documentation

◆ VdfSpeculationExecutorEngine()

VdfSpeculationExecutorEngine ( const VdfSpeculationExecutorBase &  speculationExecutor,
DataManagerType *  dataManager 
)
inline

Constructs an engine used by the speculation executor.

Definition at line 50 of file speculationExecutorEngine.h.

Member Function Documentation

◆ RunSchedule() [1/2]

void RunSchedule ( const VdfSchedule schedule,
const VdfRequest &  computeRequest,
VdfExecutorErrorLogger errorLogger 
)
inline

Executes the given schedule with a computeRequest and an optional /p errorLogger.

Definition at line 63 of file speculationExecutorEngine.h.

◆ RunSchedule() [2/2]

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.


The documentation for this class was generated from the following files: