9 #include <rmm/detail/export.hpp>
11 #include <cuda/stream>
12 #include <cuda_runtime_api.h>
34 enum class flags : unsigned int {
35 sync_default = cudaStreamDefault,
37 cudaStreamNonBlocking,
81 [[nodiscard]] cudaStream_t
value()
const;
86 explicit operator cudaStream_t() const noexcept;
88 #if defined(__GNUC__) || defined(__clang__)
89 #pragma GCC diagnostic push
90 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
110 [[deprecated(
"Use conversion to cuda::stream_ref instead.")]]
operator cuda_stream_view()
const;
112 #if defined(__GNUC__) || defined(__clang__)
113 #pragma GCC diagnostic pop
121 operator cuda::stream_ref() const noexcept;
130 void synchronize() const;
137 void synchronize_no_throw() const noexcept;
140 std::unique_ptr<cudaStream_t, std::function<
void(cudaStream_t*)>> stream_;
Strongly-typed non-owning wrapper for CUDA streams with default constructor.
Definition: cuda_stream_view.hpp:31
Owning wrapper for a CUDA stream.
Definition: cuda_stream.hpp:29
bool is_valid() const
Returns true if the owned stream is non-null.
cuda_stream & operator=(cuda_stream &&)=default
Move copy assignment operator (default)
cudaStream_t value() const
Get the value of the wrapped CUDA stream.
flags
stream creation flags.
Definition: cuda_stream.hpp:34
cuda_stream_view view() const
Creates an immutable, non-owning view of the wrapped CUDA stream.
cuda_stream(cuda_stream &&)=default
Move constructor (default)
cuda_stream(cuda_stream::flags flags=cuda_stream::flags::sync_default)
Construct a new CUDA stream object.