Compute Library
 23.08
OpenCL.cpp File Reference
#include "arm_compute/core/CL/OpenCL.h"
#include "arm_compute/core/Error.h"
#include <algorithm>
#include <dlfcn.h>
#include <iostream>
#include <sstream>

Go to the source code of this file.

Namespaces

 arm_compute
 Copyright (c) 2017-2023 Arm Limited.
 

Macros

#define LOAD_FUNCTION_PTR(func_name, handle)   func_name##_ptr = reinterpret_cast<decltype(func_name) *>(dlsym(handle, #func_name));
 

Functions

bool opencl_is_available ()
 Check if OpenCL is available. More...
 
cl_int clEnqueueMarker (cl_command_queue command_queue, cl_event *event)
 
cl_int clWaitForEvents (cl_uint num_events, const cl_event *event_list)
 
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 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)
 
void * clSVMAlloc (cl_context context, cl_svm_mem_flags_arm flags, size_t size, cl_uint alignment)
 
void clSVMFree (cl_context context, void *svm_pointer)
 
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)
 
cl_command_queue clCreateCommandQueue (cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int *errcode_ret)
 
cl_command_queue clCreateCommandQueueWithProperties (cl_context context, cl_device_id device, const cl_queue_properties *properties, cl_int *errcode_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_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 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 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_int clSetKernelArg (cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void *arg_value)
 
cl_int clRetainMemObject (cl_mem memobj)
 
cl_int clReleaseMemObject (cl_mem memobj)
 
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 clRetainCommandQueue (cl_command_queue command_queue)
 
cl_int clReleaseContext (cl_context context)
 
cl_int clReleaseEvent (cl_event event)
 
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 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 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 clRetainProgram (cl_program program)
 
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 clReleaseCommandQueue (cl_command_queue command_queue)
 
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)
 
cl_int clRetainContext (cl_context context)
 
cl_int clReleaseProgram (cl_program program)
 
cl_int clFlush (cl_command_queue command_queue)
 
cl_int clFinish (cl_command_queue command_queue)
 
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)
 
cl_kernel clCreateKernel (cl_program program, const char *kernel_name, cl_int *errcode_ret)
 
cl_int clRetainKernel (cl_kernel kernel)
 
cl_mem clCreateBuffer (cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret)
 
cl_program clCreateProgramWithSource (cl_context context, cl_uint count, const char **strings, const size_t *lengths, cl_int *errcode_ret)
 
cl_int clReleaseKernel (cl_kernel kernel)
 
cl_int clGetDeviceIDs (cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices)
 
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)
 
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 clRetainEvent (cl_event event)
 
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_int clGetPlatformIDs (cl_uint num_entries, cl_platform_id *platforms, cl_uint *num_platforms)
 
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_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 clGetKernelInfo (cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
 
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_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 clSetKernelExecInfo (cl_kernel kernel, cl_kernel_exec_info param_name, size_t param_value_size, const void *param_value)
 
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)
 

Macro Definition Documentation

◆ LOAD_FUNCTION_PTR

#define LOAD_FUNCTION_PTR (   func_name,
  handle 
)    func_name##_ptr = reinterpret_cast<decltype(func_name) *>(dlsym(handle, #func_name));

Function Documentation

◆ clBuildProgram()

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 
)

Definition at line 401 of file OpenCL.cpp.

408 {
411  if(func != nullptr)
412  {
413  return func(program, num_devices, device_list, options, pfn_notify, user_data);
414  }
415  else
416  {
417  return CL_OUT_OF_RESOURCES;
418  }
419 }

References CLSymbols::clBuildProgram_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clCreateBuffer()

cl_mem clCreateBuffer ( cl_context  context,
cl_mem_flags  flags,
size_t  size,
void *  host_ptr,
cl_int *  errcode_ret 
)

Definition at line 808 of file OpenCL.cpp.

814 {
817  if(func != nullptr)
818  {
819  return func(context, flags, size, host_ptr, errcode_ret);
820  }
821  else
822  {
823  if(errcode_ret != nullptr)
824  {
825  *errcode_ret = CL_OUT_OF_RESOURCES;
826  }
827  return nullptr;
828  }
829 }

References CLSymbols::clCreateBuffer_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLBufferAllocator::allocate(), and CLSymbols::load().

◆ clCreateCommandQueue()

cl_command_queue clCreateCommandQueue ( cl_context  context,
cl_device_id  device,
cl_command_queue_properties  properties,
cl_int *  errcode_ret 
)

Definition at line 329 of file OpenCL.cpp.

