Usually the device_type is set by the user stating one of the following bit fields. CL_DEVICE_TYPE_CPU CL_DEVICE_TYPE_GPU CL_DEVICE_TYPE_ACCELERATOR
CL_DEVICE_TYPE_DEFAULT and CL_DEVICE_TYPE_ALL
This has to be mentioned by the user as a command line arg or in the code itself (for GPU or CPU so on). is thr anyway tht the OpenCL runtime by itself identifies the available systems? like stating there is a CPU and a GPU and we can create a context and queues based on wat we want.