TechnologiesLow-level, Kernel & Legacy

OpenCL

iOSmacOStvOSwatchOSvisionOS

OpenCL is a legacy macOS framework for general-purpose parallel computation on CPUs and GPUs using the Open Computing Language. You use it to express data-parallel work and run it across compute devices, operating on memory regions and image data through types such as _cl_buffer_region, _cl_image_format, _cl_image_desc, and _cl_ndrange. The framework provides vector value types covering integer and floating-point widths, including cl_char2, cl_uchar16, cl_int4, cl_uint4, cl_float4, and cl_double2, that map onto the parallel data the language operates over.

Memory and Image Descriptors 3

Structures that describe the memory regions, image layouts, and pixel formats that OpenCL kernels operate on.

  • St
    _cl_image_format
    A structure that describes the channel order and data type of an OpenCL image's pixels.
  • St
    _cl_image_desc
    A structure that describes the dimensions, type, and layout of an OpenCL image memory object.
  • St
    _cl_buffer_region
    A structure that specifies an offset and size identifying a sub-region within an OpenCL buffer.

Execution Configuration 2

Types that describe how data-parallel work is dispatched and how images are sampled across compute devices.

  • St
    _cl_ndrange
    A structure that describes the dimensions and work-item ranges over which a data-parallel kernel executes.
  • St
    clk_sampler_type
    A type that encodes the addressing, filtering, and coordinate options used when sampling OpenCL images.

Signed Integer Vectors 10

Packed signed integer vector value types spanning 8-, 16-, 32-, and 64-bit element widths.

  • St
    cl_char2
    A vector value type holding two signed 8-bit integer components.
  • St
    cl_char4
    A vector value type holding four signed 8-bit integer components.
  • St
    cl_char8
    A vector value type holding eight signed 8-bit integer components.
  • St
    cl_char16
    A vector value type holding sixteen signed 8-bit integer components.
  • St
    cl_short2
    A vector value type holding two signed 16-bit integer components.
  • St
    cl_short4
    A vector value type holding four signed 16-bit integer components.
  • St
    cl_short8
    A vector value type holding eight signed 16-bit integer components.
  • St
    cl_int2
    A vector value type holding two signed 32-bit integer components.
  • St
    cl_int4
    A vector value type holding four signed 32-bit integer components.
  • St
    cl_long2
    A vector value type holding two signed 64-bit integer components.

Unsigned Integer Vectors 10

Packed unsigned integer vector value types spanning 8-, 16-, 32-, and 64-bit element widths.

  • St
    cl_uchar2
    A vector value type holding two unsigned 8-bit integer components.
  • St
    cl_uchar4
    A vector value type holding four unsigned 8-bit integer components.
  • St
    cl_uchar8
    A vector value type holding eight unsigned 8-bit integer components.
  • St
    cl_uchar16
    A vector value type holding sixteen unsigned 8-bit integer components.
  • St
    cl_ushort2
    A vector value type holding two unsigned 16-bit integer components.
  • St
    cl_ushort4
    A vector value type holding four unsigned 16-bit integer components.
  • St
    cl_ushort8
    A vector value type holding eight unsigned 16-bit integer components.
  • St
    cl_uint2
    A vector value type holding two unsigned 32-bit integer components.
  • St
    cl_uint4
    A vector value type holding four unsigned 32-bit integer components.
  • St
    cl_ulong2
    A vector value type holding two unsigned 64-bit integer components.

Floating-Point Vectors 3

Packed single- and double-precision floating-point vector value types.

  • St
    cl_float2
    A vector value type holding two single-precision floating-point components.
  • St
    cl_float4
    A vector value type holding four single-precision floating-point components.
  • St
    cl_double2
    A vector value type holding two double-precision floating-point components.

Type Aliases 88

  • Ty
    cl_platform_id
    /
  • Ty
    cl_device_id
  • Ty
    cl_context
  • Ty
    cl_command_queue
  • Ty
    cl_mem
  • Ty
    cl_program
  • Ty
    cl_kernel
  • Ty
    cl_event
  • Ty
    cl_sampler
  • Ty
    cl_bool
  • Ty
    cl_bitfield
  • Ty
    cl_device_type
  • Ty
    cl_platform_info
  • Ty
    cl_device_info
  • Ty
    cl_device_fp_config
  • Ty
    cl_device_mem_cache_type
Show 72 more
  • Ty
    cl_device_local_mem_type
  • Ty
    cl_device_exec_capabilities
  • Ty
    cl_command_queue_properties
  • Ty
    cl_device_partition_property
  • Ty
    cl_device_affinity_domain
  • Ty
    cl_context_properties
  • Ty
    cl_context_info
  • Ty
    cl_command_queue_info
  • Ty
    cl_channel_order
  • Ty
    cl_channel_type
  • Ty
    cl_mem_flags
  • Ty
    cl_mem_object_type
  • Ty
    cl_mem_info
  • Ty
    cl_mem_migration_flags
  • Ty
    cl_image_info
  • Ty
    cl_buffer_create_type
  • Ty
    cl_addressing_mode
  • Ty
    cl_filter_mode
  • Ty
    cl_sampler_info
  • Ty
    cl_map_flags
  • Ty
    cl_program_info
  • Ty
    cl_program_build_info
  • Ty
    cl_program_binary_type
  • Ty
    cl_build_status
  • Ty
    cl_kernel_info
  • Ty
    cl_kernel_arg_info
  • Ty
    cl_kernel_arg_address_qualifier
  • Ty
    cl_kernel_arg_access_qualifier
  • Ty
    cl_kernel_arg_type_qualifier
  • Ty
    cl_kernel_work_group_info
  • Ty
    cl_event_info
  • Ty
    cl_command_type
  • Ty
    cl_profiling_info
  • Ty
    cl_image_format
  • Ty
    cl_image_desc
  • Ty
    cl_buffer_region
  • Ty
    cl_dag
  • Ty
    cl_dag_node
  • Ty
    cl_queue_properties_APPLE
  • Ty
    cl_gl_object_type
  • Ty
    cl_gl_texture_info
  • Ty
    cl_gl_platform_info
  • Ty
    cl_GLsync
  • Ty
    cl_iosurface_properties_APPLE
  • Ty
    cl_char
  • Ty
    cl_uchar
  • Ty
    cl_short
  • Ty
    cl_ushort
  • Ty
    cl_int
  • Ty
    cl_uint
  • Ty
    cl_long
  • Ty
    cl_ulong
  • Ty
    cl_half
  • Ty
    cl_float
  • Ty
    cl_double
  • Ty
    cl_GLuint
  • Ty
    cl_GLint
  • Ty
    cl_GLenum
  • Ty
    cl_char3
  • Ty
    cl_uchar3
  • Ty
    cl_short3
  • Ty
    cl_ushort3
  • Ty
    cl_int3
  • Ty
    cl_uint3
  • Ty
    cl_float3
  • Ty
    cl_ndrange
  • Ty
    cl_image
  • Ty
    cl_timer
  • Ty
    sampler_t
  • Ty
    cl_queue_flags
  • Ty
    cl_malloc_flags
  • Ty
    cl_image_type
← Low-level, Kernel & Legacy