![]() |
ITK
5.4.0
Insight 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.
Inheritance diagram for itk::GPUKernelManager:
Collaboration diagram for itk::GPUKernelManager: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 | |
| int | CreateKernel (const char *kernelName) |
| int | GetCurrentCommandQueueID () const |
| 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) |
| const char * | GetNameOfClass () const override |
| 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) |
| bool | LoadProgramFromFile (const char *filename, const char *cPreamble="") |
| bool | LoadProgramFromString (const char *cSource, const char *cPreamble="") |
| void | SetCurrentCommandQueue (int queueid) |
| bool | SetKernelArg (int kernelIdx, cl_uint argIdx, vcl_size_t argSize, const void *argVal) |
| bool | SetKernelArgWithChar (int kernelIdx, cl_uint argIdx, char argVal) |
| bool | SetKernelArgWithDouble (int kernelIdx, cl_uint argIdx, double argVal) |
| bool | SetKernelArgWithFloat (int kernelIdx, cl_uint argIdx, float argVal) |
| bool | SetKernelArgWithImage (int kernelIdx, cl_uint argIdx, GPUDataManager *manager) |
| bool | SetKernelArgWithInt (int kernelIdx, cl_uint argIdx, int argVal) |
| bool | SetKernelArgWithLongLong (int kernelIdx, cl_uint argIdx, long long argVal) |
| bool | SetKernelArgWithShort (int kernelIdx, cl_uint argIdx, short argVal) |
| bool | SetKernelArgWithUChar (int kernelIdx, cl_uint argIdx, unsigned char argVal) |
| bool | SetKernelArgWithUInt (int kernelIdx, cl_uint argIdx, unsigned int argVal) |
| bool | SetKernelArgWithULongLong (int kernelIdx, cl_uint argIdx, unsigned long long argVal) |
| bool | SetKernelArgWithUShort (int kernelIdx, cl_uint argIdx, unsigned short argVal) |
| template<typename TGPUImageDataManager > | |
| bool | SetKernelArgWithImageAndBufferedRegion (int kernelIdx, cl_uint &argIdx, TGPUImageDataManager *manager) |
Public Member Functions inherited from itk::LightObject | |
| Pointer | Clone () const |
| virtual Pointer | CreateAnother () const |
| virtual void | Delete () |
| virtual const char * | GetNameOfClass () const |
| virtual int | GetReferenceCount () const |
| 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 () |
Protected Member Functions | |
| bool | CheckArgumentReady (int kernelIdx) |
| GPUKernelManager () | |
| void | ResetArguments (int kernelIdx) |
| ~GPUKernelManager () override | |
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 () |
Private Member Functions | |
| template<typename TArg > | |
| bool | SetTypedKernelArg (int kernelIdx, cl_uint argIdx, TArg argVal) |
Private Attributes | |
| int | m_CommandQueueId {} |
| std::vector< std::vector< KernelArgumentList > > | m_KernelArgumentReady {} |
| std::vector< cl_kernel > | m_KernelContainer {} |
| GPUContextManager * | m_Manager {} |
| cl_program | m_Program {} |
Additional Inherited Members | |
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 |
|
overrideprotected |
|
protected |
| int itk::GPUKernelManager::CreateKernel | ( | const char * | kernelName | ) |
| int itk::GPUKernelManager::GetCurrentCommandQueueID | ( | ) | const |
| 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 | ||
| ) |
|
overridevirtual |
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 | ||
| ) |
| bool itk::GPUKernelManager::LaunchKernel1D | ( | int | kernelIdx, |
| vcl_size_t | globalWorkSize, | ||
| vcl_size_t | localWorkSize | ||
| ) |
| bool itk::GPUKernelManager::LaunchKernel2D | ( | int | kernelIdx, |
| vcl_size_t | globalWorkSizeX, | ||
| vcl_size_t | globalWorkSizeY, | ||
| vcl_size_t | localWorkSizeX, | ||
| vcl_size_t | localWorkSizeY | ||
| ) |
| 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 | ||
| ) |
| bool itk::GPUKernelManager::LoadProgramFromFile | ( | const char * | filename, |
| const char * | cPreamble = "" |
||
| ) |
| bool itk::GPUKernelManager::LoadProgramFromString | ( | const char * | cSource, |
| const char * | cPreamble = "" |
||
| ) |
|
static |
|
protected |
| void itk::GPUKernelManager::SetCurrentCommandQueue | ( | int | queueid | ) |
| bool itk::GPUKernelManager::SetKernelArg | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| vcl_size_t | argSize, | ||
| const void * | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithChar | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| char | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithDouble | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| double | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithFloat | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| float | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithImage | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| GPUDataManager * | manager | ||
| ) |
|
inline |
Pass to GPU both the pixel buffer and the buffered region.
Definition at line 120 of file itkGPUKernelManager.h.
References m_KernelArgumentReady, m_KernelContainer, and itk::OpenCLCheckError().
| bool itk::GPUKernelManager::SetKernelArgWithInt | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| int | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithLongLong | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| long long | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithShort | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| short | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithUChar | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| unsigned char | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithUInt | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| unsigned int | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithULongLong | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| unsigned long long | argVal | ||
| ) |
| bool itk::GPUKernelManager::SetKernelArgWithUShort | ( | int | kernelIdx, |
| cl_uint | argIdx, | ||
| unsigned short | argVal | ||
| ) |
|
private |
|
private |
Definition at line 206 of file itkGPUKernelManager.h.
|
private |
Definition at line 209 of file itkGPUKernelManager.h.
Referenced by SetKernelArgWithImageAndBufferedRegion().
|
private |
Definition at line 208 of file itkGPUKernelManager.h.
Referenced by SetKernelArgWithImageAndBufferedRegion().
|
private |
Definition at line 205 of file itkGPUKernelManager.h.
|
private |
Definition at line 203 of file itkGPUKernelManager.h.
1.9.3