Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
uni20::cuda::PartitionedWriteAccess< T > Class Template Reference

Scoped write access to every child of one partitioned CUDA allocation. More...

#include <buffer.hpp>

Public Types

using element_type = T
 

Public Member Functions

T * data () const noexcept
 Return the first element of the complete physical allocation.
 
PartitionedWriteAccess & operator= (PartitionedWriteAccess &&other) noexcept
 
PartitionedWriteAccess & operator= (PartitionedWriteAccess const &)=delete
 
 PartitionedWriteAccess (PartitionedWriteAccess &&other) noexcept
 
 PartitionedWriteAccess (PartitionedWriteAccess const &)=delete
 
void release () noexcept
 Record and publish one shared writer completion.
 
void release_after_synchronization () noexcept
 End access after the caller has synchronized the operation stream.
 
void release_with_completion (Completion completion) noexcept
 Publish a caller-recorded completion to every child ledger.
 
std::size_t size () const noexcept
 Return the physical allocation size in elements.
 
 ~PartitionedWriteAccess ()
 

Friends

class PartitionedCudaBuffer< T >
 

Detailed Description

template<typename T>
class uni20::cuda::PartitionedWriteAccess< T >

Scoped write access to every child of one partitioned CUDA allocation.

Construction installs predecessor waits for every logical child. Release records one completion and publishes the shared token to every child ledger.

Member Typedef Documentation

◆ element_type

template<typename T >
using uni20::cuda::PartitionedWriteAccess< T >::element_type = T

Constructor & Destructor Documentation

◆ PartitionedWriteAccess() [1/2]

template<typename T >
uni20::cuda::PartitionedWriteAccess< T >::PartitionedWriteAccess ( PartitionedWriteAccess< T > const &  )
delete

◆ PartitionedWriteAccess() [2/2]

template<typename T >
uni20::cuda::PartitionedWriteAccess< T >::PartitionedWriteAccess ( PartitionedWriteAccess< T > &&  other)
inlinenoexcept

◆ ~PartitionedWriteAccess()

template<typename T >
uni20::cuda::PartitionedWriteAccess< T >::~PartitionedWriteAccess ( )
inline

Member Function Documentation

◆ data()

template<typename T >
T * uni20::cuda::PartitionedWriteAccess< T >::data ( ) const
inlinenoexcept

Return the first element of the complete physical allocation.

◆ operator=() [1/2]

template<typename T >
PartitionedWriteAccess & uni20::cuda::PartitionedWriteAccess< T >::operator= ( PartitionedWriteAccess< T > &&  other)
inlinenoexcept

◆ operator=() [2/2]

template<typename T >
PartitionedWriteAccess & uni20::cuda::PartitionedWriteAccess< T >::operator= ( PartitionedWriteAccess< T > const &  )
delete

◆ release()

template<typename T >
void uni20::cuda::PartitionedWriteAccess< T >::release ( )
inlinenoexcept

Record and publish one shared writer completion.

◆ release_after_synchronization()

template<typename T >
void uni20::cuda::PartitionedWriteAccess< T >::release_after_synchronization ( )
inlinenoexcept

End access after the caller has synchronized the operation stream.

◆ release_with_completion()

template<typename T >
void uni20::cuda::PartitionedWriteAccess< T >::release_with_completion ( Completion  completion)
inlinenoexcept

Publish a caller-recorded completion to every child ledger.

◆ size()

template<typename T >
std::size_t uni20::cuda::PartitionedWriteAccess< T >::size ( ) const
inlinenoexcept

Return the physical allocation size in elements.

Friends And Related Symbol Documentation

◆ PartitionedCudaBuffer< T >

template<typename T >
friend class PartitionedCudaBuffer< T >
friend

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