go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Data Structures | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
itk::OpenCLKernelManager Class Reference

#include <itkOpenCLKernelManager.h>

Detailed Description

OpenCL kernel manager implemented using OpenCL.

This class is responsible for managing the GPU kernel and command queue.

Note
This file was taken from ITK 4.1.0. It was modified by Denis P. Shamonin and Marius Staring. Division of Image Processing, Department of Radiology, Leiden, The Netherlands. Added functionality is described in the Insight Journal paper: http://hdl.handle.net/10380/3393

Definition at line 67 of file itkOpenCLKernelManager.h.

+ Inheritance diagram for itk::OpenCLKernelManager:

Data Structures

struct  KernelArgumentList
 

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef OpenCLKernelManager Self
 
typedef LightObject Superclass
 

Public Member Functions

OpenCLProgram BuildProgramFromSourceCode (const std::string &sourceCode, const std::string &prefixSourceCode=std::string(), const std::string &postfixSourceCode=std::string(), const std::string &extraBuildOptions=std::string())
 
OpenCLProgram BuildProgramFromSourceFile (const std::string &fileName, const std::string &prefixSourceCode=std::string(), const std::string &postfixSourceCode=std::string(), const std::string &extraBuildOptions=std::string())
 
std::vcl_size_t CreateKernel (const OpenCLProgram &program, const std::string &name)
 
virtual const char * GetClassName () const
 
OpenCLContextGetContext () const
 
OpenCLKernelGetKernel (const std::vcl_size_t kernelId)
 
OpenCLEvent LaunchKernel (const std::vcl_size_t kernelId)
 
OpenCLEvent LaunchKernel (const std::vcl_size_t kernelId, const OpenCLEventList &event_list)
 
OpenCLEvent LaunchKernel (const std::vcl_size_t kernelId, const OpenCLEventList &event_list, const OpenCLSize &global_work_size, const OpenCLSize &local_work_size=OpenCLSize::null, const OpenCLSize &global_work_offset=OpenCLSize::null)
 
OpenCLEvent LaunchKernel (const std::vcl_size_t kernelId, const OpenCLSize &global_work_size, const OpenCLSize &local_work_size=OpenCLSize::null, const OpenCLSize &global_work_offset=OpenCLSize::null)
 
void SetGlobalWorkOffsetForAllKernels (const OpenCLSize &offset)
 
void SetGlobalWorkSizeForAllKernels (const OpenCLSize &size)
 
bool SetKernelArg (const std::vcl_size_t kernelId, const cl_uint argId, const std::vcl_size_t argSize, const void *argVal)
 
bool SetKernelArgForAllKernels (const cl_uint argId, const std::vcl_size_t argSize, const void *argVal)
 
bool SetKernelArgWithImage (const std::vcl_size_t kernelId, cl_uint argId, const GPUDataManager::Pointer manager)
 
void SetLocalWorkSizeForAllKernels (const OpenCLSize &size)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

bool CheckArgumentReady (const std::vcl_size_t kernelId)
 
 OpenCLKernelManager ()
 
void ResetArguments (const std::vcl_size_t kernelIdx)
 
 ~OpenCLKernelManager () override
 

Private Member Functions

 OpenCLKernelManager (const Self &)
 
void operator= (const Self &)
 

Private Attributes

OpenCLContextm_Context
 
std::vector< std::vector< KernelArgumentList > > m_KernelArgumentReady
 
std::vector< OpenCLKernelm_Kernels
 

Member Typedef Documentation

◆ ConstPointer

typedef SmartPointer< const Self > itk::OpenCLKernelManager::ConstPointer

Definition at line 75 of file itkOpenCLKernelManager.h.

◆ Pointer

typedef SmartPointer< Self > itk::OpenCLKernelManager::Pointer

Definition at line 74 of file itkOpenCLKernelManager.h.

◆ Self

Standard class typedefs.

Definition at line 72 of file itkOpenCLKernelManager.h.

◆ Superclass

Definition at line 73 of file itkOpenCLKernelManager.h.

Constructor & Destructor Documentation

◆ OpenCLKernelManager() [1/2]

itk::OpenCLKernelManager::OpenCLKernelManager ( )
protected

◆ ~OpenCLKernelManager()

itk::OpenCLKernelManager::~OpenCLKernelManager ( )
overrideprotected

◆ OpenCLKernelManager() [2/2]

itk::OpenCLKernelManager::OpenCLKernelManager ( const Self )
private

Member Function Documentation

◆ BuildProgramFromSourceCode()

OpenCLProgram itk::OpenCLKernelManager::BuildProgramFromSourceCode ( const std::string &  sourceCode,
const std::string &  prefixSourceCode = std::string(),
const std::string &  postfixSourceCode = std::string(),
const std::string &  extraBuildOptions = std::string() 
)

◆ BuildProgramFromSourceFile()