333 {
336  if(func != nullptr)
337  {
338  return func(context, device, properties, errcode_ret);
339  }
340  else
341  {
342  return nullptr;
343  }
344 }

References CLSymbols::clCreateCommandQueue_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clCreateCommandQueueWithProperties()

cl_command_queue clCreateCommandQueueWithProperties ( cl_context  context,
cl_device_id  device,
const cl_queue_properties *  properties,
cl_int *  errcode_ret 
)

Definition at line 346 of file OpenCL.cpp.

350 {
353  if(func != nullptr)
354  {
355  return func(context, device, properties, errcode_ret);
356  }
357  else
358  {
359  return nullptr;
360  }
361 }

References CLSymbols::clCreateCommandQueueWithProperties_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and arm_compute::test::validation::TEST_CASE().

◆ clCreateContext()

cl_context clCreateContext ( const cl_context_properties *  properties,
cl_uint  num_devices,
const cl_device_id *  devices,
void(*)(const char *, const void *, size_t, void *)  pfn_notify,
void *  user_data,
cl_int *  errcode_ret 
)

Definition at line 363 of file OpenCL.cpp.

370 {
373  if(func != nullptr)
374  {
375  return func(properties, num_devices, devices, pfn_notify, user_data, errcode_ret);
376  }
377  else
378  {
379  return nullptr;
380  }
381 }

References CLSymbols::clCreateContext_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clCreateContextFromType()

cl_context clCreateContextFromType ( const cl_context_properties *  properties,
cl_device_type  device_type,
void(*)(const char *, const void *, size_t, void *)  pfn_notify,
void *  user_data,
cl_int *  errcode_ret 
)

Definition at line 383 of file OpenCL.cpp.

388 {
391  if(func != nullptr)
392  {
393  return func(properties, device_type, pfn_notify, user_data, errcode_ret);
394  }
395  else
396  {
397  return nullptr;
398  }
399 }

References CLSymbols::clCreateContextFromType_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clCreateImage()

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 
)

Definition at line 1046 of file OpenCL.cpp.

1052 {
1055  if(func != nullptr)
1056  {
1057  return func(context, flags, image_format, image_desc, host_ptr, errcode_ret);
1058  }
1059  else
1060  {
1061  if(errcode_ret != nullptr)
1062  {
1063  *errcode_ret = CL_OUT_OF_RESOURCES;
1064  }
1065  return nullptr;
1066  }
1067 }

References CLSymbols::clCreateImage_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by arm_compute::create_image2d_from_buffer(), and CLSymbols::load().

◆ clCreateKernel()

cl_kernel clCreateKernel ( cl_program  program,
const char *  kernel_name,
cl_int *  errcode_ret 
)

Definition at line 773 of file OpenCL.cpp.

777 {
780  if(func != nullptr)
781  {
782  return func(program, kernel_name, errcode_ret);
783  }
784  else
785  {
786  if(errcode_ret != nullptr)
787  {
788  *errcode_ret = CL_OUT_OF_RESOURCES;
789  }
790  return nullptr;
791  }
792 }

References CLSymbols::clCreateKernel_ptr, CLSymbols::get(), kernel_name, and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clCreateProgramWithBinary()

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 
)

Definition at line 673 of file OpenCL.cpp.

681 {
684  if(func != nullptr)
685  {
686  return func(context, num_devices, device_list, lengths, binaries, binary_status, errcode_ret);
687  }
688  else
689  {
690  if(errcode_ret != nullptr)
691  {
692  *errcode_ret = CL_OUT_OF_RESOURCES;
693  }
694  return nullptr;
695  }
696 }

References CLSymbols::clCreateProgramWithBinary_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clCreateProgramWithSource()

cl_program clCreateProgramWithSource ( cl_context  context,
cl_uint  count,
const char **  strings,
const size_t *  lengths,
cl_int *  errcode_ret 
)

Definition at line 831 of file OpenCL.cpp.

837 {
840  if(func != nullptr)
841  {
842  return func(context, count, strings, lengths, errcode_ret);
843  }
844  else
845  {
846  if(errcode_ret != nullptr)
847  {
848  *errcode_ret = CL_OUT_OF_RESOURCES;
849  }
850  return nullptr;
851  }
852 }

References CLSymbols::clCreateProgramWithSource_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clEnqueueMapBuffer()

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 
)

Definition at line 631 of file OpenCL.cpp.

