cudaStream class
          #include <taskflow/cuda/cuda_stream.hpp>
        
        class to create an RAII-styled wrapper over a native CUDA stream
A cudaStream object is an RAII-styled wrapper over a native CUDA stream (cudaStream_t). A cudaStream object is move-only.
Constructors, destructors, conversion operators
- cudaStream(cudaStream_t stream) explicit
- constructs an RAII-styled object from the given CUDA stream
- cudaStream() defaulted
- default constructor
Public functions
- void synchronize() const
- synchronizes the associated stream
- void begin_capture(cudaStreamCaptureMode m = cudaStreamCaptureModeGlobal) const
- begins graph capturing on the stream
- auto end_capture() const -> cudaGraph_t
- ends graph capturing on the stream
- void record(cudaEvent_t event) const
- records an event on the stream
- void wait(cudaEvent_t event) const
- waits on an event
Function documentation
               tf::
            constructs an RAII-styled object from the given CUDA stream
Constructs a cudaStream object which owns stream.
              void tf::
            synchronizes the associated stream
Equivalently calling cudaStreamSynchronize to block until this stream has completed all operations.
              void tf::
            begins graph capturing on the stream
When a stream is in capture mode, all operations pushed into the stream will not be executed, but will instead be captured into a graph, which will be returned via cudaStream::
A thread's mode can be one of the following:
- cudaStreamCaptureModeGlobal:This is the default mode. If the local thread has an ongoing capture sequence that was not initiated with- cudaStreamCaptureModeRelaxedat- cuStreamBeginCapture, or if any other thread has a concurrent capture sequence initiated with- cudaStreamCaptureModeGlobal, this thread is prohibited from potentially unsafe API calls.
- cudaStreamCaptureModeThreadLocal:If the local thread has an ongoing capture sequence not initiated with- cudaStreamCaptureModeRelaxed, it is prohibited from potentially unsafe API calls. Concurrent capture sequences in other threads are ignored.
- cudaStreamCaptureModeRelaxed:The local thread is not prohibited from potentially unsafe API calls. Note that the thread is still prohibited from API calls which necessarily conflict with stream capture, for example, attempting- cudaEventQueryon an event that was last recorded inside a capture sequence.
              cudaGraph_t tf::
            ends graph capturing on the stream
Equivalently calling cudaStreamEndCapture to end capture on stream and returning the captured graph. Capture must have been initiated on stream via a call to cudaStream::
              void tf::
            records an event on the stream
Equivalently calling cudaEventRecord to record an event on this stream, both of which must be on the same CUDA context.
              void tf::
            waits on an event
Equivalently calling cudaStreamWaitEvent to make all future work submitted to stream wait for all work captured in event.