This class encapsulates a queue of asynchronous calls.
More...
#include "cuda.hpp"
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. :
typedef void(* cv::cuda::Stream::StreamCallback) (int status, void *userData) |
cv::cuda::Stream::Stream |
( |
| ) |
|
creates a new asynchronous stream
void cv::cuda::Stream::enqueueHostCallback |
( |
StreamCallback |
callback, |
|
|
void * |
userData |
|
) |
| |
Adds a callback to be called on the host after all currently enqueued items in the stream have completed.
- Note
- Callbacks must not make any CUDA API calls. Callbacks must not perform any synchronization that may depend on outstanding device work or other callbacks that are not mandated to run earlier. Callbacks without a mandated order (in independent streams) execute in undefined order and may be serialized.
static Stream& cv::cuda::Stream::Null |
( |
| ) |
|
|
static |
return Stream object for default CUDA stream
cv::cuda::Stream::operator bool_type |
( |
| ) |
const |
returns true if stream object is not default (!= 0)
bool cv::cuda::Stream::queryIfComplete |
( |
| ) |
const |
Returns true if the current stream queue is finished. Otherwise, it returns false.
void cv::cuda::Stream::waitEvent |
( |
const Event & |
event | ) |
|
Makes a compute stream wait on an event.
void cv::cuda::Stream::waitForCompletion |
( |
| ) |
|
Blocks the current CPU thread until all operations in the stream are complete.
friend class DefaultDeviceInitializer |
|
friend |
The documentation for this class was generated from the following file: