此類別封裝了一個非同步呼叫佇列。 更多...
#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( | | ) -> | 無 |
阻塞當前 CPU 執行緒,直到流中的所有操作完成。
◆ BufferPool
◆ DefaultDeviceInitializer
| 友元類 DefaultDeviceInitializer |
|
friend |
◆ StreamAccessor
此類的文件是從以下檔案生成的: