forked from arrayfire/arrayfire
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopencl.cpp
More file actions
83 lines (72 loc) · 2.54 KB
/
opencl.cpp
File metadata and controls
83 lines (72 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*******************************************************
* Copyright (c) 2020, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#include <af/backend.h>
#include "symbol_manager.hpp"
#include <af/opencl.h>
af_err afcl_get_device_type(afcl_device_type* res) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) { CALL(afcl_get_device_type, res); }
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_get_platform(afcl_platform* res) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) { CALL(afcl_get_platform, res); }
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_get_context(cl_context* ctx, const bool retain) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) { CALL(afcl_get_context, ctx, retain); }
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_get_queue(cl_command_queue* queue, const bool retain) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) { CALL(afcl_get_queue, queue, retain); }
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_get_device_id(cl_device_id* id) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) { CALL(afcl_get_device_id, id); }
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_set_device_id(cl_device_id id) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) { CALL(afcl_set_device_id, id); }
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_add_device_context(cl_device_id dev, cl_context ctx,
cl_command_queue que) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) {
CALL(afcl_add_device_context, dev, ctx, que);
}
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_set_device_context(cl_device_id dev, cl_context ctx) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) {
CALL(afcl_set_device_context, dev, ctx);
}
return AF_ERR_NOT_SUPPORTED;
}
af_err afcl_delete_device_context(cl_device_id dev, cl_context ctx) {
af_backend backend;
af_get_active_backend(&backend);
if (backend == AF_BACKEND_OPENCL) {
CALL(afcl_delete_device_context, dev, ctx);
}
return AF_ERR_NOT_SUPPORTED;
}