|
CV_WRAP | Stream () |
| creates a new asynchronous stream
|
|
CV_WRAP | Stream (const Ptr< GpuMat::Allocator > &allocator) |
| creates a new asynchronous stream with custom allocator
|
|
CV_WRAP | Stream (const size_t cudaFlags) |
| creates a new Stream using the cudaFlags argument to determine the behaviors of the stream [詳解]
|
|
CV_WRAP bool | queryIfComplete () const |
| Returns true if the current stream queue is finished. Otherwise, it returns false.
|
|
CV_WRAP void | waitForCompletion () |
| Blocks the current CPU thread until all operations in the stream are complete.
|
|
CV_WRAP void | waitEvent (const Event &event) |
| Makes a compute stream wait on an event.
|
|
void | enqueueHostCallback (StreamCallback callback, void *userData) |
| Adds a callback to be called on the host after all currently enqueued items in the stream have completed. [詳解]
|
|
| operator bool_type () const |
| returns true if stream object is not default (!= 0)
|
|
CV_WRAP void * | cudaPtr () const |
| return Pointer to CUDA stream
|
|
This class encapsulates a queue of asynchronous calls.
- 覚え書き
- 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.
-
The Stream class is not thread-safe. Please use different Stream objects for different CPU threads.
void thread1()
{
cv::cuda::func1(..., stream1);
}
void thread2()
{
cv::cuda::func2(..., stream2);
}
This class encapsulates a queue of asynchronous calls.
Definition: core/cuda.hpp:849
- 覚え書き
- 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).