|
@@ -30,160 +30,17 @@
|
|
extern "C" {
|
|
extern "C" {
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#define STARPU_OPENCL_DISPLAY_ERROR(status) \
|
|
|
|
- do { \
|
|
|
|
- const char *errormsg; \
|
|
|
|
- switch (status) { \
|
|
|
|
- case CL_SUCCESS: \
|
|
|
|
- errormsg = "success"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_DEVICE_NOT_FOUND: \
|
|
|
|
- errormsg = "Device not found"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_DEVICE_NOT_AVAILABLE: \
|
|
|
|
- errormsg = "Device not available"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_COMPILER_NOT_AVAILABLE: \
|
|
|
|
- errormsg = "Compiler not available"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_MEM_OBJECT_ALLOCATION_FAILURE: \
|
|
|
|
- errormsg = "Memory object allocation failure"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_OUT_OF_RESOURCES: \
|
|
|
|
- errormsg = "Out of resources"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_OUT_OF_HOST_MEMORY: \
|
|
|
|
- errormsg = "Out of host memory"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_PROFILING_INFO_NOT_AVAILABLE: \
|
|
|
|
- errormsg = "Profiling info not available"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_MEM_COPY_OVERLAP: \
|
|
|
|
- errormsg = "Memory copy overlap"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_IMAGE_FORMAT_MISMATCH: \
|
|
|
|
- errormsg = "Image format mismatch"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_IMAGE_FORMAT_NOT_SUPPORTED: \
|
|
|
|
- errormsg = "Image format not supported"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_BUILD_PROGRAM_FAILURE: \
|
|
|
|
- errormsg = "Build program failure"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_MAP_FAILURE: \
|
|
|
|
- errormsg = "Map failure"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_VALUE: \
|
|
|
|
- errormsg = "Invalid value"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_DEVICE_TYPE: \
|
|
|
|
- errormsg = "Invalid device type"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_PLATFORM: \
|
|
|
|
- errormsg = "Invalid platform"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_DEVICE: \
|
|
|
|
- errormsg = "Invalid device"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_CONTEXT: \
|
|
|
|
- errormsg = "Invalid context"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_QUEUE_PROPERTIES: \
|
|
|
|
- errormsg = "Invalid queue properties"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_COMMAND_QUEUE: \
|
|
|
|
- errormsg = "Invalid command queue"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_HOST_PTR: \
|
|
|
|
- errormsg = "Invalid host pointer"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_MEM_OBJECT: \
|
|
|
|
- errormsg = "Invalid memory object"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: \
|
|
|
|
- errormsg = "Invalid image format descriptor"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_IMAGE_SIZE: \
|
|
|
|
- errormsg = "Invalid image size"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_SAMPLER: \
|
|
|
|
- errormsg = "Invalid sampler"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_BINARY: \
|
|
|
|
- errormsg = "Invalid binary"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_BUILD_OPTIONS: \
|
|
|
|
- errormsg = "Invalid build options"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_PROGRAM: \
|
|
|
|
- errormsg = "Invalid program"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_PROGRAM_EXECUTABLE: \
|
|
|
|
- errormsg = "Invalid program executable"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_KERNEL_NAME: \
|
|
|
|
- errormsg = "Invalid kernel name"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_KERNEL_DEFINITION: \
|
|
|
|
- errormsg = "Invalid kernel definition"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_KERNEL: \
|
|
|
|
- errormsg = "Invalid kernel"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_ARG_INDEX: \
|
|
|
|
- errormsg = "Invalid argument index"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_ARG_VALUE: \
|
|
|
|
- errormsg = "Invalid argument value"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_ARG_SIZE: \
|
|
|
|
- errormsg = "Invalid argument size"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_KERNEL_ARGS: \
|
|
|
|
- errormsg = "Invalid kernel arguments"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_WORK_DIMENSION: \
|
|
|
|
- errormsg = "Invalid work dimension"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_WORK_GROUP_SIZE: \
|
|
|
|
- errormsg = "Invalid work group size"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_WORK_ITEM_SIZE: \
|
|
|
|
- errormsg = "Invalid work item size"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_GLOBAL_OFFSET: \
|
|
|
|
- errormsg = "Invalid global offset"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_EVENT_WAIT_LIST: \
|
|
|
|
- errormsg = "Invalid event wait list"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_EVENT: \
|
|
|
|
- errormsg = "Invalid event"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_OPERATION: \
|
|
|
|
- errormsg = "Invalid operation"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_GL_OBJECT: \
|
|
|
|
- errormsg = "Invalid GL object"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_BUFFER_SIZE: \
|
|
|
|
- errormsg = "Invalid buffer size"; \
|
|
|
|
- break; \
|
|
|
|
- case CL_INVALID_MIP_LEVEL: \
|
|
|
|
- errormsg = "Invalid MIP level"; \
|
|
|
|
- break; \
|
|
|
|
- default: \
|
|
|
|
- errormsg = "unknown error"; \
|
|
|
|
- break; \
|
|
|
|
- } \
|
|
|
|
- printf("oops in %s ... <%s> (%d) \n", __starpu_func__, errormsg, status); \
|
|
|
|
- } while (0)
|
|
|
|
|
|
+void starpu_opencl_display_error(const char *func, cl_int status);
|
|
|
|
+#define STARPU_OPENCL_DISPLAY_ERROR(status) \
|
|
|
|
+ starpu_opencl_display_error(__starpu_func__, status)
|
|
|
|
|
|
-#define STARPU_OPENCL_REPORT_ERROR(status) \
|
|
|
|
- do { \
|
|
|
|
- STARPU_OPENCL_DISPLAY_ERROR(status); \
|
|
|
|
- assert(0); \
|
|
|
|
- } while (0)
|
|
|
|
|
|
+static inline void starpu_opencl_report_error(const char *func, cl_int status)
|
|
|
|
+{
|
|
|
|
+ starpu_opencl_display_error(func, status);
|
|
|
|
+ assert(0);
|
|
|
|
+}
|
|
|
|
+#define STARPU_OPENCL_REPORT_ERROR(status) \
|
|
|
|
+ starpu_opencl_display_error(__starpu_func__, status)
|
|
|
|
|
|
struct starpu_opencl_program {
|
|
struct starpu_opencl_program {
|
|
cl_program programs[STARPU_MAXOPENCLDEVS];
|
|
cl_program programs[STARPU_MAXOPENCLDEVS];
|