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

One operation-tail completion shared by multiple CUDA buffer accesses. More...

#include <buffer.hpp>

Public Member Functions

 AccessCompletion (AccessCompletion &&) noexcept=default
 
 AccessCompletion (AccessCompletion const &)=delete
 
 AccessCompletion (Stream const &stream) noexcept
 Record the current stream tail, synchronizing only if publication fails.
 
AccessCompletion & operator= (AccessCompletion &&) noexcept=default
 
AccessCompletion & operator= (AccessCompletion const &)=delete
 
template<class Access >
void release (Access &access) const noexcept
 Release one participating access through the shared completion.
 

Detailed Description

One operation-tail completion shared by multiple CUDA buffer accesses.

Record this after successfully submitting all work for one operation, then release every participating access through it. If event publication fails, construction synchronizes the stream and subsequent releases use the already-synchronized path.

Constructor & Destructor Documentation

◆ AccessCompletion() [1/3]

uni20::cuda::AccessCompletion::AccessCompletion ( Stream const &  stream)
inlineexplicitnoexcept

Record the current stream tail, synchronizing only if publication fails.

◆ AccessCompletion() [2/3]

uni20::cuda::AccessCompletion::AccessCompletion ( AccessCompletion const &  )
delete

◆ AccessCompletion() [3/3]

uni20::cuda::AccessCompletion::AccessCompletion ( AccessCompletion &&  )
defaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

AccessCompletion & uni20::cuda::AccessCompletion::operator= ( AccessCompletion &&  )
defaultnoexcept

◆ operator=() [2/2]

AccessCompletion & uni20::cuda::AccessCompletion::operator= ( AccessCompletion const &  )
delete

◆ release()

template<class Access >
void uni20::cuda::AccessCompletion::release ( Access &  access) const
inlinenoexcept

Release one participating access through the shared completion.


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