LAMA
|
lama::CUDATracerSyncToken More...
#include <CUDATracerSyncToken.hpp>
Public Member Functions | |
CUDATracerSyncToken (std::auto_ptr< LAMABaseTracer > tracer, lama::CUDAStreamSyncToken &cudaStreamSyncToken) | |
virtual | ~CUDATracerSyncToken () |
virtual void | wait () |
Method to wait on the completion of an operation. | |
virtual bool | probe () const |
Predicate to ask if an asynchronous operation is already completed. | |
void | recordStopEvent () |
bool | isSynchronized () const |
Query whether token has already been synchronized. | |
virtual void | writeAt (std::ostream &stream) const |
Base class provides a default implementation for the virtual method of Printable. | |
void | pushAccess (std::auto_ptr< BaseAccess > access) |
Add a read/write access to the token so that LAMA arrays will be locked until synchronization. | |
void | pushArray (std::auto_ptr< _LAMAArray > array) |
Add a LAMA array that will be free after synchronization. | |
void | pushSyncToken (std::auto_ptr< SyncToken > syncToken) |
Add a Synctoken that will be synchronized after synchronization. | |
Protected Member Functions | |
void | setSynchronized () |
This method should be called by base classes after a successful wait. | |
Private Member Functions | |
CUDATracerSyncToken () | |
CUDATracerSyncToken (const CUDATracerSyncToken &other) | |
CUDATracerSyncToken & | operator= (const CUDATracerSyncToken &other) |
LAMA_LOG_DECL_STATIC_LOGGER (logger) | |
logger for this class | |
Private Attributes | |
CUevent | mStartEvent |
CUevent | mStopEvent |
lama::CUDAStreamSyncToken & | mStreamSyncToken |
std::auto_ptr< LAMABaseTracer > | mTracer |
lama::CUDATracerSyncToken
CUDATracerSyncToken::CUDATracerSyncToken | ( | std::auto_ptr< LAMABaseTracer > | tracer, |
lama::CUDAStreamSyncToken & | cudaStreamSyncToken | ||
) |
CUDATracerSyncToken::~CUDATracerSyncToken | ( | ) | [virtual] |
References lama::SyncToken::isSynchronized(), and wait().
CUDATracerSyncToken::CUDATracerSyncToken | ( | ) | [private] |
CUDATracerSyncToken::CUDATracerSyncToken | ( | const CUDATracerSyncToken & | other | ) | [private] |
bool lama::SyncToken::isSynchronized | ( | ) | const [inherited] |
Query whether token has already been synchronized.
References lama::SyncToken::mSynchronized.
Referenced by lama::PGASSyncToken::probe(), lama::CUDAStreamSyncToken::probe(), lama::NoSyncToken::wait(), lama::PGASSyncToken::wait(), lama::TaskSyncToken::wait(), lama::MPISyncToken::wait(), lama::CUDAStreamSyncToken::wait(), lama::NoSyncToken::writeAt(), lama::PGASSyncToken::writeAt(), lama::TaskSyncToken::writeAt(), lama::MPISyncToken::writeAt(), ~CUDATracerSyncToken(), lama::MPISyncToken::~MPISyncToken(), lama::NoSyncToken::~NoSyncToken(), and lama::PGASSyncToken::~PGASSyncToken().
CUDATracerSyncToken::LAMA_LOG_DECL_STATIC_LOGGER | ( | logger | ) | [private] |
logger for this class
Reimplemented from lama::SyncToken.
CUDATracerSyncToken& CUDATracerSyncToken::operator= | ( | const CUDATracerSyncToken & | other | ) | [private] |
bool CUDATracerSyncToken::probe | ( | ) | const [virtual] |
Predicate to ask if an asynchronous operation is already completed.
Implements lama::SyncToken.
References mStopEvent, mStreamSyncToken, and lama::CUDAStreamSyncToken::probeEvent().
void lama::SyncToken::pushAccess | ( | std::auto_ptr< BaseAccess > | access | ) | [inherited] |
Add a read/write access to the token so that LAMA arrays will be locked until synchronization.
References LAMA_ASSERT_ERROR, lama::SyncToken::mAccesses, and lama::SyncToken::mSynchronized.
Referenced by lama::ELLStorage< T >::matrixTimesVectorAsync(), lama::CSRStorage< T >::matrixTimesVectorAsync(), and lama::COOStorage< T >::matrixTimesVectorAsyncToDo().
void lama::SyncToken::pushArray | ( | std::auto_ptr< _LAMAArray > | array | ) | [inherited] |
Add a LAMA array that will be free after synchronization.
References LAMA_ASSERT_ERROR, lama::SyncToken::mArrays, and lama::SyncToken::mSynchronized.
void lama::SyncToken::pushSyncToken | ( | std::auto_ptr< SyncToken > | syncToken | ) | [inherited] |
Add a Synctoken that will be synchronized after synchronization.
References LAMA_ASSERT_ERROR, lama::SyncToken::mChilds, and lama::SyncToken::mSynchronized.
Referenced by CUDATracerHelper< Tracer >::CUDATracerHelper().
void CUDATracerSyncToken::recordStopEvent | ( | ) |
References mStopEvent, mStreamSyncToken, and lama::CUDAStreamSyncToken::recordEvent().
void lama::SyncToken::setSynchronized | ( | ) | [protected, inherited] |
This method should be called by base classes after a successful wait.
References LAMA_THROWEXCEPTION, lama::SyncToken::mAccesses, lama::SyncToken::mArrays, lama::SyncToken::mChilds, and lama::SyncToken::mSynchronized.
Referenced by lama::NoSyncToken::wait(), wait(), lama::PGASSyncToken::wait(), lama::TaskSyncToken::wait(), lama::MPISyncToken::wait(), lama::CUDAStreamSyncToken::wait(), and lama::NoSyncToken::~NoSyncToken().
void CUDATracerSyncToken::wait | ( | ) | [virtual] |
Method to wait on the completion of an operation.
Implements lama::SyncToken.
References lama::CUDAStreamSyncToken::getTime(), mStartEvent, mStopEvent, mStreamSyncToken, mTracer, lama::SyncToken::setSynchronized(), and lama::CUDAStreamSyncToken::synchronizeEvent().
Referenced by ~CUDATracerSyncToken().
void lama::SyncToken::writeAt | ( | std::ostream & | stream | ) | const [virtual, inherited] |
Base class provides a default implementation for the virtual method of Printable.
Reimplemented from Printable.
Reimplemented in lama::MPISyncToken, lama::TaskSyncToken, lama::PGASSyncToken, and lama::NoSyncToken.
References lama::SyncToken::mSynchronized.
CUevent CUDATracerSyncToken::mStartEvent [private] |
Referenced by CUDATracerSyncToken(), and wait().
CUevent CUDATracerSyncToken::mStopEvent [private] |
Referenced by CUDATracerSyncToken(), probe(), recordStopEvent(), and wait().
Referenced by CUDATracerSyncToken(), probe(), recordStopEvent(), and wait().
std::auto_ptr<LAMABaseTracer> CUDATracerSyncToken::mTracer [private] |
Referenced by wait().