2 #include "jtypetraits.h" 10 #include <boost/lexical_cast.hpp> 17 std::string CLErrorToString(cl_int error) {
23 return "CL_DEVICE_NOT_FOUND";
25 return "CL_DEVICE_NOT_AVAILABLE";
27 return "CL_COMPILER_NOT_AVAILABLE";
29 return "CL_MEM_OBJECT_ALLOCATION_FAILURE";
31 return "CL_OUT_OF_RESOURCES";
33 return "CL_OUT_OF_HOST_MEMORY";
35 return "CL_PROFILING_INFO_NOT_AVAILABLE";
37 return "CL_MEM_COPY_OVERLAP";
39 return "CL_IMAGE_FORMAT_MISMATCH";
41 return "CL_IMAGE_FORMAT_NOT_SUPPORTED";
43 return "CL_BUILD_PROGRAM_FAILURE";
45 return "CL_MAP_FAILURE";
47 return "CL_MISALIGNED_SUB_BUFFER_OFFSET";
49 return "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST";
51 return "CL_COMPILE_PROGRAM_FAILURE";
53 return "CL_LINKER_NOT_AVAILABLE";
55 return "CL_LINK_PROGRAM_FAILURE";
57 return "CL_DEVICE_PARTITION_FAILED";
59 return "CL_KERNEL_ARG_INFO_NOT_AVAILABLE";
63 return "CL_INVALID_VALUE";
65 return "CL_INVALID_DEVICE_TYPE";
67 return "CL_INVALID_PLATFORM";
69 return "CL_INVALID_DEVICE";
71 return "CL_INVALID_CONTEXT";
73 return "CL_INVALID_QUEUE_PROPERTIES";
75 return "CL_INVALID_COMMAND_QUEUE";
77 return "CL_INVALID_HOST_PTR";
79 return "CL_INVALID_MEM_OBJECT";
81 return "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR";
83 return "CL_INVALID_IMAGE_SIZE";
85 return "CL_INVALID_SAMPLER";
87 return "CL_INVALID_BINARY";
89 return "CL_INVALID_BUILD_OPTIONS";
91 return "CL_INVALID_PROGRAM";
93 return "CL_INVALID_PROGRAM_EXECUTABLE";
95 return "CL_INVALID_KERNEL_NAME";
97 return "CL_INVALID_KERNEL_DEFINITION";
99 return "CL_INVALID_KERNEL";
101 return "CL_INVALID_ARG_INDEX";
103 return "CL_INVALID_ARG_VALUE";
105 return "CL_INVALID_ARG_SIZE";
107 return "CL_INVALID_KERNEL_ARGS";
109 return "CL_INVALID_WORK_DIMENSION";
111 return "CL_INVALID_WORK_GROUP_SIZE";
113 return "CL_INVALID_WORK_ITEM_SIZE";
115 return "CL_INVALID_GLOBAL_OFFSET";
117 return "CL_INVALID_EVENT_WAIT_LIST";
119 return "CL_INVALID_EVENT";
121 return "CL_INVALID_OPERATION";
123 return "CL_INVALID_GL_OBJECT";
125 return "CL_INVALID_BUFFER_SIZE";
127 return "CL_INVALID_MIP_LEVEL";
129 return "CL_INVALID_GLOBAL_WORK_SIZE";
131 return "CL_INVALID_PROPERTY";
133 return "CL_INVALID_IMAGE_DESCRIPTOR";
135 return "CL_INVALID_COMPILER_OPTIONS";
137 return "CL_INVALID_LINKER_OPTIONS";
139 return "CL_INVALID_DEVICE_PARTITION_COUNT";
143 return "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR";
145 return "CL_PLATFORM_NOT_FOUND_KHR";
147 return "CL_INVALID_D3D10_DEVICE_KHR";
149 return "CL_INVALID_D3D10_RESOURCE_KHR";
151 return "CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR";
153 return "CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR";
155 return "Unknown OpenCL error #" + boost::lexical_cast<std::string>( error );
159 std::string CLErrorToString(cl_int* error) {
160 return CLErrorToString( (intptr_t)error );
163 void PrintOCLDebugInfo() {
165 std::vector<cl::Platform> platforms;
166 cl::Platform::get(&platforms);
167 if(platforms.size()==0) {
168 std::cout<<
" No platforms found. Check OpenCL installation." << std::endl;
171 std::cout <<
"Available Platforms:" << std::endl;
172 for( uint i = 0 ; i < platforms.size() ; i++ ) {
174 std::cout <<
"Platform number " << i <<
" " << platforms[i].getInfo<CL_PLATFORM_NAME>() << std::endl;
175 cl::Platform platform = platforms[i];
176 std::cout <<
"Platform Info: "<<platform.getInfo<CL_PLATFORM_NAME>()<< std::endl;
179 std::vector<cl::Device> devices;
180 platform.getDevices(CL_DEVICE_TYPE_ALL, &devices);
181 if(devices.size() == 0) {
182 std::cout<<
" No devices found. Check OpenCL installation!\n";
185 std::cout<<
"Available devices: "<<devices.size()<<std::endl;
187 for( uint i = 0 ; i < devices.size() ; i++ ) {
188 std::cout <<
"Device number " << i <<
" " << devices[i].getInfo<CL_DEVICE_NAME>() << std::endl;