642 {
645  if(func != nullptr)
646  {
647  return func(command_queue, buffer, blocking_map, map_flags, offset, size, num_events_in_wait_list, event_wait_list, event, errcode_ret);
648  }
649  else
650  {
651  if(errcode_ret != nullptr)
652  {
653  *errcode_ret = CL_OUT_OF_RESOURCES;
654  }
655  return nullptr;
656  }
657 }

References CLSymbols::clEnqueueMapBuffer_ptr, CLSymbols::get(), CLSymbols::load_default(), and offset().

Referenced by CLSymbols::load().

◆ clEnqueueMarker()

cl_int clEnqueueMarker ( cl_command_queue  command_queue,
cl_event *  event 
)

Definition at line 227 of file OpenCL.cpp.

229 {
232  if(func != nullptr)
233  {
234  return func(command_queue, event);
235  }
236  else
237  {
238  return CL_OUT_OF_RESOURCES;
239  }
240 }

References CLSymbols::clEnqueueMarker_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clEnqueueNDRangeKernel()

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 
)

Definition at line 421 of file OpenCL.cpp.

431 {
434  if(func != nullptr)
435  {
436  return func(command_queue, kernel, work_dim, global_work_offset, global_work_size, local_work_size, num_events_in_wait_list, event_wait_list, event);
437  }
438  else
439  {
440  return CL_OUT_OF_RESOURCES;
441  }
442 }

References CLSymbols::clEnqueueNDRangeKernel_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clEnqueueReadBuffer()

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 
)

Definition at line 574 of file OpenCL.cpp.

584 {
587  if(func != nullptr)
588  {
589  return func(command_queue, buffer, blocking_read, offset, size, ptr, num_events_in_wait_list, event_wait_list, event);
590  }
591  else
592  {
593  return CL_OUT_OF_RESOURCES;
594  }
595 }

References CLSymbols::clEnqueueReadBuffer_ptr, CLSymbols::get(), CLSymbols::load_default(), and offset().

Referenced by CLSymbols::load().

◆ clEnqueueSVMMap()

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 
)

Definition at line 257 of file OpenCL.cpp.

259 {
262  if(func != nullptr)
263  {
264  return func(command_queue, blocking_map, flags, svm_ptr, size, num_events_in_wait_list, event_wait_list, event);
265  }
266  else
267  {
268  return CL_OUT_OF_RESOURCES;
269  }
270 }

References CLSymbols::clEnqueueSVMMap_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and CLCoarseSVMMemoryRegion::map().

◆ clEnqueueSVMUnmap()

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 
)

Definition at line 272 of file OpenCL.cpp.

274 {
277  if(func != nullptr)
278  {
279  return func(command_queue, svm_ptr, num_events_in_wait_list, event_wait_list, event);
280  }
281  else
282  {
283  return CL_OUT_OF_RESOURCES;
284  }
285 }

References CLSymbols::clEnqueueSVMUnmap_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and CLCoarseSVMMemoryRegion::unmap().

◆ clEnqueueUnmapMemObject()

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 
)

Definition at line 490 of file OpenCL.cpp.

497 {
500  if(func != nullptr)
501  {
502  return func(command_queue, memobj, mapped_ptr, num_events_in_wait_list, event_wait_list, event);
503  }
504  else
505  {
506  return CL_OUT_OF_RESOURCES;
507  }
508 }

References CLSymbols::clEnqueueUnmapMemObject_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clEnqueueWriteBuffer()

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 
)

Definition at line 551 of file OpenCL.cpp.

561 {
564  if(func != nullptr)
565  {
566  return func(command_queue, buffer, blocking_write, offset, size, ptr, num_events_in_wait_list, event_wait_list, event);
567  }
568  else
569  {
570  return CL_OUT_OF_RESOURCES;
571  }
572 }

References CLSymbols::clEnqueueWriteBuffer_ptr, CLSymbols::get(), CLSymbols::load_default(), and offset().

Referenced by CLSymbols::load().

◆ clFinish()

cl_int clFinish ( cl_command_queue  command_queue)

Definition at line 740 of file OpenCL.cpp.

741 {
744  if(func != nullptr)
745  {
746  return func(command_queue);
747  }
748  else
749  {
750  return CL_OUT_OF_RESOURCES;
751  }
752 }

References CLSymbols::clFinish_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and CLFineSVMMemoryRegion::map().

◆ clFlush()

cl_int clFlush ( cl_command_queue  command_queue)

Definition at line 726 of file OpenCL.cpp.

727 {
730  if(func != nullptr)
731  {
732  return func(command_queue);
733  }
734  else
735  {
736  return CL_OUT_OF_RESOURCES;
737  }
738 }

