ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkGPUKernelManager.h>
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 |
GPUContextManager * | m_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 |
using itk::GPUKernelManager::ConstPointer = SmartPointer<const Self> |
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.
|
protected |
Pass to GPU both the pixel buffer and the buffered region.
|
overrideprotected |
Pass to GPU both the pixel buffer and the buffered region.
|
protected |
Pass to GPU both the pixel buffer and the buffered region.
|
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 |
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 |
|
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 | ||
) |
|
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().
|
private |
Pass to GPU both the pixel buffer and the buffered region.
Definition at line 152 of file itkGPUKernelManager.h.
|
private |
Pass to GPU both the pixel buffer and the buffered region.
Definition at line 155 of file itkGPUKernelManager.h.
Referenced by SetKernelArgWithImageAndBufferedRegion().
|
private |
Pass to GPU both the pixel buffer and the buffered region.
Definition at line 154 of file itkGPUKernelManager.h.
Referenced by SetKernelArgWithImageAndBufferedRegion().
|
private |
Pass to GPU both the pixel buffer and the buffered region.
Definition at line 151 of file itkGPUKernelManager.h.
|
private |
Pass to GPU both the pixel buffer and the buffered region.
Definition at line 149 of file itkGPUKernelManager.h.