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_formatA structure that describes the channel order and data type of an OpenCL image's pixels.
- St_cl_image_descA structure that describes the dimensions, type, and layout of an OpenCL image memory object.
- St_cl_buffer_regionA 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_ndrangeA structure that describes the dimensions and work-item ranges over which a data-parallel kernel executes.
- Stclk_sampler_typeA 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.
- Stcl_char2A vector value type holding two signed 8-bit integer components.
- Stcl_char4A vector value type holding four signed 8-bit integer components.
- Stcl_char8A vector value type holding eight signed 8-bit integer components.
- Stcl_char16A vector value type holding sixteen signed 8-bit integer components.
- Stcl_short2A vector value type holding two signed 16-bit integer components.
- Stcl_short4A vector value type holding four signed 16-bit integer components.
- Stcl_short8A vector value type holding eight signed 16-bit integer components.
- Stcl_int2A vector value type holding two signed 32-bit integer components.
- Stcl_int4A vector value type holding four signed 32-bit integer components.
- Stcl_long2A 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.
- Stcl_uchar2A vector value type holding two unsigned 8-bit integer components.
- Stcl_uchar4A vector value type holding four unsigned 8-bit integer components.
- Stcl_uchar8A vector value type holding eight unsigned 8-bit integer components.
- Stcl_uchar16A vector value type holding sixteen unsigned 8-bit integer components.
- Stcl_ushort2A vector value type holding two unsigned 16-bit integer components.
- Stcl_ushort4A vector value type holding four unsigned 16-bit integer components.
- Stcl_ushort8A vector value type holding eight unsigned 16-bit integer components.
- Stcl_uint2A vector value type holding two unsigned 32-bit integer components.
- Stcl_uint4A vector value type holding four unsigned 32-bit integer components.
- Stcl_ulong2A vector value type holding two unsigned 64-bit integer components.
Floating-Point Vectors 3
Packed single- and double-precision floating-point vector value types.
- Stcl_float2A vector value type holding two single-precision floating-point components.
- Stcl_float4A vector value type holding four single-precision floating-point components.
- Stcl_double2A vector value type holding two double-precision floating-point components.
Type Aliases 88
- Tycl_platform_id/
- Tycl_device_id
- Tycl_context
- Tycl_command_queue
- Tycl_mem
- Tycl_program
- Tycl_kernel
- Tycl_event
- Tycl_sampler
- Tycl_bool
- Tycl_bitfield
- Tycl_device_type
- Tycl_platform_info
- Tycl_device_info
- Tycl_device_fp_config
- Tycl_device_mem_cache_type
Show 72 more
- Tycl_device_local_mem_type
- Tycl_device_exec_capabilities
- Tycl_command_queue_properties
- Tycl_device_partition_property
- Tycl_device_affinity_domain
- Tycl_context_properties
- Tycl_context_info
- Tycl_command_queue_info
- Tycl_channel_order
- Tycl_channel_type
- Tycl_mem_flags
- Tycl_mem_object_type
- Tycl_mem_info
- Tycl_mem_migration_flags
- Tycl_image_info
- Tycl_buffer_create_type
- Tycl_addressing_mode
- Tycl_filter_mode
- Tycl_sampler_info
- Tycl_map_flags
- Tycl_program_info
- Tycl_program_build_info
- Tycl_program_binary_type
- Tycl_build_status
- Tycl_kernel_info
- Tycl_kernel_arg_info
- Tycl_kernel_arg_address_qualifier
- Tycl_kernel_arg_access_qualifier
- Tycl_kernel_arg_type_qualifier
- Tycl_kernel_work_group_info
- Tycl_event_info
- Tycl_command_type
- Tycl_profiling_info
- Tycl_image_format
- Tycl_image_desc
- Tycl_buffer_region
- Tycl_dag
- Tycl_dag_node
- Tycl_queue_properties_APPLE
- Tycl_gl_object_type
- Tycl_gl_texture_info
- Tycl_gl_platform_info
- Tycl_GLsync
- Tycl_iosurface_properties_APPLE
- Tycl_char
- Tycl_uchar
- Tycl_short
- Tycl_ushort
- Tycl_int
- Tycl_uint
- Tycl_long
- Tycl_ulong
- Tycl_half
- Tycl_float
- Tycl_double
- Tycl_GLuint
- Tycl_GLint
- Tycl_GLenum
- Tycl_char3
- Tycl_uchar3
- Tycl_short3
- Tycl_ushort3
- Tycl_int3
- Tycl_uint3
- Tycl_float3
- Tycl_ndrange
- Tycl_image
- Tycl_timer
- Tysampler_t
- Tycl_queue_flags
- Tycl_malloc_flags
- Tycl_image_type