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 cuda_stream_view (cuda::stream_ref stream) noexcept
 Implicit conversion from stream_ref. More...
 
constexpr cudaStream_t value () const noexcept
 Get the wrapped stream. More...
 
constexpr operator cudaStream_t () const noexcept
 Implicit conversion to cudaStream_t. More...
 
constexpr operator cuda::stream_ref () const noexcept
 Implicit conversion to stream_ref. 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() [1/2]

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

Constructor from a cudaStream_t.

Parameters
streamThe underlying stream for this view

◆ cuda_stream_view() [2/2]

constexpr rmm::cuda_stream_view::cuda_stream_view ( cuda::stream_ref  stream)
inlineconstexprnoexcept

Implicit conversion from stream_ref.

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

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 cuda::stream_ref()

constexpr rmm::cuda_stream_view::operator cuda::stream_ref ( ) const
inlineconstexprnoexcept

Implicit conversion to stream_ref.

Returns
stream_ref The underlying stream referenced by this cuda_stream_view

◆ 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: