OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::ocl::Kernel 類參考

#include <opencv2/core/ocl.hpp>

cv::ocl::Kernel 的協作圖

公共成員函式

 Kernel () CV_NOEXCEPT
 
 Kernel (const char *kname, const Program &prog)
 
 Kernel (const char *kname, const ProgramSource &prog, const String &buildopts=String(), String *errmsg=0)
 
 Kernel (const Kernel &k)
 
 Kernel (Kernel &&k) CV_NOEXCEPT
 
 ~Kernel ()
 
template<typename... _Tps>
Kernelargs (const _Tps &... kernel_args)
 設定 OpenCL Kernel 引數。 避免直接使用 set(i, ...) 方法。
 
bool compileWorkGroupSize (size_t wsz[]) const
 
bool create (const char *kname, const Program &prog)
 
bool create (const char *kname, const ProgramSource &prog, const String &buildopts, String *errmsg=0)
 
bool empty () const
 
size_t localMemSize () const
 
Kerneloperator= (const Kernel &k)
 
Kerneloperator= (Kernel &&k) CV_NOEXCEPT
 
size_t preferedWorkGroupSizeMultiple () const
 
void * ptr () const
 
bool run (int dims, size_t globalsize[], size_t localsize[], bool sync, const Queue &q=Queue())
 執行 OpenCL kernel(globalsize 值可能會被調整)
 
bool run_ (int dims, size_t globalsize[], size_t localsize[], bool sync, const Queue &q=Queue())
 執行 OpenCL kernel。
 
int64 runProfiling (int dims, size_t globalsize[], size_t localsize[], const Queue &q=Queue())
 類似於同步的 run_() 呼叫,並返回 kernel 執行時間。
 
bool runTask (bool sync, const Queue &q=Queue())
 
template<typename _Tp >
int set (int i, const _Tp &value)
 
int set (int i, const Image2D &image2D)
 
int set (int i, const KernelArg &arg)
 
int set (int i, const UMat &m)
 
int set (int i, const void *value, size_t sz)
 
size_t workGroupSize () const
 

保護成員函式

template<typename _Tp0 >
int set_args_ (int i, const _Tp0 &a0)
 
template<typename _Tp0 , typename... _Tps>
int set_args_ (int i, const _Tp0 &a0, const _Tps &... rest_args)
 

保護屬性

Impl * p
 

建構函式 & 解構函式文件

◆ Kernel() [1/5]

cv::ocl::Kernel::Kernel ( )

◆ Kernel() [2/5]

cv::ocl::Kernel::Kernel ( const char * kname,
const Program & prog )

◆ Kernel() [3/5]

cv::ocl::Kernel::Kernel ( const char * kname,
const ProgramSource & prog,
const String & buildopts = String(),
String * errmsg = 0 )

◆ ~Kernel()

cv::ocl::Kernel::~Kernel ( )

◆ Kernel() [4/5]

cv::ocl::Kernel::Kernel ( const Kernel & k)

◆ Kernel() [5/5]

cv::ocl::Kernel::Kernel ( Kernel(核心) && k)

成員函式文件

◆ args()

template<typename... _Tps>
Kernel & cv::ocl::Kernel::args ( const _Tps &... kernel_args)
inline

設定 OpenCL Kernel 引數。 避免直接使用 set(i, ...) 方法。

bool ok = kernel
.args(
srcUMat, dstUMat,
(float)some_float_param
).run(ndims, globalSize, localSize);
if (!ok) return false;

◆ compileWorkGroupSize()

bool cv::ocl::Kernel::compileWorkGroupSize ( size_t wsz[]) const

◆ create() [1/2]

bool cv::ocl::Kernel::create ( const char * kname,
const Program & prog )

◆ create() [2/2]

bool cv::ocl::Kernel::create ( const char * kname,
const ProgramSource & prog,
const String & buildopts,
String * errmsg = 0 )

◆ empty()

bool cv::ocl::Kernel::empty ( ) const

◆ localMemSize()

size_t cv::ocl::Kernel::localMemSize ( ) const

◆ operator=() [1/2]

Kernel & cv::ocl::Kernel::operator= ( const Kernel & k)

◆ operator=() [2/2]

Kernel & cv::ocl::Kernel::operator= ( Kernel(核心) && k)

◆ preferedWorkGroupSizeMultiple()

size_t cv::ocl::Kernel::preferedWorkGroupSizeMultiple ( ) const

◆ ptr()

void * cv::ocl::Kernel::ptr ( ) const

◆ run()

bool cv::ocl::Kernel::run ( int dims,
size_t globalsize[],
size_t localsize[],
bool sync,
const Queue & q = Queue() )

執行 OpenCL kernel(globalsize 值可能會被調整)

引數
dims工作問題維度。 它是 globalsize 和 localsize 的長度。 它可以是 1、2 或 3。
globalsize每個維度的工作項。 它不是傳遞給 OpenCL 的最終 globalsize。 每個維度都將調整為最接近的可被 localsize 中對應值整除的整數。 如果 localsize 為 NULL,它仍將根據 dims 進行調整。 調整後的值大於或等於原始值。
localsize每個維度的工作組大小。
sync指定是否等待 OpenCL 計算完成後再返回。
q命令佇列
注意
如果您的 kernel 程式碼不支援調整後的 globalsize,請使用 run_()

◆ run_()

bool cv::ocl::Kernel::run_ ( int dims,
size_t globalsize[],
size_t localsize[],
bool sync,
const Queue & q = Queue() )

執行 OpenCL kernel。

引數
dims工作問題維度。 它是 globalsize 和 localsize 的長度。 它可以是 1、2 或 3。
globalsize每個維度的工作項。 此值將傳遞給 OpenCL 而不會更改。
localsize每個維度的工作組大小。
sync指定是否等待 OpenCL 計算完成後再返回。
q命令佇列

◆ runProfiling()

int64 cv::ocl::Kernel::runProfiling ( int dims,
size_t globalsize[],
size_t localsize[],
const Queue & q = Queue() )

類似於同步的 run_() 呼叫,並返回 kernel 執行時間。

可以單獨使用 OpenCL 命令佇列(帶有 CL_QUEUE_PROFILING_ENABLE)

返回
以納秒為單位的執行時間,如果出錯則為負數

◆ runTask()

bool cv::ocl::Kernel::runTask ( bool sync,
const Queue & q = Queue() )

◆ set() [1/5]

template<typename _Tp >
int cv::ocl::Kernel::set ( int i,
const _Tp &  )
inline

◆ set() [2/5]

int cv::ocl::Kernel::set ( int i,
const Image2D & image2D )

◆ set() [3/5]

int cv::ocl::Kernel::set ( int i,
const KernelArg & arg )

◆ set() [4/5]

int cv::ocl::Kernel::set ( int i,
const UMat & m )

◆ set() [5/5]

int cv::ocl::Kernel::set ( int i,
const void * ,
size_t sz )

◆ set_args_() [1/2]

template<typename _Tp0 >
int cv::ocl::Kernel::set_args_ ( int i,
const _Tp0 & a0 )
inlineprotected

◆ set_args_() [2/2]

template<typename _Tp0 , typename... _Tps>
int cv::ocl::Kernel::set_args_ ( int i,
const _Tp0 & a0,
const _Tps &... rest_args )
inlineprotected
此函式的呼叫圖如下

◆ workGroupSize()

size_t cv::ocl::Kernel::workGroupSize ( ) const

成員資料文件

◆ p

Impl* cv::ocl::Kernel::p
保護

此類的文件是從以下檔案生成的