PARALUTION  1.0.0
PARALUTION
ocl_utils.hpp
Go to the documentation of this file.
1 #ifndef PARALUTION_OCL_OCL_UTILS_HPP_
2 #define PARALUTION_OCL_OCL_UTILS_HPP_
3 
4 #include "../backend_manager.hpp"
5 #include "../../utils/log.hpp"
6 #include "backend_ocl.hpp"
7 
8 #if defined(__APPLE__) && defined(__MACH__)
9  #include <OpenCL/cl.h>
10 #else
11  #include <CL/cl.h>
12 #endif
13 
14 #define OCL_HANDLE(handle) static_cast<oclHandle_t*>(handle)
15 
16 static const char *OCL_ERROR[] = {
17  "CL_SUCCESS",
18  "CL_DEVICE_NOT_FOUND",
19  "CL_DEVICE_NOT_AVAILABLE",
20  "CL_COMPILER_NOT_AVAILABLE",
21  "CL_MEM_OBJECT_ALLOCATION_FAILURE",
22  "CL_OUT_OF_RESOURCES",
23  "CL_OUT_OF_HOST_MEMORY",
24  "CL_PROFILING_INFO_NOT_AVAILABLE",
25  "CL_MEM_COPY_OVERLAP",
26  "CL_IMAGE_FORMAT_MISMATCH",
27  "CL_IMAGE_FORMAT_NOT_SUPPORTED",
28  "CL_BUILD_PROGRAM_FAILURE",
29  "CL_MAP_FAILURE",
30  "",
31  "",
32  "",
33  "",
34  "",
35  "",
36  "",
37  "",
38  "",
39  "",
40  "",
41  "",
42  "",
43  "",
44  "",
45  "",
46  "",
47  "CL_INVALID_VALUE",
48  "CL_INVALID_DEVICE_TYPE",
49  "CL_INVALID_PLATFORM",
50  "CL_INVALID_DEVICE",
51  "CL_INVALID_CONTEXT",
52  "CL_INVALID_QUEUE_PROPERTIES",
53  "CL_INVALID_COMMAND_QUEUE",
54  "CL_INVALID_HOST_PTR",
55  "CL_INVALID_MEM_OBJECT",
56  "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR",
57  "CL_INVALID_IMAGE_SIZE",
58  "CL_INVALID_SAMPLER",
59  "CL_INVALID_BINARY",
60  "CL_INVALID_BUILD_OPTIONS",
61  "CL_INVALID_PROGRAM",
62  "CL_INVALID_PROGRAM_EXECUTABLE",
63  "CL_INVALID_KERNEL_NAME",
64  "CL_INVALID_KERNEL_DEFINITION",
65  "CL_INVALID_KERNEL",
66  "CL_INVALID_ARG_INDEX",
67  "CL_INVALID_ARG_VALUE",
68  "CL_INVALID_ARG_SIZE",
69  "CL_INVALID_KERNEL_ARGS",
70  "CL_INVALID_WORK_DIMENSION",
71  "CL_INVALID_WORK_GROUP_SIZE",
72  "CL_INVALID_WORK_ITEM_SIZE",
73  "CL_INVALID_GLOBAL_OFFSET",
74  "CL_INVALID_EVENT_WAIT_LIST",
75  "CL_INVALID_EVENT",
76  "CL_INVALID_OPERATION",
77  "CL_INVALID_GL_OBJECT",
78  "CL_INVALID_BUFFER_SIZE",
79  "CL_INVALID_MIP_LEVEL",
80  "CL_INVALID_GLOBAL_WORK_SIZE"
81 };
82 
83 #define CHECK_OCL_ERROR(err_t, file, line) { \
84  if ( err_t != CL_SUCCESS ) { \
85  LOG_INFO("OPENCL ERROR: " <<OCL_ERROR[-err_t]); \
86  LOG_INFO("File: " << file << "; line: " << line); \
87  paralution_stop_ocl(); \
88  exit(1); \
89  } \
90 }
91 
92 
93 #endif // PARALUTION_OCL_OCL_UTILS_HPP_
static const char * OCL_ERROR[]
Definition: ocl_utils.hpp:16