annotate hello/oclUtils.cc @ 0:0e6e76dbdb0f

add file
author Yutaka_Kinjyo
date Tue, 12 Jul 2011 11:12:51 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
1 #include "oclUtils.h"
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
2 #include <fstream>
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
3 #include <vector>
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
4 #include <iostream>
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
5 #include <algorithm>
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
6 #include <stdarg.h>
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
7
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
8 // Helper function to get OpenCL error string from constant
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
9 // *********************************************************************
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
10 const char* oclErrorString(cl_int error)
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
11 {
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
12 static const char* errorString[] = {
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
13 "CL_SUCCESS",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
14 "CL_DEVICE_NOT_FOUND",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
15 "CL_DEVICE_NOT_AVAILABLE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
16 "CL_COMPILER_NOT_AVAILABLE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
17 "CL_MEM_OBJECT_ALLOCATION_FAILURE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
18 "CL_OUT_OF_RESOURCES",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
19 "CL_OUT_OF_HOST_MEMORY",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
20 "CL_PROFILING_INFO_NOT_AVAILABLE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
21 "CL_MEM_COPY_OVERLAP",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
22 "CL_IMAGE_FORMAT_MISMATCH",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
23 "CL_IMAGE_FORMAT_NOT_SUPPORTED",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
24 "CL_BUILD_PROGRAM_FAILURE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
25 "CL_MAP_FAILURE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
26 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
27 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
28 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
29 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
30 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
31 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
32 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
33 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
34 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
35 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
36 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
37 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
38 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
39 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
40 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
41 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
42 "",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
43 "CL_INVALID_VALUE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
44 "CL_INVALID_DEVICE_TYPE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
45 "CL_INVALID_PLATFORM",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
46 "CL_INVALID_DEVICE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
47 "CL_INVALID_CONTEXT",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
48 "CL_INVALID_QUEUE_PROPERTIES",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
49 "CL_INVALID_COMMAND_QUEUE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
50 "CL_INVALID_HOST_PTR",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
51 "CL_INVALID_MEM_OBJECT",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
52 "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
53 "CL_INVALID_IMAGE_SIZE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
54 "CL_INVALID_SAMPLER",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
55 "CL_INVALID_BINARY",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
56 "CL_INVALID_BUILD_OPTIONS",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
57 "CL_INVALID_PROGRAM",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
58 "CL_INVALID_PROGRAM_EXECUTABLE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
59 "CL_INVALID_KERNEL_NAME",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
60 "CL_INVALID_KERNEL_DEFINITION",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
61 "CL_INVALID_KERNEL",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
62 "CL_INVALID_ARG_INDEX",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
63 "CL_INVALID_ARG_VALUE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
64 "CL_INVALID_ARG_SIZE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
65 "CL_INVALID_KERNEL_ARGS",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
66 "CL_INVALID_WORK_DIMENSION",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
67 "CL_INVALID_WORK_GROUP_SIZE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
68 "CL_INVALID_WORK_ITEM_SIZE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
69 "CL_INVALID_GLOBAL_OFFSET",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
70 "CL_INVALID_EVENT_WAIT_LIST",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
71 "CL_INVALID_EVENT",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
72 "CL_INVALID_OPERATION",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
73 "CL_INVALID_GL_OBJECT",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
74 "CL_INVALID_BUFFER_SIZE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
75 "CL_INVALID_MIP_LEVEL",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
76 "CL_INVALID_GLOBAL_WORK_SIZE",
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
77 };
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
78
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
79 const int errorCount = sizeof(errorString) / sizeof(errorString[0]);
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
80
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
81 const int index = -error;
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
82
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
83 return (index >= 0 && index < errorCount) ? errorString[index] : "Unspecified Error";
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
84 }
0e6e76dbdb0f add file
Yutaka_Kinjyo
parents:
diff changeset
85