#include #define ulNULL ((unsigned long int * ) NULL) #ifdef __APPLE__ #include #else #include #endif #define CL_CHECK(_expr) \ do { \ cl_int _err = _expr; \ if (_err == CL_SUCCESS) \ break; \ fprintf(stderr, "OpenCL Error: '%s' returned %d!\n", #_expr, (int)_err); \ abort(); \ } while (0) #define CL_CHECK_ERR(_expr) \ ({ \ cl_int _err = CL_INVALID_VALUE; \ typeof(_expr) _ret = _expr; \ if (_err != CL_SUCCESS) { \ fprintf(stderr, "OpenCL Error: '%s' returned %d!\n", #_expr, (int)_err); \ abort(); \ } \ _ret; \ }) void cl_list_all_devices() { int i; cl_platform_id platforms[100]; cl_uint platforms_n = 0; int plat; // get list of platform IDs (platform == implementation of OpenCL) CL_CHECK(clGetPlatformIDs(100, platforms, &platforms_n)); // print out information strings for each found platform printf("====================================\n"); printf("=== %d OpenCL platform(s) found: ===\n", platforms_n); printf("====================================\n\n"); // print out information for each platform for (plat=0; plat