Public Member Functions | List of all members
rmm::cuda_stream_view Class Reference

Strongly-typed non-owning wrapper for CUDA streams with default constructor. More...

#include <cuda_stream_view.hpp>

Public Member Functions

constexpr cuda_stream_view (cuda_stream_view const &)=default
 Default copy constructor.
 
constexpr cuda_stream_view (cuda_stream_view &&)=default
 Default move constructor.
 
constexpr cuda_stream_viewoperator= (cuda_stream_view const &)=default
 Default copy assignment operator. More...
 
constexpr cuda_stream_viewoperator= (cuda_stream_view &&)=default
 Default move assignment operator. More...
 
constexpr cuda_stream_view (int)=delete
 
constexpr cuda_stream_view (std::nullptr_t)=delete
 
constexpr cuda_stream_view (cudaStream_t stream) noexcept
 Constructor from a cudaStream_t. More...
 
constexpr cudaStream_t value () const noexcept
 Get the wrapped stream. More...
 
constexpr operator cudaStream_t () const noexcept
 Implicit conversion to cudaStream_t. More...
 
bool is_per_thread_default () const noexcept
 true if the wrapped stream is the CUDA per-thread default stream More...
 
bool is_default () const noexcept
 true if the wrapped stream is explicitly the CUDA legacy default stream More...
 
void synchronize () const
 Synchronize the viewed CUDA stream. More...
 
void synchronize_no_throw () const noexcept
 Synchronize the viewed CUDA stream. Does not throw if there is an error. More...
 

Detailed Description

Strongly-typed non-owning wrapper for CUDA streams with default constructor.

This wrapper is simply a "view": it does not own the lifetime of the stream it wraps.

Constructor & Destructor Documentation

◆ cuda_stream_view()

constexpr rmm::cuda_stream_view::cuda_stream_view ( cudaStream_t  stream)
inlineconstexprnoexcept

Constructor from a cudaStream_t.

Parameters
streamThe underlying stream for this view

Member Function Documentation

◆ is_default()

bool rmm::cuda_stream_view::is_default ( ) const
inlinenoexcept

true if the wrapped stream is explicitly the CUDA legacy default stream

Return true if the wrapped stream is explicitly the CUDA legacy default stream.

Returns
true if the wrapped stream is explicitly the CUDA legacy default stream

◆ is_per_thread_default()

bool rmm::cuda_stream_view::is_per_thread_default ( ) const
inlinenoexcept

true if the wrapped stream is the CUDA per-thread default stream

Returns
true if the wrapped stream is the CUDA per-thread default stream

◆ operator cudaStream_t()

constexpr rmm::cuda_stream_view::operator cudaStream_t ( ) const
inlineconstexprnoexcept

Implicit conversion to cudaStream_t.

Returns
cudaStream_t The underlying stream referenced by this cuda_stream_view

◆ operator=() [1/2]

constexpr cuda_stream_view& rmm::cuda_stream_view::operator= ( cuda_stream_view &&  )
constexprdefault

Default move assignment operator.

Returns
cuda_stream_view& Reference to the assigned object

◆ operator=() [2/2]

constexpr cuda_stream_view& rmm::cuda_stream_view::operator= ( cuda_stream_view const &  )
constexprdefault

Default copy assignment operator.

Returns
cuda_stream_view& Reference to the assigned object

◆ synchronize()

void rmm::cuda_stream_view::synchronize ( ) const
inline

Synchronize the viewed CUDA stream.

Calls cudaStreamSynchronize().

Exceptions
rmm::cuda_errorif stream synchronization fails

◆ synchronize_no_throw()

void rmm::cuda_stream_view::synchronize_no_throw ( ) const
inlinenoexcept

Synchronize the viewed CUDA stream. Does not throw if there is an error.

Calls cudaStreamSynchronize() and asserts if there is an error.

◆ value()

constexpr cudaStream_t rmm::cuda_stream_view::value ( ) const
inlineconstexprnoexcept

Get the wrapped stream.

Returns
cudaStream_t The underlying stream referenced by this cuda_stream_view

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