24 #ifndef ARM_COMPUTE_OPENCL_H 25 #define ARM_COMPUTE_OPENCL_H 31 #ifndef ARM_COMPUTE_NO_EXCEPTIONS 32 #define CL_HPP_ENABLE_EXCEPTIONS 33 #endif // ARM_COMPUTE_NO_EXCEPTIONS 34 #define CL_TARGET_OPENCL_VERSION 200 35 #define CL_HPP_TARGET_OPENCL_VERSION 110 36 #define CL_HPP_MINIMUM_OPENCL_VERSION 110 37 #pragma GCC diagnostic push 38 #pragma GCC diagnostic ignored "-Weffc++" 39 #pragma GCC diagnostic ignored "-Wignored-qualifiers" 40 #pragma GCC diagnostic ignored "-Wunused-parameter" 41 #if defined(__GNUG__) && __GNUG__ >= 8 42 #pragma GCC diagnostic ignored "-Wcatch-value" 43 #endif // defined(__GNUG__) && __GNUG__ >= 8 45 #pragma GCC diagnostic pop 49 static const NDRange Range_128_1 = NDRange(128, 1);
89 #define DECLARE_FUNCTION_PTR(func_name) \ 90 std::function<decltype(func_name)> func_name##_ptr = nullptr 145 #undef DECLARE_FUNCTION_PTR 148 std::pair<bool, bool> _loaded;
Class for loading OpenCL symbols.
cl_int clRetainMemObject(cl_mem memobj)
cl_int clEnqueueWriteBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t size, const void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
cl_int clGetEventProfilingInfo(cl_event event, cl_profiling_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
cl_int clSetKernelExecInfo(cl_kernel kernel, cl_kernel_exec_info param_name, size_t param_value_size, const void *param_value)
cl_command_queue clCreateCommandQueueWithProperties(cl_context context, cl_device_id device, const cl_queue_properties *properties, cl_int *errcode_ret)
cl_int clEnqueueUnmapMemObject(cl_command_queue command_queue, cl_mem memobj, void *mapped_ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
cl_int clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms, cl_uint *num_platforms)
cl_int clRetainCommandQueue(cl_command_queue command_queue)
cl_int clEnqueueReadBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t size, void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
cl_int clSetKernelArg(cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void *arg_value)
cl_mem clCreateImage(cl_context context, cl_mem_flags flags, const cl_image_format *image_format, const cl_image_desc *image_desc, void *host_ptr, cl_int *errcode_ret)
cl_int clRetainEvent(cl_event event)
Copyright (c) 2017-2021 Arm Limited.
cl_int clRetainProgram(cl_program program)
cl_int clRetainKernel(cl_kernel kernel)
void clSVMFree(cl_context context, void *svm_pointer)
cl_int clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
cl_program clCreateProgramWithBinary(cl_context context, cl_uint num_devices, const cl_device_id *device_list, const size_t *lengths, const unsigned char **binaries, cl_int *binary_status, cl_int *errcode_ret)
bool load(const std::string &library)
Load symbols from the given OpenCL library path.
cl_int clGetDeviceInfo(cl_device_id device, cl_device_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
CLSymbols() noexcept(false)
Default Constructor.
cl_int clGetProgramInfo(cl_program program, cl_program_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
std::unique_ptr< AssetsLibrary > library
cl_command_queue clCreateCommandQueue(cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int *errcode_ret)
cl_int clFlush(cl_command_queue command_queue)
cl_int clReleaseCommandQueue(cl_command_queue command_queue)
bool load_default()
Load symbols from any of the default OpenCL library names.
void * clEnqueueMapBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map, cl_map_flags map_flags, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event, cl_int *errcode_ret)
cl_int clEnqueueSVMUnmap(cl_command_queue command_queue, void *svm_ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
cl_int clEnqueueNDRangeKernel(cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, const size_t *global_work_offset, const size_t *global_work_size, const size_t *local_work_size, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
cl_mem clCreateBuffer(cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret)
cl_int clEnqueueMarker(cl_command_queue command_queue, cl_event *event)
#define DECLARE_FUNCTION_PTR(func_name)
cl_context clCreateContextFromType(const cl_context_properties *properties, cl_device_type device_type, void(*pfn_notify)(const char *, const void *, size_t, void *), void *user_data, cl_int *errcode_ret)
cl_int clReleaseEvent(cl_event event)
cl_int clReleaseProgram(cl_program program)
cl_int clGetCommandQueueInfo(cl_command_queue command_queue, cl_command_queue_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
cl_int clEnqueueSVMMap(cl_command_queue command_queue, cl_bool blocking_map, cl_map_flags flags, void *svm_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event)
cl_int clReleaseKernel(cl_kernel kernel)
cl_int clGetContextInfo(cl_context context, cl_context_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
void * clSVMAlloc(cl_context context, cl_svm_mem_flags_arm flags, size_t size, cl_uint alignment)
cl_program clCreateProgramWithSource(cl_context context, cl_uint count, const char **strings, const size_t *lengths, cl_int *errcode_ret)
cl_int clGetMemObjectInfo(cl_mem memobj, cl_mem_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
cl_int clGetKernelWorkGroupInfo(cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
cl_context clCreateContext(const cl_context_properties *properties, cl_uint num_devices, const cl_device_id *devices, void(*pfn_notify)(const char *, const void *, size_t, void *), void *user_data, cl_int *errcode_ret)
cl_int clReleaseContext(cl_context context)
cl_mem clImportMemoryARM(cl_context context, cl_mem_flags flags, const cl_import_properties_arm *properties, void *memory, size_t size, cl_int *errcode_ret)
cl_int clGetKernelInfo(cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
void load_symbols(void *handle)
Load OpenCL symbols from handle.
cl_kernel clCreateKernel(cl_program program, const char *kernel_name, cl_int *errcode_ret)
cl_int clWaitForEvents(cl_uint num_events, const cl_event *event_list)
static CLSymbols & get()
Get the static instance of CLSymbols.
cl_int clBuildProgram(cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), void *user_data)
cl_int clReleaseMemObject(cl_mem memobj)
cl_int clRetainContext(cl_context context)
cl_int clFinish(cl_command_queue command_queue)
bool opencl_is_available()
Check if OpenCL is available.
cl_int clGetProgramBuildInfo(cl_program program, cl_device_id device, cl_program_build_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
cl_int clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices)