10 #if defined(__APPLE__) || defined(__MACOSX)
11 #include <OpenCL/cl.h>
73 static inline cl_command_queue
getQueue(
bool retain =
false)
75 cl_command_queue queue;
107 const unsigned ndims = (unsigned)idims.
ndims();
111 cl_int clerr = clGetMemObjectInfo(buf, CL_MEM_CONTEXT,
sizeof(cl_context), &context, NULL);
112 if (clerr != CL_SUCCESS) {
113 throw af::exception(
"Failed to get context from cl_mem object \"buf\" ");
117 throw(
af::exception(
"Context mismatch between input \"buf\" and arrayfire"));
121 if (retain) clerr = clRetainMemObject(buf);
126 if (err !=
AF_SUCCESS || clerr != CL_SUCCESS) {
127 if (retain && clerr == CL_SUCCESS) clReleaseMemObject(buf);
146 cl_mem buf,
af::dtype type,
bool retain=
false)
164 cl_mem buf,
af::dtype type,
bool retain=
false)
184 cl_mem buf,
af::dtype type,
bool retain=
false)
205 cl_mem buf,
af::dtype type,
bool retain=
false)
218 cl_mem *mem =
new cl_mem;
Definition: exception.h:19
static af::array array(dim_t dim0, dim_t dim1, dim_t dim2, dim_t dim3, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:203
Definition: algorithm.h:14
AFAPI af_err afcl_get_queue(cl_command_queue *queue, const bool retain)
The function returned successfully.
Definition: defines.h:62
static cl_device_id getDeviceId()
Get the device ID for ArrayFire's current active device.
Definition: opencl.h:85
A multi dimensional data container.
Definition: array.h:27
af_err
Definition: defines.h:58
AFAPI af_err afcl_get_device_id(cl_device_id *id)
dim_t * get()
Definition: dim4.hpp:52
long long dim_t
Definition: defines.h:50
static cl_context getContext(bool retain=false)
Get a handle to ArrayFire's OpenCL context.
Definition: opencl.h:57
#define AFAPI
Definition: defines.h:31
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:105
AFAPI af_err af_device_array(af_array *arr, const void *data, const unsigned ndims, const dim_t *const dims, const af_dtype type)
Create array from device memory.
void * af_array
Definition: defines.h:172
AFAPI af_err af_get_device_ptr(void **ptr, const af_array arr)
AFAPI af_err afcl_get_context(cl_context *ctx, const bool retain)
static cl_command_queue getQueue(bool retain=false)
Get a handle to ArrayFire's OpenCL command queue.
Definition: opencl.h:73
af_dtype
Definition: defines.h:151