References CLSymbols::clFlush_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetCommandQueueInfo()

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 
)

Definition at line 989 of file OpenCL.cpp.

994 {
997  if(func != nullptr)
998  {
999  return func(command_queue, param_name, param_value_size, param_value, param_value_size_ret);
1000  }
1001  else
1002  {
1003  return CL_OUT_OF_RESOURCES;
1004  }
1005 }

References CLSymbols::clGetCommandQueueInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetContextInfo()

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 
)

Definition at line 311 of file OpenCL.cpp.

316 {
319  if(func != nullptr)
320  {
321  return func(context, param_name, param_value_size, param_value, param_value_size_ret);
322  }
323  else
324  {
325  return CL_OUT_OF_RESOURCES;
326  }
327 }

References CLSymbols::clGetContextInfo_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetDeviceIDs()

cl_int clGetDeviceIDs ( cl_platform_id  platform,
cl_device_type  device_type,
cl_uint  num_entries,
cl_device_id *  devices,
cl_uint *  num_devices 
)

Definition at line 868 of file OpenCL.cpp.

873 {
876  if(func != nullptr)
877  {
878  return func(platform, device_type, num_entries, devices, num_devices);
879  }
880  else
881  {
882  return CL_OUT_OF_RESOURCES;
883  }
884 }

References CLSymbols::clGetDeviceIDs_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetDeviceInfo()

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 
)

Definition at line 886 of file OpenCL.cpp.

891 {
894  if(func != nullptr)
895  {
896  return func(device, param_name, param_value_size, param_value, param_value_size_ret);
897  }
898  else
899  {
900  return CL_OUT_OF_RESOURCES;
901  }
902 }

References CLSymbols::clGetDeviceInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by arm_compute::get_cl_image_pitch_alignment(), arm_compute::get_cl_non_uniform_work_group_supported(), arm_compute::get_wbsm_support_info(), and CLSymbols::load().

◆ clGetEventProfilingInfo()

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 
)

Definition at line 1027 of file OpenCL.cpp.

1032 {
1035  if(func != nullptr)
1036  {
1037  return func(event, param_name, param_value_size, param_value, param_value_size_ret);
1038  }
1039  else
1040  {
1041  return CL_OUT_OF_RESOURCES;
1042  }
1043 }

References CLSymbols::clGetEventProfilingInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetKernelInfo()

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 
)

Definition at line 1008 of file OpenCL.cpp.

1013 {
1016  if(func != nullptr)
1017  {
1018  return func(kernel, param_name, param_value_size, param_value, param_value_size_ret);
1019  }
1020  else
1021  {
1022  return CL_OUT_OF_RESOURCES;
1023  }
1024 }

References CLSymbols::clGetKernelInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetKernelWorkGroupInfo()

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 
)

Definition at line 969 of file OpenCL.cpp.

975 {
978  if(func != nullptr)
979  {
980  return func(kernel, device, param_name, param_value_size, param_value, param_value_size_ret);
981  }
982  else
983  {
984  return CL_OUT_OF_RESOURCES;
985  }
986 }

References CLSymbols::clGetKernelWorkGroupInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetMemObjectInfo()

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 
)

Definition at line 904 of file OpenCL.cpp.

909 {
912  if(func != nullptr)
913  {
914  return func(memobj, param_name, param_value_size, param_value, param_value_size_ret);
915  }
916  else
917  {
918  return CL_OUT_OF_RESOURCES;
919  }
920 }

References CLSymbols::clGetMemObjectInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetPlatformIDs()

cl_int clGetPlatformIDs ( cl_uint  num_entries,
cl_platform_id *  platforms,
cl_uint *  num_platforms 
)

Definition at line 954 of file OpenCL.cpp.

955 {
958  if(func != nullptr)
959  {
960  return func(num_entries, platforms, num_platforms);
961  }
962  else
963  {
964  return CL_OUT_OF_RESOURCES;
965  }
966 }

References CLSymbols::clGetPlatformIDs_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and arm_compute::opencl_is_available().

◆ clGetPlatformInfo()

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 
)

Definition at line 936 of file OpenCL.cpp.

941 {
944  if(func != nullptr)
945  {
946  return func(platform, param_name, param_value_size, param_value, param_value_size_ret);
947  }
948  else
949  {
950  return CL_OUT_OF_RESOURCES;
951  }
952 }

References CLSymbols::clGetPlatformInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetProgramBuildInfo()

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 
)

Definition at line 597 of file OpenCL.cpp.

