OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

このクラスは非同期呼び出しのキューをカプセル化する。 続き...

#include <opencv2/core/cuda.hpp>

Collaboration diagram for cv::cuda::Stream:

公開型

typedef void(*) StreamCallback(int status, void *userData)
 

公開メンバ関数

 Stream ()
 新しい非同期ストリームを作成する
 
 Stream (const Ptr< GpuMat::Allocator > &allocator)
 カスタムアロケータを用いて新しい非同期ストリームを作成する
 
 Stream (const size_t cudaFlags)
 cudaFlags引数を用いてストリームの振る舞いを決定し、新しい Stream を作成する
 
void * cudaPtr () const
 CUDAストリームへのポインタを返す
 
void enqueueHostCallback (StreamCallback callback, void *userData)
 ストリームに現在キューイングされているすべての項目が完了した後に、ホスト上で呼び出されるコールバックを追加する。
 
 operator bool_type () const
 ストリームオブジェクトがデフォルトでない(!= 0)場合にtrueを返す
 
bool queryIfComplete () const
 現在のストリームキューが完了している場合はtrueを返す。そうでなければfalseを返す。
 
void waitEvent (const Event &event)
 コンピュートストリームをイベント待ちにする。
 
void waitForCompletion ()
 ストリーム内のすべての操作が完了するまで、現在のCPUスレッドをブロックする。
 

静的公開メンバ関数

static StreamNull ()
 デフォルトのCUDAストリームに対応する Stream オブジェクトを返す
 

フレンド

class BufferPool
 
class DefaultDeviceInitializer
 
struct StreamAccessor
 

詳細説明

このクラスは非同期呼び出しのキューをカプセル化する。

覚え書き
現在、異なるデータで同じ操作を2回キューイングすると問題が発生する可能性がある。一部の関数は定数GPUメモリを使用するため、前の呼び出しが完了する前に次の呼び出しがメモリを更新する場合がある。ただし、各操作はそれぞれ独自の定数バッファを持つため、異なる操作を非同期に呼び出すのは安全である。保持しているバッファに対するメモリのコピー/アップロード/ダウンロード/設定操作も安全である。
Stream クラスはスレッドセーフではない。異なるCPUスレッドには異なる Stream オブジェクトを使用すること。
void thread1()
{
cv::cuda::func1(..., stream1);
}
void thread2()
{
cv::cuda::func2(..., stream2);
}
This class encapsulates a queue of asynchronous calls.
Definition 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 object>
cv.cuda.Stream(allocator) -> <cuda_Stream object>
cv.cuda.Stream(cudaFlags) -> <cuda_Stream object>

新しい非同期ストリームを作成する

◆ Stream() [2/3]

cv::cuda::Stream::Stream ( const Ptr< GpuMat::Allocator > & allocator)
Python:
cv.cuda.Stream() -> <cuda_Stream object>
cv.cuda.Stream(allocator) -> <cuda_Stream object>
cv.cuda.Stream(cudaFlags) -> <cuda_Stream object>

カスタムアロケータを用いて新しい非同期ストリームを作成する

◆ Stream() [3/3]

cv::cuda::Stream::Stream ( const size_t cudaFlags)
Python:
cv.cuda.Stream() -> <cuda_Stream object>
cv.cuda.Stream(allocator) -> <cuda_Stream object>
cv.cuda.Stream(cudaFlags) -> <cuda_Stream object>

cudaFlags引数を用いてストリームの振る舞いを決定し、新しい Stream を作成する

覚え書き
cudaFlags引数は内部のAPI cudaStreamCreateWithFlags() に渡され、同じ引数値をサポートする。
// creates an OpenCV cuda::Stream that manages an asynchronous, non-blocking,
// non-default CUDA stream
cv::cuda::Stream cvStream(cudaStreamNonBlocking);

メンバ関数詳解

◆ cudaPtr()

void * cv::cuda::Stream::cudaPtr ( ) const
Python:
cv.cuda.Stream.cudaPtr() -> retval

CUDAストリームへのポインタを返す

◆ 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

デフォルトのCUDAストリームに対応する Stream オブジェクトを返す

◆ 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) -> None

コンピュートストリームをイベント待ちにする。

◆ waitForCompletion()

void cv::cuda::Stream::waitForCompletion ( )
Python:
cv.cuda.Stream.waitForCompletion() -> None

ストリーム内のすべての操作が完了するまで、現在のCPUスレッドをブロックする。

Friends And Related Symbol Documentation

◆ BufferPool

friend class BufferPool
friend

◆ DefaultDeviceInitializer

friend class DefaultDeviceInitializer
friend

◆ StreamAccessor

friend struct StreamAccessor
friend

このクラス詳解は次のファイルから抽出されました: