cuda::experimental::stream
Defined in include/cuda/experimental/__stream/stream.cuh
-
struct stream : public cuda::experimental::stream_ref
An owning wrapper for cudaStream_t.
Public Functions
-
inline explicit stream(device_ref __dev, int __priority = default_priority)
Constructs a stream on a specified device and with specified priority.
Priority is defaulted to stream::default_priority
- Throws
cuda_error – if stream creation fails
-
inline explicit stream(::cuda::experimental::logical_device __dev, int __priority = default_priority)
Constructs a stream on a specified logical device and with specified priority.
Priority is defaulted to stream::default_priority
- Throws
cuda_error – if stream creation fails
-
inline stream()
Constructs a stream on the default device.
- Throws
cuda_error – if stream creation fails.
-
inline explicit stream(uninit_t) noexcept
Construct a new
stream
object into the moved-from state.- Post
stream()
returns an invalid stream handle
-
inline stream(stream &&__other) noexcept
Move-construct a new
stream
object.- Parameters
__other –
- Post
__other
is in moved-from state.
-
inline ~stream()
Destroy the
stream
object.Note
If the stream fails to be destroyed, the error is silently ignored.
-
inline stream &operator=(stream &&__other) noexcept
Move-assign a
stream
object.- Parameters
__other –
- Post
__other
is in a moved-from state.
-
inline ::cudaStream_t release()
Retrieve the native
cudaStream_t
handle and give up ownership.- Returns
cudaStream_t The native handle being held by the
stream
object.- Post
The stream object is in a moved-from state.
-
inline event record_event(event::flags __flags = event::flags::none) const
Create a new event and record it into this stream.
- Throws
cuda_error – if event creation or record failed
- Returns
A new event that was recorded into this stream
-
inline timed_event record_timed_event(event::flags __flags = event::flags::none) const
Create a new timed event and record it into this stream.
- Throws
cuda_error – if event creation or record failed
- Returns
A new timed event that was recorded into this stream
-
inline void wait(event_ref __ev) const
Make all future work submitted into this stream depend on completion of the specified event.
- Parameters
__ev – Event that this stream should wait for
- Throws
cuda_error – if inserting the dependency fails
-
inline void wait(stream_ref __other) const
Make all future work submitted into this stream depend on completion of all work from the specified stream.
- Parameters
__other – Stream that this stream should wait for
- Throws
cuda_error – if inserting the dependency fails
-
inline logical_device logical_device() const
Get the logical device under which this stream was created Compared to
device()
member function the returned logical_device will hold a green context for streams created under one.
-
inline device_ref device() const
Get device under which this stream was created.
Note: In case of a stream created under a
green_context
the device on which thatgreen_context
was created is returned- Throws
cuda_error – if device check fails
Public Static Functions
Public Static Attributes
-
static constexpr int default_priority = 0
-
inline explicit stream(device_ref __dev, int __priority = default_priority)