OpenCLProgram itk::OpenCLKernelManager::BuildProgramFromSourceFile ( const std::string &  fileName,
const std::string &  prefixSourceCode = std::string(),
const std::string &  postfixSourceCode = std::string(),
const std::string &  extraBuildOptions = std::string() 
)

◆ CheckArgumentReady()

bool itk::OpenCLKernelManager::CheckArgumentReady ( const std::vcl_size_t  kernelId)
protected

◆ CreateKernel()

std::vcl_size_t itk::OpenCLKernelManager::CreateKernel ( const OpenCLProgram program,
const std::string &  name 
)

◆ GetClassName()

virtual const char * itk::OpenCLKernelManager::GetClassName ( ) const
virtual

Run-time type information (and related methods).

◆ GetContext()

OpenCLContext * itk::OpenCLKernelManager::GetContext ( ) const
inline

Returns the OpenCL context that this kernel manager was created within.

Definition at line 84 of file itkOpenCLKernelManager.h.

◆ GetKernel()

OpenCLKernel & itk::OpenCLKernelManager::GetKernel ( const std::vcl_size_t  kernelId)

Returns the .

◆ LaunchKernel() [1/4]

OpenCLEvent itk::OpenCLKernelManager::LaunchKernel ( const std::vcl_size_t  kernelId)

◆ LaunchKernel() [2/4]

OpenCLEvent itk::OpenCLKernelManager::LaunchKernel ( const std::vcl_size_t  kernelId,
const OpenCLEventList event_list 
)

◆ LaunchKernel() [3/4]

OpenCLEvent itk::OpenCLKernelManager::LaunchKernel ( const std::vcl_size_t  kernelId,
const OpenCLEventList event_list,
const OpenCLSize global_work_size,
const OpenCLSize local_work_size = OpenCLSize::null,
const OpenCLSize global_work_offset = OpenCLSize::null 
)

◆ LaunchKernel() [4/4]

OpenCLEvent itk::OpenCLKernelManager::LaunchKernel ( const std::vcl_size_t  kernelId,
const OpenCLSize global_work_size,
const OpenCLSize local_work_size = OpenCLSize::null,
const OpenCLSize global_work_offset = OpenCLSize::null 
)

◆ New()

static Pointer itk::OpenCLKernelManager::New ( )
static

Method for creation through the object factory.

◆ operator=()

void itk::OpenCLKernelManager::operator= ( const Self )
private

◆ ResetArguments()

void itk::OpenCLKernelManager::ResetArguments ( const std::vcl_size_t  kernelIdx)
protected

◆ SetGlobalWorkOffsetForAllKernels()

void itk::OpenCLKernelManager::SetGlobalWorkOffsetForAllKernels ( const OpenCLSize offset)

Sets the offset for all instances of the kernels to offset.

See also
SetGlobalWorkSizeForAllKernels(), SetLocalWorkSizeForAllKernels()

◆ SetGlobalWorkSizeForAllKernels()

void itk::OpenCLKernelManager::SetGlobalWorkSizeForAllKernels ( const OpenCLSize size)

Sets the global work size for all instances of the kernels to size.

See also
SetLocalWorkSizeForAllKernels(), SetGlobalWorkOffsetForAllKernels()

◆ SetKernelArg()

bool itk::OpenCLKernelManager::SetKernelArg ( const std::vcl_size_t  kernelId,
const cl_uint  argId,
const std::vcl_size_t  argSize,
const void *  argVal 
)

◆ SetKernelArgForAllKernels()

bool itk::OpenCLKernelManager::SetKernelArgForAllKernels ( const cl_uint  argId,
const std::vcl_size_t  argSize,
const void *  argVal 
)

◆ SetKernelArgWithImage()

bool itk::OpenCLKernelManager::SetKernelArgWithImage ( const std::vcl_size_t  kernelId,
cl_uint  argId,
const GPUDataManager::Pointer  manager 
)

◆ SetLocalWorkSizeForAllKernels()

void itk::OpenCLKernelManager::SetLocalWorkSizeForAllKernels ( const OpenCLSize size)

Sets the local work size for all instances of the kernels to size.

See also
SetGlobalWorkSizeForAllKernels(), SetGlobalWorkOffsetForAllKernels()

Field Documentation

◆ m_Context

OpenCLContext* itk::OpenCLKernelManager::m_Context
private

Definition at line 150 of file itkOpenCLKernelManager.h.

◆ m_KernelArgumentReady

std::vector< std::vector< KernelArgumentList > > itk::OpenCLKernelManager::m_KernelArgumentReady
private

Definition at line 159 of file itkOpenCLKernelManager.h.

◆ m_Kernels

std::vector< OpenCLKernel > itk::OpenCLKernelManager::m_Kernels
private

Definition at line 158 of file itkOpenCLKernelManager.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo