此类别封装了一个异步调用队列。 更多...
#include <opencv2/core/cuda.hpp>
此类别封装了一个异步调用队列。
- 注意
- 目前,如果使用不同数据两次将操作入队,您可能会遇到问题。某些函数使用常量 GPU 内存,下一次调用可能会在上次调用完成之前更新内存。但异步调用不同操作是安全的,因为每个操作都有自己的常量缓冲区。对您持有的缓冲区进行内存复制/上传/下载/设置操作也是安全的。
- Stream 类不是线程安全的。请为不同的 CPU 线程使用不同的 Stream 对象。
void thread1()
{
cv::cuda::func1(..., stream1);
}
void thread2()
{
cv::cuda::func2(..., stream2);
}
此类别封装了一个异步调用队列。
定义 cuda.hpp:917
- 注意
- 默认情况下,如果用户未指定流,所有 CUDA 例程都在 Stream::Null() 对象中启动。在多线程环境中,必须显式传递流对象(参见上一条注释)。
◆ StreamCallback
| void(*) cv::cuda::Stream::StreamCallback(int status, void *userData) |
◆ Stream() [1/3]
| cv::cuda::Stream::Stream |
( |
| ) |
|
| Python |
|---|
| cv.cuda.Stream( | | ) -> | <cuda_Stream 对象> |
| cv.cuda.Stream( | 分配器 | ) -> | <cuda_Stream 对象> |
| cv.cuda.Stream( | cudaFlags | ) -> | <cuda_Stream 对象> |
◆ Stream() [2/3]
| Python |
|---|
| cv.cuda.Stream( | | ) -> | <cuda_Stream 对象> |
| cv.cuda.Stream( | 分配器 | ) -> | <cuda_Stream 对象> |
| cv.cuda.Stream( | cudaFlags | ) -> | <cuda_Stream 对象> |
◆ Stream() [3/3]
| cv::cuda::Stream::Stream |
( |
const size_t | cudaFlags | ) |
|
| Python |
|---|
| cv.cuda.Stream( | | ) -> | <cuda_Stream 对象> |
| cv.cuda.Stream( | 分配器 | ) -> | <cuda_Stream 对象> |
| cv.cuda.Stream( | cudaFlags | ) -> | <cuda_Stream 对象> |
使用 cudaFlags 参数创建一个新的 Stream,以确定流的行为
- 注意
- cudaFlags 参数被传递给底层的 cudaStreamCreateWithFlags() API,并支持相同的参数值。
◆ cudaPtr()
| void * cv::cuda::Stream::cudaPtr |
( |
| ) |
const |
| Python |
|---|
| cv.cuda.Stream.cudaPtr( | | ) -> | retval |
◆ enqueueHostCallback()
| void cv::cuda::Stream::enqueueHostCallback |
( |
StreamCallback | callback, |
|
|
void * | userData ) |
在流中所有当前排队项目完成后,添加一个将在主机上调用的回调。
- 注意
- 回调不得进行任何 CUDA API 调用。回调不得执行任何可能依赖于未完成设备工作或其他未强制提前运行的回调的同步。没有强制顺序的回调(在独立流中)以未定义顺序执行,并且可能会被序列化。
◆ Null()
| static Stream & cv::cuda::Stream::Null |
( |
| ) |
|
|
static |
| Python |
|---|
| cv.cuda.Stream.Null( | | ) -> | retval |
| cv.cuda.Stream_Null( | | ) -> | retval |
◆ operator bool_type()
| cv::cuda::Stream::operator bool_type |
( |
| ) |
const |
如果流对象不是默认值(!= 0),则返回 true
◆ queryIfComplete()
| bool cv::cuda::Stream::queryIfComplete |
( |
| ) |
const |
| Python |
|---|
| cv.cuda.Stream.queryIfComplete( | | ) -> | retval |
如果当前流队列已完成,则返回 true。否则,返回 false。
◆ waitEvent()
| void cv::cuda::Stream::waitEvent |
( |
const Event & | event | ) |
|
| Python |
|---|
| cv.cuda.Stream.waitEvent( | event | ) -> | 无 |
◆ waitForCompletion()
| void cv::cuda::Stream::waitForCompletion |
( |
| ) |
|
| Python |
|---|
| cv.cuda.Stream.waitForCompletion( | | ) -> | 无 |
◆ BufferPool
◆ DefaultDeviceInitializer
| 友元类 DefaultDeviceInitializer |
|
friend |
◆ StreamAccessor
此类的文档是从以下文件生成的: