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:
Inheritance graph
[legend]

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 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 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)
 
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)
 
virtual ~OpenCLKernelManager ()
 

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

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

Definition at line 75 of file itkOpenCLKernelManager.h.

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

Definition at line 74 of file itkOpenCLKernelManager.h.

Standard class typedefs.

Definition at line 72 of file itkOpenCLKernelManager.h.

Definition at line 73 of file itkOpenCLKernelManager.h.

Constructor & Destructor Documentation

itk::OpenCLKernelManager::OpenCLKernelManager ( )
protected
virtual itk::OpenCLKernelManager::~OpenCLKernelManager ( )
protectedvirtual
itk::OpenCLKernelManager::OpenCLKernelManager ( const Self )
private

Member Function Documentation

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() 
)
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() 
)
bool itk::OpenCLKernelManager::CheckArgumentReady ( const std::vcl_size_t  kernelId)
protected
std::vcl_size_t itk::OpenCLKernelManager::CreateKernel ( const OpenCLProgram program,
const std::string &  name 
)
virtual const char* itk::OpenCLKernelManager::GetClassName ( ) const
virtual

Run-time type information (and related methods).

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.

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

Returns the .

OpenCLEvent itk::OpenCLKernelManager::LaunchKernel ( const std::vcl_size_t  kernelId)
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 
)
OpenCLEvent itk::OpenCLKernelManager::LaunchKernel ( const std::vcl_size_t  kernelId,
const OpenCLEventList event_list 
)
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 
)
static Pointer itk::OpenCLKernelManager::New ( )
static

Method for creation through the object factory.

void itk::OpenCLKernelManager::operator= ( const Self )
private
void itk::OpenCLKernelManager::ResetArguments ( const std::vcl_size_t  kernelIdx)
protected
void itk::OpenCLKernelManager::SetGlobalWorkOffsetForAllKernels ( const OpenCLSize offset)

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

See also
SetGlobalWorkSizeForAllKernels(), SetLocalWorkSizeForAllKernels()
void itk::OpenCLKernelManager::SetGlobalWorkSizeForAllKernels ( const OpenCLSize size)

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

See also
SetLocalWorkSizeForAllKernels(), SetGlobalWorkOffsetForAllKernels()
bool itk::OpenCLKernelManager::SetKernelArg ( const std::vcl_size_t  kernelId,
const cl_uint  argId,
const std::vcl_size_t  argSize,
const void *  argVal 
)
bool itk::OpenCLKernelManager::SetKernelArgForAllKernels ( const cl_uint  argId,
const std::vcl_size_t  argSize,
const void *  argVal 
)
bool itk::OpenCLKernelManager::SetKernelArgWithImage ( const std::vcl_size_t  kernelId,
cl_uint  argId,
const GPUDataManager::Pointer  manager 
)
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

OpenCLContext* itk::OpenCLKernelManager::m_Context
private

Definition at line 150 of file itkOpenCLKernelManager.h.

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

Definition at line 159 of file itkOpenCLKernelManager.h.

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

Definition at line 158 of file itkOpenCLKernelManager.h.



Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo