ITK  5.0.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
itk::GPUKernelManager Class Reference

#include <itkGPUKernelManager.h>

+ Inheritance diagram for itk::GPUKernelManager:
+ Collaboration diagram for itk::GPUKernelManager:

Detailed Description

GPU kernel manager implemented using OpenCL.

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

Definition at line 44 of file itkGPUKernelManager.h.

Classes

struct  KernelArgumentList
 

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = GPUKernelManager
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
int CreateKernel (const char *kernelName)
 
cl_int GetDeviceInfo (cl_kernel_work_group_info paramName, vcl_size_t argSize, void *argValue)
 
cl_int GetKernelWorkGroupInfo (int kernelIdx, cl_kernel_work_group_info paramName, void *value)
 
virtual const char * GetNameOfClass () const
 
bool LoadProgramFromFile (const char *filename, const char *cPreamble="")
 
bool LoadProgramFromString (const char *cSource, const char *cPreamble="")
 
bool SetKernelArg (int kernelIdx, cl_uint argIdx, vcl_size_t argSize, const void *argVal)
 
bool SetKernelArgWithImage (int kernelIdx, cl_uint argIdx, GPUDataManager::Pointer manager)
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const noexcept
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 
cl_program m_Program
 
GPUContextManagerm_Manager
 
int m_CommandQueueId
 
std::vector< cl_kernel > m_KernelContainer
 
std::vector< std::vector
< KernelArgumentList > > 
m_KernelArgumentReady
 
template<typename TGPUImageDataManager >
bool SetKernelArgWithImageAndBufferedRegion (int kernelIdx, cl_uint &argIdx, TGPUImageDataManager *manager)
 
bool LaunchKernel (int kernelIdx, int dim, vcl_size_t *globalWorkSize, vcl_size_t *localWorkSize)
 
bool LaunchKernel1D (int kernelIdx, vcl_size_t globalWorkSize, vcl_size_t localWorkSize)
 
bool LaunchKernel2D (int kernelIdx, vcl_size_t globalWorkSizeX, vcl_size_t globalWorkSizeY, vcl_size_t localWorkSizeX, vcl_size_t localWorkSizeY)
 
bool LaunchKernel3D (int kernelIdx, vcl_size_t globalWorkSizeX, vcl_size_t globalWorkSizeY, vcl_size_t globalWorkSizeZ, vcl_size_t localWorkSizeX, vcl_size_t localWorkSizeY, vcl_size_t localWorkSizeZ)
 
void SetCurrentCommandQueue (int queueid)
 
int GetCurrentCommandQueueID ()
 
 GPUKernelManager ()
 
 ~GPUKernelManager () override
 
bool CheckArgumentReady (int kernelIdx)
 
void ResetArguments (int kernelIdx)
 

Additional Inherited Members

- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount
 

Member Typedef Documentation

Definition at line 58 of file itkGPUKernelManager.h.

Definition at line 57 of file itkGPUKernelManager.h.

Definition at line 55 of file itkGPUKernelManager.h.

Definition at line 56 of file itkGPUKernelManager.h.

Constructor & Destructor Documentation

itk::GPUKernelManager::GPUKernelManager ( )
protected

Pass to GPU both the pixel buffer and the buffered region.

itk::GPUKernelManager::~GPUKernelManager ( )
overrideprotected

Pass to GPU both the pixel buffer and the buffered region.

Member Function Documentation

bool itk::GPUKernelManager::CheckArgumentReady ( int  kernelIdx)
protected

Pass to GPU both the pixel buffer and the buffered region.

virtual::itk::LightObject::Pointer itk::GPUKernelManager::CreateAnother ( ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::LightObject.

int itk::GPUKernelManager::CreateKernel ( const char *  kernelName)
int itk::GPUKernelManager::GetCurrentCommandQueueID ( )

Pass to GPU both the pixel buffer and the buffered region.

cl_int itk::GPUKernelManager::GetDeviceInfo ( cl_kernel_work_group_info  paramName,
vcl_size_t  argSize,
void *  argValue 
)
cl_int itk::GPUKernelManager::GetKernelWorkGroupInfo ( int  kernelIdx,
cl_kernel_work_group_info  paramName,
void *  value 
)
virtual const char* itk::GPUKernelManager::GetNameOfClass ( ) const
virtual

Return the name of this class as a string. Used by the object factory (implemented in New()) to instantiate objects of a named type. Also used for debugging and other output information.

Reimplemented from itk::LightObject.

bool itk::GPUKernelManager::LaunchKernel ( int  kernelIdx,
int  dim,
vcl_size_t *  globalWorkSize,
vcl_size_t *  localWorkSize 
)

Pass to GPU both the pixel buffer and the buffered region.

bool itk::GPUKernelManager::LaunchKernel1D ( int  kernelIdx,
vcl_size_t  globalWorkSize,
vcl_size_t  localWorkSize 
)

Pass to GPU both the pixel buffer and the buffered region.

bool itk::GPUKernelManager::LaunchKernel2D ( int  kernelIdx,
vcl_size_t  globalWorkSizeX,
vcl_size_t  globalWorkSizeY,
vcl_size_t  localWorkSizeX,
vcl_size_t  localWorkSizeY 
)

Pass to GPU both the pixel buffer and the buffered region.

bool itk::GPUKernelManager::LaunchKernel3D ( int  kernelIdx,
vcl_size_t  globalWorkSizeX,
vcl_size_t  globalWorkSizeY,
vcl_size_t  globalWorkSizeZ,
vcl_size_t  localWorkSizeX,
vcl_size_t  localWorkSizeY,
vcl_size_t  localWorkSizeZ 
)

Pass to GPU both the pixel buffer and the buffered region.

bool itk::GPUKernelManager::LoadProgramFromFile ( const char *  filename,
const char *  cPreamble = "" 
)
bool itk::GPUKernelManager::LoadProgramFromString ( const char *  cSource,
const char *  cPreamble = "" 
)
static Pointer itk::GPUKernelManager::New ( )
static
void itk::GPUKernelManager::ResetArguments ( int  kernelIdx)
protected

Pass to GPU both the pixel buffer and the buffered region.

void itk::GPUKernelManager::SetCurrentCommandQueue ( int  queueid)

Pass to GPU both the pixel buffer and the buffered region.

bool itk::GPUKernelManager::SetKernelArg ( int  kernelIdx,
cl_uint  argIdx,
vcl_size_t  argSize,
const void *  argVal 
)
bool itk::GPUKernelManager::SetKernelArgWithImage ( int  kernelIdx,
cl_uint  argIdx,
GPUDataManager::Pointer  manager 
)
template<typename TGPUImageDataManager >
bool itk::GPUKernelManager::SetKernelArgWithImageAndBufferedRegion ( int  kernelIdx,
cl_uint &  argIdx,
TGPUImageDataManager *  manager 
)
inline

Pass to GPU both the pixel buffer and the buffered region.

Definition at line 84 of file itkGPUKernelManager.h.

References m_KernelArgumentReady, m_KernelContainer, and itk::OpenCLCheckError().

Member Data Documentation

int itk::GPUKernelManager::m_CommandQueueId
private

Pass to GPU both the pixel buffer and the buffered region.

Definition at line 152 of file itkGPUKernelManager.h.

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

Pass to GPU both the pixel buffer and the buffered region.

Definition at line 155 of file itkGPUKernelManager.h.

Referenced by SetKernelArgWithImageAndBufferedRegion().

std::vector< cl_kernel > itk::GPUKernelManager::m_KernelContainer
private

Pass to GPU both the pixel buffer and the buffered region.

Definition at line 154 of file itkGPUKernelManager.h.

Referenced by SetKernelArgWithImageAndBufferedRegion().

GPUContextManager* itk::GPUKernelManager::m_Manager
private

Pass to GPU both the pixel buffer and the buffered region.

Definition at line 151 of file itkGPUKernelManager.h.

cl_program itk::GPUKernelManager::m_Program
private

Pass to GPU both the pixel buffer and the buffered region.

Definition at line 149 of file itkGPUKernelManager.h.


The documentation for this class was generated from the following file: