Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
uni20::cublas::ExecutionLease Class Reference

Move-only dynamic pairing of one cuBLAS handle slot and one idle stream. More...

#include <execution.hpp>

Public Types

using handle_lease_type = cuda::ResourceLease< HandleSlot >
 

Public Member Functions

 ExecutionLease () noexcept=default
 
 ExecutionLease (ExecutionLease &&other) noexcept
 
 ExecutionLease (ExecutionLease const &)=delete
 
HandleSlot & handle () const
 Access the exclusively leased cuBLAS handle slot.
 
 operator bool () const noexcept
 Return whether this lease owns both required execution resources.
 
ExecutionLease & operator= (ExecutionLease &&other) noexcept
 
ExecutionLease & operator= (ExecutionLease const &)=delete
 
void release () noexcept
 Publish deferred handle return at the current stream tail.
 
cuda::Stream const & stream () const noexcept
 Access the dynamically selected CUDA stream.
 
 ~ExecutionLease ()
 

Friends

class ExecutionAcquireAwaiter
 
class ExecutionPool
 

Detailed Description

Move-only dynamic pairing of one cuBLAS handle slot and one idle stream.

The handle returns to its pool at the submitted stream tail. The stream follows its own reference-counted idle-pool lifetime.

Member Typedef Documentation

◆ handle_lease_type

Constructor & Destructor Documentation

◆ ExecutionLease() [1/3]

uni20::cublas::ExecutionLease::ExecutionLease ( )
defaultnoexcept

◆ ExecutionLease() [2/3]

uni20::cublas::ExecutionLease::ExecutionLease ( ExecutionLease const &  )
delete

◆ ExecutionLease() [3/3]

uni20::cublas::ExecutionLease::ExecutionLease ( ExecutionLease &&  other)
noexcept

◆ ~ExecutionLease()

uni20::cublas::ExecutionLease::~ExecutionLease ( )

Member Function Documentation

◆ handle()

HandleSlot & uni20::cublas::ExecutionLease::handle ( ) const
inline

Access the exclusively leased cuBLAS handle slot.

◆ operator bool()

uni20::cublas::ExecutionLease::operator bool ( ) const
inlineexplicitnoexcept

Return whether this lease owns both required execution resources.

◆ operator=() [1/2]

ExecutionLease & uni20::cublas::ExecutionLease::operator= ( ExecutionLease &&  other)
noexcept

◆ operator=() [2/2]

ExecutionLease & uni20::cublas::ExecutionLease::operator= ( ExecutionLease const &  )
delete

◆ release()

void uni20::cublas::ExecutionLease::release ( )
noexcept

Publish deferred handle return at the current stream tail.

◆ stream()

cuda::Stream const & uni20::cublas::ExecutionLease::stream ( ) const
inlinenoexcept

Access the dynamically selected CUDA stream.

Friends And Related Symbol Documentation

◆ ExecutionAcquireAwaiter

friend class ExecutionAcquireAwaiter
friend

◆ ExecutionPool

friend class ExecutionPool
friend

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