12 #include <OpenCL/opencl.h>
42 cl_device_type m_type;
45 cl_device_id m_device;
47 cl_command_queue m_queue;
57 void getDeviceProps(cl_device_id device)
59 for(std::vector<openclGenProp>::iterator it = m_deviceProp.propertyList.begin(); it != m_deviceProp.propertyList.end(); ++it)
62 err = clGetDeviceInfo(device, it->param_name, it->param_value_size, it->param_value, NULL);
63 if(err != CL_SUCCESS){std::cerr<<
"Error adding property value CL!!\n";}
70 Device_CL(cl_device_id
id, cl_device_type type, cl_context context, cl_command_queue queue)
80 m_maxBlocks = (size_t)((
size_t)1<<(m_deviceProp.DEVICE_ADDRESS_BITS-1))*2-1;
91 Device_CL(cl_device_id
id, cl_device_type type, cl_context context)
100 m_maxBlocks = (size_t)((
size_t)1<<(m_deviceProp.DEVICE_ADDRESS_BITS-1))*2-1;
105 m_queue = clCreateCommandQueue(m_context, m_device, 0, &err);
106 if(err != CL_SUCCESS){std::cerr<<
"Error creating queue!!\n" <<err <<
"\n";}
114 clReleaseCommandQueue(m_queue);
115 clReleaseContext(m_context);
116 std::cout<<
"Release Device_cl\n";
144 #ifdef SKEPU_MAX_GPU_THREADS
145 return SKEPU_MAX_GPU_THREADS;
164 const cl_command_queue&
getQueue()
const {
return m_queue;}
171 cl_device_type
getType()
const {
return m_type;}
cl_ulong getSharedMemPerBlock() const
Definition: device_cl.h:137
Definition: deviceprop_cl.h:46
int getMaxThreads() const
Definition: device_cl.h:142
cl_device_type getType() const
Definition: device_cl.h:171
const cl_command_queue & getQueue() const
Definition: device_cl.h:164
cl_uint getNumComputeUnits() const
Definition: device_cl.h:127
const cl_context & getContext() const
Definition: device_cl.h:159
Device_CL(cl_device_id id, cl_device_type type, cl_context context)
Definition: device_cl.h:91
~Device_CL()
Definition: device_cl.h:112
cl_device_id getDeviceID() const
Definition: device_cl.h:176
A class representing an OpenCL device.
Definition: device_cl.h:37
Declares a struct used to store OpenCL device properties.
size_t getMaxBlockSize() const
Definition: device_cl.h:122
cl_ulong getGlobalMemSize() const
Definition: device_cl.h:132
size_t getMaxBlocks() const
Definition: device_cl.h:154