604 {
607  if(func != nullptr)
608  {
609  return func(program, device, param_name, param_value_size, param_value, param_value_size_ret);
610  }
611  else
612  {
613  return CL_OUT_OF_RESOURCES;
614  }
615 }

References CLSymbols::clGetProgramBuildInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clGetProgramInfo()

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 
)

Definition at line 754 of file OpenCL.cpp.

760 {
763  if(func != nullptr)
764  {
765  return func(program, param_name, param_value_size, param_value, param_value_size_ret);
766  }
767  else
768  {
769  return CL_OUT_OF_RESOURCES;
770  }
771 }

References CLSymbols::clGetProgramInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clImportMemoryARM()

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 
)

Definition at line 1087 of file OpenCL.cpp.

1093 {
1096  if(func != nullptr)
1097  {
1098  return func(context, flags, properties, memory, size, errcode_ret);
1099  }
1100  else
1101  {
1102  if(errcode_ret != nullptr)
1103  {
1104  *errcode_ret = CL_OUT_OF_RESOURCES;
1105  }
1106  return nullptr;
1107  }
1108 }

References CLSymbols::clImportMemoryARM_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clReleaseCommandQueue()

cl_int clReleaseCommandQueue ( cl_command_queue  command_queue)

Definition at line 659 of file OpenCL.cpp.

660 {
663  if(func != nullptr)
664  {
665  return func(command_queue);
666  }
667  else
668  {
669  return CL_OUT_OF_RESOURCES;
670  }
671 }

References CLSymbols::clReleaseCommandQueue_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and arm_compute::test::validation::TEST_CASE().

◆ clReleaseContext()

cl_int clReleaseContext ( cl_context  context)

Definition at line 524 of file OpenCL.cpp.

525 {
528  if(func != nullptr)
529  {
530  return func(context);
531  }
532  else
533  {
534  return CL_OUT_OF_RESOURCES;
535  }
536 }

References CLSymbols::clReleaseContext_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clReleaseEvent()

cl_int clReleaseEvent ( cl_event  event)

Definition at line 537 of file OpenCL.cpp.

538 {
541  if(func != nullptr)
542  {
543  return func(event);
544  }
545  else
546  {
547  return CL_OUT_OF_RESOURCES;
548  }
549 }

References CLSymbols::clReleaseEvent_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clReleaseKernel()

cl_int clReleaseKernel ( cl_kernel  kernel)

Definition at line 854 of file OpenCL.cpp.

855 {
858  if(func != nullptr)
859  {
860  return func(kernel);
861  }
862  else
863  {
864  return CL_OUT_OF_RESOURCES;
865  }
866 }

References CLSymbols::clReleaseKernel_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clReleaseMemObject()

cl_int clReleaseMemObject ( cl_mem  memobj)

Definition at line 476 of file OpenCL.cpp.

477 {
480  if(func != nullptr)
481  {
482  return func(memobj);
483  }
484  else
485  {
486  return CL_OUT_OF_RESOURCES;
487  }
488 }

References CLSymbols::clReleaseMemObject_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLBufferAllocator::free(), and CLSymbols::load().

◆ clReleaseProgram()

cl_int clReleaseProgram ( cl_program  program)

Definition at line 712 of file OpenCL.cpp.

713 {
716  if(func != nullptr)
717  {
718  return func(program);
719  }
720  else
721  {
722  return CL_OUT_OF_RESOURCES;
723  }
724 }

References CLSymbols::clReleaseProgram_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clRetainCommandQueue()

cl_int clRetainCommandQueue ( cl_command_queue  command_queue)

Definition at line 510 of file OpenCL.cpp.

511 {
514  if(func != nullptr)
515  {
516  return func(command_queue);
517  }
518  else
519  {
520  return CL_OUT_OF_RESOURCES;
521  }
522 }

References CLSymbols::clRetainCommandQueue_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clRetainContext()

cl_int clRetainContext ( cl_context  context)

Definition at line 698 of file OpenCL.cpp.

699 {
702  if(func != nullptr)
703  {
704  return func(context);
705  }
706  else
707  {
708  return CL_OUT_OF_RESOURCES;
709  }
710 }

References CLSymbols::clRetainContext_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clRetainEvent()

cl_int clRetainEvent ( cl_event  event)

Definition at line 922 of file OpenCL.cpp.

923 {
926  if(func != nullptr)
927  {
928  return func(event);
929  }
930  else
931  {
932  return CL_OUT_OF_RESOURCES;
933  }
934 }

