35 #ifndef __itkOpenCLKernelManager_h 36 #define __itkOpenCLKernelManager_h 38 #include <itkLightObject.h> 39 #include <itkObjectFactory.h> 89 OpenCLEvent LaunchKernel(
const std::size_t kernelId );
91 OpenCLEvent LaunchKernel(
const std::size_t kernelId,
98 OpenCLEvent LaunchKernel(
const std::size_t kernelId,
104 std::size_t CreateKernel(
const OpenCLProgram & program,
const std::string & name );
106 OpenCLProgram BuildProgramFromSourceCode(
const std::string & sourceCode,
107 const std::string & prefixSourceCode = std::string(),
108 const std::string & postfixSourceCode = std::string(),
109 const std::string & extraBuildOptions = std::string() );
111 OpenCLProgram BuildProgramFromSourceFile(
const std::string & fileName,
112 const std::string & prefixSourceCode = std::string(),
113 const std::string & postfixSourceCode = std::string(),
114 const std::string & extraBuildOptions = std::string() );
118 void SetGlobalWorkSizeForAllKernels(
const OpenCLSize & size );
122 void SetLocalWorkSizeForAllKernels(
const OpenCLSize & size );
126 void SetGlobalWorkOffsetForAllKernels(
const OpenCLSize & offset );
128 bool SetKernelArg(
const std::size_t kernelId,
129 const cl_uint argId,
const std::size_t argSize,
const void * argVal );
131 bool SetKernelArgForAllKernels(
const cl_uint argId,
132 const std::size_t argSize,
const void * argVal );
134 bool SetKernelArgWithImage(
const std::size_t kernelId, cl_uint argId,
const GPUDataManager::Pointer manager );
141 bool CheckArgumentReady(
const std::size_t kernelId );
143 void ResetArguments(
const std::size_t kernelIdx );
148 void operator=(
const Self & );
GPUDataManager::Pointer m_GPUDataManager
SmartPointer< Self > Pointer
OpenCLEventList class represents a list of OpenCLEvent objects.
The OpenCLSize class defines the size of an item of work for an OpenCL kernel.
OpenCL kernel manager implemented using OpenCL.
The OpenCLContext class represents an OpenCL context.
OpenCLContext * m_Context
std::vector< OpenCLKernel > m_Kernels
std::vector< std::vector< KernelArgumentList > > m_KernelArgumentReady
SmartPointer< const Self > ConstPointer
OpenCLContext * GetContext() const
The OpenCLKernel class represents an executable entry point function in an OpenCL program...
The OpenCLProgram class represents an OpenCL program object.
OpenCLEvent class represents an OpenCL event object.