Struct opencv::core::Stream

source ·
pub struct Stream { /* private fields */ }
Expand description

This class encapsulates a queue of asynchronous calls.

Note: Currently, you may face problems if an operation is enqueued twice with different data. Some functions use the constant GPU memory, and next call may update the memory before the previous one has been finished. But calling different operations asynchronously is safe because each operation has its own constant buffer. Memory copy/upload/download/set operations to the buffers you hold are also safe.

Note: The Stream class is not thread-safe. Please use different Stream objects for different CPU threads.

void thread1()
{
   cv::cuda::Stream stream1;
   cv::cuda::func1(..., stream1);
}
 
void thread2()
{
   cv::cuda::Stream stream2;
   cv::cuda::func2(..., stream2);
}

Note: By default all CUDA routines are launched in Stream::Null() object, if the stream is not specified by user. In multi-threading environment the stream objects must be passed explicitly (see previous note).

Implementations§

creates a new asynchronous stream

creates a new asynchronous stream with custom allocator

creates a new Stream using the cudaFlags argument to determine the behaviors of the stream

Note: The cudaFlags parameter is passed to the underlying api cudaStreamCreateWithFlags() and supports the same parameter values.

   // creates an OpenCV cuda::Stream that manages an asynchronous, non-blocking,
   // non-default CUDA stream
   cv::cuda::Stream cvStream(cudaStreamNonBlocking);

return Stream object for default CUDA stream

Trait Implementations§

Wrap the specified raw pointer Read more
Return an the underlying raw pointer while consuming this wrapper. Read more
Return the underlying raw pointer. Read more
Return the underlying mutable raw pointer Read more
Executes the destructor for this type. Read more
Blocks the current CPU thread until all operations in the stream are complete.
Makes a compute stream wait on an event.
Adds a callback to be called on the host after all currently enqueued items in the stream have completed. Read more
Returns true if the current stream queue is finished. Otherwise, it returns false.
return Pointer to CUDA stream

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.