References CLSymbols::clRetainEvent_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and OpenCLClock< output_timestamps >::test_start().

◆ clRetainKernel()

cl_int clRetainKernel ( cl_kernel  kernel)

Definition at line 794 of file OpenCL.cpp.

795 {
798  if(func != nullptr)
799  {
800  return func(kernel);
801  }
802  else
803  {
804  return CL_OUT_OF_RESOURCES;
805  }
806 }

References CLSymbols::clRetainKernel_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clRetainMemObject()

cl_int clRetainMemObject ( cl_mem  memobj)

Definition at line 462 of file OpenCL.cpp.

463 {
466  if(func != nullptr)
467  {
468  return func(memobj);
469  }
470  else
471  {
472  return CL_OUT_OF_RESOURCES;
473  }
474 }

References CLSymbols::clRetainMemObject_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clRetainProgram()

cl_int clRetainProgram ( cl_program  program)

Definition at line 617 of file OpenCL.cpp.

618 {
621  if(func != nullptr)
622  {
623  return func(program);
624  }
625  else
626  {
627  return CL_OUT_OF_RESOURCES;
628  }
629 }

References CLSymbols::clRetainProgram_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clSetKernelArg()

cl_int clSetKernelArg ( cl_kernel  kernel,
cl_uint  arg_index,
size_t  arg_size,
const void *  arg_value 
)

Definition at line 444 of file OpenCL.cpp.

449 {
452  if(func != nullptr)
453  {
454  return func(kernel, arg_index, arg_size, arg_value);
455  }
456  else
457  {
458  return CL_OUT_OF_RESOURCES;
459  }
460 }

References CLSymbols::clSetKernelArg_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clSetKernelExecInfo()

cl_int clSetKernelExecInfo ( cl_kernel  kernel,
cl_kernel_exec_info  param_name,
size_t  param_value_size,
const void *  param_value 
)

Definition at line 1069 of file OpenCL.cpp.

1073 {
1076  if(func != nullptr)
1077  {
1078  return func(kernel, param_name, param_value_size, param_value);
1079  }
1080  else
1081  {
1082  return CL_OUT_OF_RESOURCES;
1083  }
1084 }

References CLSymbols::clSetKernelExecInfo_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load(), and arm_compute::set_wbsm().

◆ clSVMAlloc()

void* clSVMAlloc ( cl_context  context,
cl_svm_mem_flags_arm  flags,
size_t  size,
cl_uint  alignment 
)

Definition at line 287 of file OpenCL.cpp.

288 {
291  if(func != nullptr)
292  {
293  return func(context, flags, size, alignment);
294  }
295  else
296  {
297  return nullptr;
298  }
299 }

References CLSymbols::clSVMAlloc_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clSVMFree()

void clSVMFree ( cl_context  context,
void *  svm_pointer 
)

Definition at line 301 of file OpenCL.cpp.

302 {
305  if(func != nullptr)
306  {
307  func(context, svm_pointer);
308  }
309 }

References CLSymbols::clSVMFree_ptr, arm_compute::test::validation::context, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

◆ clWaitForEvents()

cl_int clWaitForEvents ( cl_uint  num_events,
const cl_event *  event_list 
)

Definition at line 242 of file OpenCL.cpp.

244 {
247  if(func != nullptr)
248  {
249  return func(num_events, event_list);
250  }
251  else
252  {
253  return CL_OUT_OF_RESOURCES;
254  }
255 }

References CLSymbols::clWaitForEvents_ptr, CLSymbols::get(), and CLSymbols::load_default().

Referenced by CLSymbols::load().

