Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
uni20::async::ReverseEpochQueue Class Reference

Reverse-order epoch queue used by reverse-mode gradient accumulation. More...

#include <epoch_queue.hpp>

Public Member Functions

template<typename T >
EpochContextReader< T > create_read_context (shared_storage< T > storage)
 Create a read context from the earliest active reverse epoch.
 
template<typename T >
EpochContextWriter< T > create_write_context (shared_storage< T > storage)
 Create a write context from the earliest active reverse epoch.
 
bool is_started () const
 Reports whether the reverse queue has already started.
 
ReverseEpochQueue & operator= (ReverseEpochQueue &&)=default
 Move assignment.
 
ReverseEpochQueue & operator= (ReverseEpochQueue &)=delete
 Non-copyable.
 
 ReverseEpochQueue ()
 Construct a reverse queue with one initial epoch.
 
 ReverseEpochQueue (ReverseEpochQueue &&)=default
 Move constructor.
 
 ReverseEpochQueue (ReverseEpochQueue &)=delete
 Non-copyable.
 
 ReverseEpochQueue (std::shared_ptr< EpochContext > first)
 Construct a ReverseEpochQueue from a given EpochContext.
 
void start ()
 Start running the reverse queue.
 
 ~ReverseEpochQueue ()=default
 Destructor.
 

Detailed Description

Reverse-order epoch queue used by reverse-mode gradient accumulation.

Constructor & Destructor Documentation

◆ ReverseEpochQueue() [1/4]

uni20::async::ReverseEpochQueue::ReverseEpochQueue ( )
inline

Construct a reverse queue with one initial epoch.

◆ ReverseEpochQueue() [2/4]

uni20::async::ReverseEpochQueue::ReverseEpochQueue ( ReverseEpochQueue &  )
delete

Non-copyable.

◆ ReverseEpochQueue() [3/4]

uni20::async::ReverseEpochQueue::ReverseEpochQueue ( ReverseEpochQueue &&  )
default

Move constructor.

◆ ~ReverseEpochQueue()

uni20::async::ReverseEpochQueue::~ReverseEpochQueue ( )
default

Destructor.

◆ ReverseEpochQueue() [4/4]

uni20::async::ReverseEpochQueue::ReverseEpochQueue ( std::shared_ptr< EpochContext >  first)
inlineexplicit

Construct a ReverseEpochQueue from a given EpochContext.

Member Function Documentation

◆ create_read_context()

template<typename T >
EpochContextReader< T > uni20::async::ReverseEpochQueue::create_read_context ( shared_storage< T >  storage)
inline

Create a read context from the earliest active reverse epoch.

Template Parameters
TStored value type.
Parameters
storageShared value storage.
Returns
Reader handle for reverse traversal.

◆ create_write_context()

template<typename T >
EpochContextWriter< T > uni20::async::ReverseEpochQueue::create_write_context ( shared_storage< T >  storage)
inline

Create a write context from the earliest active reverse epoch.

Template Parameters
TStored value type.
Parameters
storageShared value storage.
Returns
Writer handle for reverse traversal.

◆ is_started()

bool uni20::async::ReverseEpochQueue::is_started ( ) const
inline

Reports whether the reverse queue has already started.

Returns
true once start() has consumed the initial epoch.

◆ operator=() [1/2]

ReverseEpochQueue & uni20::async::ReverseEpochQueue::operator= ( ReverseEpochQueue &&  )
default

Move assignment.

◆ operator=() [2/2]

ReverseEpochQueue & uni20::async::ReverseEpochQueue::operator= ( ReverseEpochQueue &  )
delete

Non-copyable.

◆ start()

void uni20::async::ReverseEpochQueue::start ( )
inline

Start running the reverse queue.

After start, the initial epoch is consumed and cannot be accessed again.


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