#include #include #include #include #include // OpenCL header files #ifdef __APPLE__ #include #include #include #include #else #include #include #include #include #endif using namespace std; class OpenCL { public: OpenCL(int displayOutput); ~OpenCL(); void init(int platform_idx, int device_idx, int use_gpu); void createKernel(string kernelName, int device_idx); cl_kernel kernel(string kernelName); void gwSize(size_t theSize); cl_context ctxt(); cl_command_queue q(); void launch(string toLaunch); size_t localSize(); private: int VERBOSE; // Display output text from various functions? size_t lwsize; // Local work size. size_t gwsize; // Global work size. cl_int ret; // Holds the error code returned by cl functions. //cl_platform_id platform_id[100]; cl_device_id device_id[100]; map kernelArray; cl_context context; cl_command_queue command_queue; cl_program program; void getDevices(int platform_idx, int device_idx, cl_device_type deviceType); void buildKernel(int device_idx); };