arm_compute::CLSymbols::clEnqueueReadBuffer_ptr
std::function< decltype(clEnqueueReadBuffer)> clEnqueueReadBuffer_ptr
Definition: OpenCL.h:117
arm_compute::CLSymbols::get
static CLSymbols & get()
Get the static instance of CLSymbols.
Definition: OpenCL.cpp:47
arm_compute::CLSymbols::clRetainContext_ptr
std::function< decltype(clRetainContext)> clRetainContext_ptr
Definition: OpenCL.h:111
arm_compute::CLSymbols::clReleaseKernel_ptr
std::function< decltype(clReleaseKernel)> clReleaseKernel_ptr
Definition: OpenCL.h:102
arm_compute::CLSymbols::clGetEventProfilingInfo_ptr
std::function< decltype(clGetEventProfilingInfo)> clGetEventProfilingInfo_ptr
Definition: OpenCL.h:134
arm_compute::CLSymbols::clEnqueueSVMUnmap_ptr
std::function< decltype(clEnqueueSVMUnmap)> clEnqueueSVMUnmap_ptr
Definition: OpenCL.h:138
arm_compute::CLSymbols::clGetDeviceInfo_ptr
std::function< decltype(clGetDeviceInfo)> clGetDeviceInfo_ptr
Definition: OpenCL.h:125
arm_compute::CLSymbols::clReleaseProgram_ptr
std::function< decltype(clReleaseProgram)> clReleaseProgram_ptr
Definition: OpenCL.h:110
arm_compute::CLSymbols::clReleaseMemObject_ptr
std::function< decltype(clReleaseMemObject)> clReleaseMemObject_ptr
Definition: OpenCL.h:124
arm_compute::CLSymbols::clCreateProgramWithSource_ptr
std::function< decltype(clCreateProgramWithSource)> clCreateProgramWithSource_ptr
Definition: OpenCL.h:103
arm_compute::CLSymbols::clRetainProgram_ptr
std::function< decltype(clRetainProgram)> clRetainProgram_ptr
Definition: OpenCL.h:115
arm_compute::CLSymbols::clCreateBuffer_ptr
std::function< decltype(clCreateBuffer)> clCreateBuffer_ptr
Definition: OpenCL.h:104
arm_compute::CLSymbols::clGetProgramInfo_ptr
std::function< decltype(clGetProgramInfo)> clGetProgramInfo_ptr
Definition: OpenCL.h:107
arm_compute::CLSymbols::clReleaseCommandQueue_ptr
std::function< decltype(clReleaseCommandQueue)> clReleaseCommandQueue_ptr
Definition: OpenCL.h:113
arm_compute::CLSymbols::clEnqueueSVMMap_ptr
std::function< decltype(clEnqueueSVMMap)> clEnqueueSVMMap_ptr
Definition: OpenCL.h:137
arm_compute::CLSymbols::clGetContextInfo_ptr
std::function< decltype(clGetContextInfo)> clGetContextInfo_ptr
Definition: OpenCL.h:98
arm_compute::CLSymbols::clRetainCommandQueue_ptr
std::function< decltype(clRetainCommandQueue)> clRetainCommandQueue_ptr
Definition: OpenCL.h:121
arm_compute::CLSymbols::clWaitForEvents_ptr
std::function< decltype(clWaitForEvents)> clWaitForEvents_ptr
Definition: OpenCL.h:140
arm_compute::CLSymbols::clEnqueueUnmapMemObject_ptr
std::function< decltype(clEnqueueUnmapMemObject)> clEnqueueUnmapMemObject_ptr
Definition: OpenCL.h:122
arm_compute::CLSymbols::clSVMAlloc_ptr
std::function< decltype(clSVMAlloc)> clSVMAlloc_ptr
Definition: OpenCL.h:135
arm_compute::CLSymbols::clEnqueueNDRangeKernel_ptr
std::function< decltype(clEnqueueNDRangeKernel)> clEnqueueNDRangeKernel_ptr
Definition: OpenCL.h:100
arm_compute::CLSymbols::clFinish_ptr
std::function< decltype(clFinish)> clFinish_ptr
Definition: OpenCL.h:109
arm_compute::CLSymbols::clGetPlatformIDs_ptr
std::function< decltype(clGetPlatformIDs)> clGetPlatformIDs_ptr
Definition: OpenCL.h:130
arm_compute::CLSymbols::clCreateContext_ptr
std::function< decltype(clCreateContext)> clCreateContext_ptr
Definition: OpenCL.h:94
arm_compute::CLSymbols::clGetKernelWorkGroupInfo_ptr
std::function< decltype(clGetKernelWorkGroupInfo)> clGetKernelWorkGroupInfo_ptr
Definition: OpenCL.h:131
arm_compute::CLSymbols::clCreateImage_ptr
std::function< decltype(clCreateImage)> clCreateImage_ptr
Definition: OpenCL.h:141
offset
__global uchar * offset(const Image *img, int x, int y)
Get the pointer position of a Image.
Definition: helpers.h:1112
arm_compute::CLSymbols::load_default
bool load_default()
Load symbols from any of the default OpenCL library names.
Definition: OpenCL.cpp:53
arm_compute::CLSymbols::clGetCommandQueueInfo_ptr
std::function< decltype(clGetCommandQueueInfo)> clGetCommandQueueInfo_ptr
Definition: OpenCL.h:132
arm_compute::test::validation::context
auto context
Definition: DirectConv2d.cpp:160
arm_compute::CLSymbols::clGetDeviceIDs_ptr
std::function< decltype(clGetDeviceIDs)> clGetDeviceIDs_ptr
Definition: OpenCL.h:126
arm_compute::CLSymbols::clEnqueueWriteBuffer_ptr
std::function< decltype(clEnqueueWriteBuffer)> clEnqueueWriteBuffer_ptr
Definition: OpenCL.h:118
arm_compute::CLSymbols::clEnqueueMarker_ptr
std::function< decltype(clEnqueueMarker)> clEnqueueMarker_ptr
Definition: OpenCL.h:139
arm_compute::CLSymbols::clCreateProgramWithBinary_ptr
std::function< decltype(clCreateProgramWithBinary)> clCreateProgramWithBinary_ptr
Definition: OpenCL.h:112
arm_compute::CLSymbols::clCreateCommandQueueWithProperties_ptr
std::function< decltype(clCreateCommandQueueWithProperties)> clCreateCommandQueueWithProperties_ptr
Definition: OpenCL.h:97
arm_compute::CLSymbols::clBuildProgram_ptr
std::function< decltype(clBuildProgram)> clBuildProgram_ptr
Definition: OpenCL.h:99
arm_compute::CLSymbols::clRetainEvent_ptr
std::function< decltype(clRetainEvent)> clRetainEvent_ptr
Definition: OpenCL.h:128
arm_compute::CLSymbols::clRetainKernel_ptr
std::function< decltype(clRetainKernel)> clRetainKernel_ptr
Definition: OpenCL.h:105
arm_compute::CLSymbols::clGetKernelInfo_ptr
std::function< decltype(clGetKernelInfo)> clGetKernelInfo_ptr
Definition: OpenCL.h:133
arm_compute::CLSymbols::clImportMemoryARM_ptr
std::function< decltype(clImportMemoryARM)> clImportMemoryARM_ptr
Definition: OpenCL.h:145
arm_compute::CLSymbols::clGetPlatformInfo_ptr
std::function< decltype(clGetPlatformInfo)> clGetPlatformInfo_ptr
Definition: OpenCL.h:129
arm_compute::CLSymbols::clGetProgramBuildInfo_ptr
std::function< decltype(clGetProgramBuildInfo)> clGetProgramBuildInfo_ptr
Definition: OpenCL.h:116
arm_compute::CLSymbols::clEnqueueMapBuffer_ptr
std::function< decltype(clEnqueueMapBuffer)> clEnqueueMapBuffer_ptr
Definition: OpenCL.h:114
arm_compute::CLSymbols::clGetMemObjectInfo_ptr
std::function< decltype(clGetMemObjectInfo)> clGetMemObjectInfo_ptr
Definition: OpenCL.h:127
arm_compute::CLSymbols::clFlush_ptr
std::function< decltype(clFlush)> clFlush_ptr
Definition: OpenCL.h:108
arm_compute::CLSymbols::clSetKernelExecInfo_ptr
std::function< decltype(clSetKernelExecInfo)> clSetKernelExecInfo_ptr
Definition: OpenCL.h:142
arm_compute::CLSymbols::clCreateCommandQueue_ptr
std::function< decltype(clCreateCommandQueue)> clCreateCommandQueue_ptr
Definition: OpenCL.h:96
arm_compute::CLSymbols::clReleaseContext_ptr
std::function< decltype(clReleaseContext)> clReleaseContext_ptr
Definition: OpenCL.h:120
arm_compute::CLSymbols::clCreateContextFromType_ptr
std::function< decltype(clCreateContextFromType)> clCreateContextFromType_ptr
Definition: OpenCL.h:95
arm_compute::CLSymbols::clReleaseEvent_ptr
std::function< decltype(clReleaseEvent)> clReleaseEvent_ptr
Definition: OpenCL.h:119
arm_compute::CLSymbols::clSetKernelArg_ptr
std::function< decltype(clSetKernelArg)> clSetKernelArg_ptr
Definition: OpenCL.h:101
arm_compute::CLSymbols::clRetainMemObject_ptr
std::function< decltype(clRetainMemObject)> clRetainMemObject_ptr
Definition: OpenCL.h:123
arm_compute::CLSymbols::clCreateKernel_ptr
std::function< decltype(clCreateKernel)> clCreateKernel_ptr
Definition: OpenCL.h:106
arm_compute::CLSymbols::clSVMFree_ptr
std::function< decltype(clSVMFree)> clSVMFree_ptr
Definition: OpenCL.h:136
kernel_name
std::string kernel_name
Definition: ClIm2ColKernel.cpp:57