#include #include #include #include int main() { cl_int error; cl_platform_id *platform_ids = NULL; cl_device_id *device_ids = NULL; cl_uint platform_id_count = 0; cl_uint device_id_count = 0; cl_context_properties context_properties[4]; cl_context context; clGetPlatformIDs (0, NULL, &platform_id_count); if (platform_id_count == 0) return -1; platform_ids = (cl_platform_id*) malloc(platform_id_count * sizeof(cl_platform_id)); if (platform_ids == NULL) return -1; clGetPlatformIDs (platform_id_count, platform_ids, NULL); printf("Platforms available: %u\n", (unsigned int)platform_id_count); clGetDeviceIDs (platform_ids[0], CL_DEVICE_TYPE_ALL, 0, NULL, &device_id_count); printf("Device in Platform 0 count: %u\n", (unsigned int)device_id_count); if (device_id_count == 0) return -1; device_ids = (cl_device_id*) malloc(sizeof(cl_device_id)*device_id_count); clGetDeviceIDs (platform_ids[0], CL_DEVICE_TYPE_ALL, device_id_count, device_ids, NULL); context_properties[0] = CL_CONTEXT_PLATFORM; context_properties[1] = (cl_context_properties)platform_ids[0]; context_properties[2] = context_properties[3] = 0; context = clCreateContext (context_properties, device_id_count, device_ids, NULL, NULL, &error); return 0; }