Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Francesco Brarda
stan-math-petsc
Commits
a7cffde7
Unverified
Commit
a7cffde7
authored
7 years ago
by
Steve Bronder
Browse files
Options
Download
Email Patches
Plain Diff
Add system error to check_opencl failure codes func
parent
f3763fe5
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
stan/math/gpu/opencl_context.hpp
+3
-3
stan/math/gpu/opencl_context.hpp
stan/math/prim/arr/err/check_opencl.hpp
+89
-87
stan/math/prim/arr/err/check_opencl.hpp
with
92 additions
and
90 deletions
+92
-90
stan/math/gpu/opencl_context.hpp
View file @
a7cffde7
...
...
@@ -4,7 +4,6 @@
#define __CL_ENABLE_EXCEPTIONS
#include <stan/math/prim/arr/err/check_opencl.hpp>
#include <stan/math/prim/scal/err/logic_error.hpp>
#include <stan/math/prim/scal/err/system_error.hpp>
#include <CL/cl.hpp>
#include <cmath>
...
...
@@ -12,6 +11,7 @@
#include <map>
#include <vector>
#include <system_error>
#include <cerrno>
#define DEVICE_FILTER CL_DEVICE_TYPE_GPU
#ifndef OPENCL_DEVICE
...
...
@@ -92,8 +92,8 @@ class opencl_context {
std
::
vector
<
cl
::
Device
>
all_devices
;
platform
.
getDevices
(
DEVICE_FILTER
,
&
all_devices
);
if
(
all_devices
.
size
()
==
0
)
{
logic
_error
(
"OpenCL Initialization"
,
"[Device]"
,
platform_name_
,
"
No OpenCL devices found on the selected platform:
"
);
system
_error
(
"OpenCL Initialization"
,
"[Device]"
,
-
1
,
"
CL_DEVICE_NOT_FOUND
"
);
}
device_
=
all_devices
[
OPENCL_DEVICE
];
// context and queue
...
...
This diff is collapsed.
Click to expand it.
stan/math/prim/arr/err/check_opencl.hpp
View file @
a7cffde7
...
...
@@ -2,6 +2,8 @@
#define STAN_MATH_PRIM_ARR_ERR_CHECK_OPENCL_HPP
#ifdef STAN_OPENCL
#define __CL_ENABLE_EXCEPTIONS
#include <stan/math/prim/scal/err/system_error.hpp>
#include <CL/cl.hpp>
#include <iostream>
#include <stdexcept>
...
...
@@ -27,7 +29,7 @@ inline void throw_openCL(const char *function, const char *msg) {
std
::
string
error_msg
=
std
::
string
()
+
function
+
": The OpenCL application ended with the error: "
+
msg
;
throw
std
::
domain
_error
(
error_msg
);
throw
std
::
logic
_error
(
error_msg
);
}
/**
* Throws the domain error with specifying the OpenCL error that
...
...
@@ -46,181 +48,181 @@ inline void check_ocl_error(const char *function, const cl::Error &e) {
// CL_SUCCESS - no need to throw
return
;
case
-
1
:
throw_openCL
(
function
,
"CL_DEVICE_NOT_FOUND"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_DEVICE_NOT_FOUND"
);
case
-
2
:
throw_openCL
(
function
,
"CL_DEVICE_NOT_AVAILABLE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_DEVICE_NOT_AVAILABLE"
);
case
-
3
:
throw_openCL
(
function
,
"CL_COMPILER_NOT_AVAILABLE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_COMPILER_NOT_AVAILABLE"
);
case
-
4
:
throw_openCL
(
function
,
"CL_MEM_OBJECT_ALLOCATION_FAILURE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_MEM_OBJECT_ALLOCATION_FAILURE"
);
case
-
5
:
throw_openCL
(
function
,
"CL_OUT_OF_RESOURCES"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_OUT_OF_RESOURCES"
);
case
-
6
:
throw_openCL
(
function
,
"CL_OUT_OF_HOST_MEMORY"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_OUT_OF_HOST_MEMORY"
);
case
-
7
:
throw_openCL
(
function
,
"CL_PROFILING_INFO_NOT_AVAILABLE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_PROFILING_INFO_NOT_AVAILABLE"
);
case
-
8
:
throw_openCL
(
function
,
"CL_MEM_COPY_OVERLAP"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_MEM_COPY_OVERLAP"
);
case
-
9
:
throw_openCL
(
function
,
"CL_IMAGE_FORMAT_MISMATCH"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_IMAGE_FORMAT_MISMATCH"
);
case
-
10
:
throw_openCL
(
function
,
"CL_IMAGE_FORMAT_NOT_SUPPORTED"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_IMAGE_FORMAT_NOT_SUPPORTED"
);
case
-
11
:
throw_openCL
(
function
,
"CL_BUILD_PROGRAM_FAILURE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_BUILD_PROGRAM_FAILURE"
);
case
-
12
:
throw_openCL
(
function
,
"CL_MAP_FAILURE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_MAP_FAILURE"
);
case
-
13
:
throw_openCL
(
function
,
"CL_MISALIGNED_SUB_BUFFER_OFFSET"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_MISALIGNED_SUB_BUFFER_OFFSET"
);
case
-
14
:
throw_openCL
(
function
,
"CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"
);
case
-
15
:
throw_openCL
(
function
,
"CL_COMPILE_PROGRAM_FAILURE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_COMPILE_PROGRAM_FAILURE"
);
case
-
16
:
throw_openCL
(
function
,
"CL_LINKER_NOT_AVAILABLE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_LINKER_NOT_AVAILABLE"
);
case
-
17
:
throw_openCL
(
function
,
"CL_LINK_PROGRAM_FAILURE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_LINK_PROGRAM_FAILURE"
);
case
-
18
:
throw_openCL
(
function
,
"CL_DEVICE_PARTITION_FAILED"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_DEVICE_PARTITION_FAILED"
);
case
-
19
:
throw_openCL
(
function
,
"CL_KERNEL_ARG_INFO_NOT_AVAILABLE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_KERNEL_ARG_INFO_NOT_AVAILABLE"
);
case
-
30
:
throw_openCL
(
function
,
"CL_INVALID_VALUE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_VALUE"
);
case
-
31
:
throw_openCL
(
function
,
"CL_INVALID_DEVICE_TYPE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_DEVICE_TYPE"
);
case
-
32
:
throw_openCL
(
function
,
"CL_INVALID_PLATFORM"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_PLATFORM"
);
case
-
33
:
throw_openCL
(
function
,
"CL_INVALID_DEVICE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_DEVICE"
);
case
-
34
:
throw_openCL
(
function
,
"CL_INVALID_CONTEXT"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_CONTEXT"
);
case
-
35
:
throw_openCL
(
function
,
"CL_INVALID_QUEUE_PROPERTIES"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_QUEUE_PROPERTIES"
);
case
-
36
:
throw_openCL
(
function
,
"CL_INVALID_COMMAND_QUEUE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_COMMAND_QUEUE"
);
case
-
37
:
throw_openCL
(
function
,
"CL_INVALID_HOST_PTR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_HOST_PTR"
);
case
-
38
:
throw_openCL
(
function
,
"CL_INVALID_MEM_OBJECT"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_MEM_OBJECT"
);
case
-
39
:
throw_openCL
(
function
,
"CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"
);
case
-
40
:
throw_openCL
(
function
,
"CL_INVALID_IMAGE_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_IMAGE_SIZE"
);
case
-
41
:
throw_openCL
(
function
,
"CL_INVALID_SAMPLER"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_SAMPLER"
);
case
-
42
:
throw_openCL
(
function
,
"CL_INVALID_BINARY"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_BINARY"
);
case
-
43
:
throw_openCL
(
function
,
"CL_INVALID_BUILD_OPTIONS"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_BUILD_OPTIONS"
);
case
-
44
:
throw_openCL
(
function
,
"CL_INVALID_PROGRAM"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_PROGRAM"
);
case
-
45
:
throw_openCL
(
function
,
"CL_INVALID_PROGRAM_EXECUTABLE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_PROGRAM_EXECUTABLE"
);
case
-
46
:
throw_openCL
(
function
,
"CL_INVALID_KERNEL_NAME"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_KERNEL_NAME"
);
case
-
47
:
throw_openCL
(
function
,
"CL_INVALID_KERNEL_DEFINITION"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_KERNEL_DEFINITION"
);
case
-
48
:
throw_openCL
(
function
,
"CL_INVALID_KERNEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_KERNEL"
);
case
-
49
:
throw_openCL
(
function
,
"CL_INVALID_ARG_INDEX"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_ARG_INDEX"
);
case
-
50
:
throw_openCL
(
function
,
"CL_INVALID_ARG_VALUE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_ARG_VALUE"
);
case
-
51
:
throw_openCL
(
function
,
"CL_INVALID_ARG_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_ARG_SIZE"
);
case
-
52
:
throw_openCL
(
function
,
"CL_INVALID_KERNEL_ARGS"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_KERNEL_ARGS"
);
case
-
53
:
throw_openCL
(
function
,
"CL_INVALID_WORK_DIMENSION"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_WORK_DIMENSION"
);
case
-
54
:
throw_openCL
(
function
,
"CL_INVALID_WORK_GROUP_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_WORK_GROUP_SIZE"
);
case
-
55
:
throw_openCL
(
function
,
"CL_INVALID_WORK_ITEM_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_WORK_ITEM_SIZE"
);
case
-
56
:
throw_openCL
(
function
,
"CL_INVALID_GLOBAL_OFFSET"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_GLOBAL_OFFSET"
);
case
-
57
:
throw_openCL
(
function
,
"CL_INVALID_EVENT_WAIT_LIST"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_EVENT_WAIT_LIST"
);
case
-
58
:
throw_openCL
(
function
,
"CL_INVALID_EVENT"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_EVENT"
);
case
-
59
:
throw_openCL
(
function
,
"CL_INVALID_OPERATION"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_OPERATION"
);
case
-
60
:
throw_openCL
(
function
,
"CL_INVALID_GL_OBJECT"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_GL_OBJECT"
);
case
-
61
:
throw_openCL
(
function
,
"CL_INVALID_BUFFER_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_BUFFER_SIZE"
);
case
-
62
:
throw_openCL
(
function
,
"CL_INVALID_MIP_LEVEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_MIP_LEVEL"
);
case
-
63
:
throw_openCL
(
function
,
"CL_INVALID_GLOBAL_WORK_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_GLOBAL_WORK_SIZE"
);
case
-
64
:
throw_openCL
(
function
,
"CL_INVALID_PROPERTY"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_PROPERTY"
);
case
-
65
:
throw_openCL
(
function
,
"CL_INVALID_IMAGE_DESCRIPTOR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_IMAGE_DESCRIPTOR"
);
case
-
66
:
throw_openCL
(
function
,
"CL_INVALID_COMPILER_OPTIONS"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_COMPILER_OPTIONS"
);
case
-
67
:
throw_openCL
(
function
,
"CL_INVALID_LINKER_OPTIONS"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_LINKER_OPTIONS"
);
case
-
68
:
throw_openCL
(
function
,
"CL_INVALID_DEVICE_PARTITION_COUNT"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_DEVICE_PARTITION_COUNT"
);
case
-
69
:
throw_openCL
(
function
,
"CL_INVALID_PIPE_SIZE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_PIPE_SIZE"
);
case
-
70
:
throw_openCL
(
function
,
"CL_INVALID_DEVICE_QUEUE"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_DEVICE_QUEUE"
);
case
-
1000
:
throw_openCL
(
function
,
"CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"
);
case
-
1001
:
throw_openCL
(
function
,
"CL_PLATFORM_NOT_FOUND_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_PLATFORM_NOT_FOUND_KHR"
);
case
-
1002
:
throw_openCL
(
function
,
"CL_INVALID_D3D10_DEVICE_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_D3D10_DEVICE_KHR"
);
case
-
1003
:
throw_openCL
(
function
,
"CL_INVALID_D3D10_RESOURCE_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_D3D10_RESOURCE_KHR"
);
case
-
1004
:
throw_openCL
(
function
,
"CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"
);
case
-
1005
:
throw_openCL
(
function
,
"CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"
);
case
-
1006
:
throw_openCL
(
function
,
"CL_INVALID_D3D11_DEVICE_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_D3D11_DEVICE_KHR"
);
case
-
1007
:
throw_openCL
(
function
,
"CL_INVALID_D3D11_RESOURCE_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_D3D11_RESOURCE_KHR"
);
case
-
1008
:
throw_openCL
(
function
,
"CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR"
);
case
-
1009
:
throw_openCL
(
function
,
"CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR"
);
case
-
101
:
throw_openCL
(
function
,
"CL_INVALID_D3D9_DEVICE_NV "
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_D3D9_DEVICE_NV "
);
case
-
1011
:
throw_openCL
(
function
,
"CL_INVALID_D3D9_RESOURCE_NV "
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_D3D9_RESOURCE_NV "
);
case
-
1012
:
throw_openCL
(
function
,
system_error
(
function
,
""
,
e
.
err
()
,
"CL_D3D9_RESOURCE_ALREADY_ACQUIRED_NV "
"CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL"
);
case
-
1013
:
throw_openCL
(
function
,
system_error
(
function
,
""
,
e
.
err
()
,
"CL_D3D9_RESOURCE_NOT_ACQUIRED_NV "
"CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL"
);
case
-
1092
:
throw_openCL
(
function
,
"CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_EGL_RESOURCE_NOT_ACQUIRED_KHR"
);
case
-
1093
:
throw_openCL
(
function
,
"CL_INVALID_EGL_OBJECT_KHR"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_EGL_OBJECT_KHR"
);
case
-
1094
:
throw_openCL
(
function
,
"CL_INVALID_ACCELERATOR_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_ACCELERATOR_INTEL"
);
case
-
1095
:
throw_openCL
(
function
,
"CL_INVALID_ACCELERATOR_TYPE_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_ACCELERATOR_TYPE_INTEL"
);
case
-
1096
:
throw_openCL
(
function
,
"CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL"
);
case
-
1097
:
throw_openCL
(
function
,
"CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL"
);
case
-
1098
:
throw_openCL
(
function
,
"CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL"
);
case
-
1099
:
throw_openCL
(
function
,
"CL_INVALID_VA_API_MEDIA_SURFACE_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_INVALID_VA_API_MEDIA_SURFACE_INTEL"
);
case
-
1100
:
throw_openCL
(
function
,
"CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL"
);
case
-
1101
:
throw_openCL
(
function
,
"CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL"
);
system_error
(
function
,
""
,
e
.
err
()
,
"CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL"
);
case
-
9999
:
throw_openCL
(
function
,
"ILLEGAL_READ_OR_WRITE_NVIDIA"
);
system_error
(
function
,
""
,
e
.
err
()
,
"ILLEGAL_READ_OR_WRITE_NVIDIA"
);
default:
throw_openCL
(
function
,
std
::
to_string
(
e
.
err
()).
c_str
());
system_error
(
function
,
""
,
e
.
err
()
,
std
::
to_string
(
e
.
err
()).
c_str
());
}
}
}
// namespace math
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help