Class: OpenCL::Device

Inherits:
ExtendedStruct show all
Includes:
AMDDeviceAttributeQuery, AdvanceMotionEstimationINTEL, EXTDeviceFission, KHRDeviceUUID, KHRFP16, KHRFP64, KHRSPIR, NVDeviceAttributeQuery, OpenCL11, OpenCL12, OpenCL20, OpenCL21, OpenCL30, UnifiedSharedMemoryPreviewINTEL
Defined in:
lib/opencl_ruby_ffi/Device.rb,
lib/opencl_ruby_ffi/opencl_ruby_ffi_base_gen.rb,
lib/opencl_ruby_ffi/opencl_ruby_ffi_base_gen.rb,
lib/opencl_ruby_ffi/khr/fp16.rb,
lib/opencl_ruby_ffi/khr/fp64.rb,
lib/opencl_ruby_ffi/khr/spir.rb,
lib/opencl_ruby_ffi/khr/device_uuid.rb,
lib/opencl_ruby_ffi/ext/device_fission.rb,
lib/opencl_ruby_ffi/ext/device_fission.rb,
lib/opencl_ruby_ffi/khr/terminate_context.rb,
lib/opencl_ruby_ffi/nv/device_attribute_query.rb,
lib/opencl_ruby_ffi/amd/device_attribute_query.rb,
lib/opencl_ruby_ffi/intel/advanced_motion_estimation.rb,
lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb

Overview

Maps the cl_device_id object of OpenCL

Defined Under Namespace

Modules: AMDDeviceAttributeQuery, AdvanceMotionEstimationINTEL, EXTDeviceFission, KHRDeviceUUID, KHRFP16, KHRFP64, KHRSPIR, NVDeviceAttributeQuery, OpenCL11, OpenCL12, OpenCL20, OpenCL21, OpenCL30, UnifiedSharedMemoryPreviewINTEL Classes: AffinityDomain, AffinityDomainEXT, AtomicCapabilities, ExecCapabilities, FPConfig, LocalMemType, MemCacheType, Partition, PartitionEXT, SVMCapabilities, Type

Instance Method Summary collapse

Methods included from UnifiedSharedMemoryPreviewINTEL

#clGetDeviceGlobalVariablePointerINTEL, #cross_device_mem_capabilities_intel, #device_mem_capabilities_intel, #device_shared_mem_capabilities_intel, #get_global_variable_pointer_intel, #host_mem_capabilities_intel, #shared_system_mem_capabilities_intel

Methods included from AdvanceMotionEstimationINTEL

#me_version_intel

Methods included from AMDDeviceAttributeQuery

#available_async_queues_amd, #board_name_amd, #gfxip_major_amd, #gfxip_minor_amd, #global_free_memory_amd, #global_mem_channel_bank_width_amd, #global_mem_channel_banks_amd, #global_mem_channels_amd, #local_mem_banks_amd, #local_mem_size_per_compute_unit_amd, #profiling_timer_offset_amd, #simd_instruction_width_amd, #simd_per_compute_unit_amd, #simd_width_amd, #thread_trace_supported_amd, #topology_amd, #wavefront_width_amd

Methods included from NVDeviceAttributeQuery

#attribute_async_engine_count_nv, #compute_capability_major_nv, #compute_capability_minor_nv, #gpu_overlap_nv, #integrated_memory_nv, #kernel_exec_timeout_nv, #pci_bus_id_nv, #pci_slot_id_nv, #registers_per_block_nv, #warp_size_nv

Methods included from EXTDeviceFission

#affinity_domains_ext, #create_sub_devices_ext, #parent_device_ext, #partition_by_affinity_domain_ext, #partition_by_counts_ext, #partition_by_names_ext, #partition_equally_ext, #partition_style_ext, #partition_types_ext, #reference_count_ext

Methods included from KHRDeviceUUID

#driver_uuid_khr, #luid_khr, #luid_valid_khr, #node_mask_khr, #uuid_khr

Methods included from KHRSPIR

#spir_versions, #spir_versions_number

Methods included from KHRFP64

#double_fp_config

Methods included from KHRFP16

#half_fp_config

Methods included from OpenCL30

#atomic_fence_capabilities, #atomic_memory_capabilities, #built_in_kernels_with_version, #device_enqueue_support, #extensions_with_version, #generic_address_space_support, #ils_with_version, #non_uniform_work_group_support, #numeric_version, #opencl_c_all_versions, #opencl_c_features, #pipe_support, #preferred_work_group_size_multiple, #work_group_collective_functions_support

Methods included from OpenCL21

#get_device_and_host_timer, #get_host_timer, #il_version, #il_version_number, #max_num_sub_groups, #subgroup_independent_forward_progress

Methods included from OpenCL20

#global_variable_preferred_total_size, #image_base_address_alignment, #image_pitch_alignment, #max_on_device_events, #max_on_device_queues, #max_pipe_args, #max_read_write_image_args, #pipe_max_active_reservations, #pipe_max_packet_size, #preferred_global_atomic_alignment, #preferred_local_atomic_alignment, #preferred_platform_atomic_alignment, #queue_on_device_max_size, #queue_on_device_preferred_size, #queue_on_device_properties, #queue_on_host_properties, #svm_capabilities

Methods included from OpenCL12

#built_in_kernels, #create_sub_devices, #image_max_array_size, #image_max_buffer_size, #linker_available, #parent_device, #partition_affinity_domain, #partition_by_affinity_domain, #partition_by_counts, #partition_by_names_intel, #partition_equally, #partition_max_sub_devices, #partition_properties, #partition_type, #preferred_interop_user_sync, #printf_buffer_size, #reference_count

Methods included from OpenCL11

#host_unified_memory, #native_vector_width_char, #native_vector_width_double, #native_vector_width_float, #native_vector_width_half, #native_vector_width_int, #native_vector_width_long, #native_vector_width_short, #opencl_c_version, #opencl_c_version_number, #preferred_vector_width_half

Methods inherited from ExtendedStruct

register_extension

Constructor Details

#initialize(ptr, retain = true) ⇒ Device

Creates a new Device and retains it if specified and aplicable



133
134
135
136
137
138
139
140
141
142
143
# File 'lib/opencl_ruby_ffi/ext/device_fission.rb', line 133

def initialize(ptr, retain = true)
  super(ptr)
  p = platform
  if p.version_number >= 1.2 and retain then
    error = OpenCL.clRetainDevice(ptr)
    error_check( error )
  elsif p.version_number >= 1.1 and retain and extensions.include? "cl_ext_device_fission" then
    error = OpenCL.clRetainDeviceEXT(ptr)
    error_check( error )
  end
end

Instance Method Details

#address_bitsObject

Returns the OpenCL::Device::address_bits info

Returns:

  • cl_uint



59
# File 'lib/opencl_ruby_ffi/Device.rb', line 59

get_info("Device", :cl_uint, "address_bits", true)

#availableObject

Returns the OpenCL::Device::available info

Returns:

  • cl_bool



60
# File 'lib/opencl_ruby_ffi/Device.rb', line 60

get_info("Device", :cl_bool, "available")

#compiler_availableObject

Returns the OpenCL::Device::compiler_available info

Returns:

  • cl_bool



61
# File 'lib/opencl_ruby_ffi/Device.rb', line 61

get_info("Device", :cl_bool, "compiler_available")

#driver_versionObject

Returns the OpenCL::Device::driver_version info

Returns:

  • string



140
# File 'lib/opencl_ruby_ffi/Device.rb', line 140

get_info("Device", :string, "driver_version")

#endian_littleObject

Returns the OpenCL::Device::endian_little info

Returns:

  • cl_bool



62
# File 'lib/opencl_ruby_ffi/Device.rb', line 62

get_info("Device", :cl_bool, "endian_little")

#error_correction_supportObject

Returns the OpenCL::Device::error_correction_support info

Returns:

  • cl_bool



63
# File 'lib/opencl_ruby_ffi/Device.rb', line 63

get_info("Device", :cl_bool, "error_correction_support")

#execution_capabilitiesObject

Returns the OpenCL::Device::execution_capabilities info

Returns:

  • cl_device_exec_capabilities



64
# File 'lib/opencl_ruby_ffi/Device.rb', line 64

get_info("Device", :cl_device_exec_capabilities, "execution_capabilities")

#extensionsObject

Returns an Array of String corresponding to the Device extensions



67
68
69
70
71
72
73
74
75
76
# File 'lib/opencl_ruby_ffi/Device.rb', line 67

def extensions
  extensions_size = MemoryPointer::new( :size_t )
  error = OpenCL.clGetDeviceInfo( self, EXTENSIONS, 0, nil, extensions_size)
  error_check(error)
  ext = MemoryPointer::new( extensions_size.read_size_t )
  error = OpenCL.clGetDeviceInfo( self, EXTENSIONS, extensions_size.read_size_t, ext, nil)
  error_check(error)
  ext_string = ext.read_string
  return ext_string.split(" ")
end

#global_mem_cache_sizeObject

Returns the OpenCL::Device::global_mem_cache_size info

Returns:

  • cl_ulong



78
# File 'lib/opencl_ruby_ffi/Device.rb', line 78

get_info("Device", :cl_ulong, "global_mem_cache_size")

#global_mem_cache_typeObject

Returns the OpenCL::Device::global_mem_cache_type info

Returns:

  • cl_device_mem_cache_type



79
# File 'lib/opencl_ruby_ffi/Device.rb', line 79

get_info("Device", :cl_device_mem_cache_type, "global_mem_cache_type")

#global_mem_cacheline_sizeObject

Returns the OpenCL::Device::global_mem_cacheline_size info

Returns:

  • cl_uint



80
# File 'lib/opencl_ruby_ffi/Device.rb', line 80

get_info("Device", :cl_uint,  "global_mem_cacheline_size")

#global_mem_sizeObject

Returns the OpenCL::Device::global_mem_size info

Returns:

  • cl_ulong



81
# File 'lib/opencl_ruby_ffi/Device.rb', line 81

get_info("Device", :cl_ulong, "global_mem_size")

#image2d_max_heightObject

Returns the OpenCL::Device::image2d_max_height info

Returns:

  • size_t



83
# File 'lib/opencl_ruby_ffi/Device.rb', line 83

get_info("Device", :size_t,   "image2d_max_height")

#image2d_max_widthObject

Returns the OpenCL::Device::image2d_max_width info

Returns:

  • size_t



84
# File 'lib/opencl_ruby_ffi/Device.rb', line 84

get_info("Device", :size_t,   "image2d_max_width")

#image3d_max_depthObject

Returns the OpenCL::Device::image3d_max_depth info

Returns:

  • size_t



85
# File 'lib/opencl_ruby_ffi/Device.rb', line 85

get_info("Device", :size_t,   "image3d_max_depth")

#image3d_max_heightObject

Returns the OpenCL::Device::image3d_max_height info

Returns:

  • size_t



86
# File 'lib/opencl_ruby_ffi/Device.rb', line 86

get_info("Device", :size_t,   "image3d_max_height")

#image3d_max_widthObject

Returns the OpenCL::Device::image3d_max_width info

Returns:

  • size_t



87
# File 'lib/opencl_ruby_ffi/Device.rb', line 87

get_info("Device", :size_t,   "image3d_max_width")

#image_supportObject

Returns the OpenCL::Device::image_support info

Returns:

  • cl_bool



82
# File 'lib/opencl_ruby_ffi/Device.rb', line 82

get_info("Device", :cl_bool,  "image_support")

#inspectObject



55
56
57
# File 'lib/opencl_ruby_ffi/Device.rb', line 55

def inspect
  return "#<#{self.class.name}: #{name} (#{pointer.to_i})>"
end

#local_mem_sizeObject

Returns the OpenCL::Device::local_mem_size info

Returns:

  • cl_ulong



88
# File 'lib/opencl_ruby_ffi/Device.rb', line 88

get_info("Device", :cl_ulong, "local_mem_size")

#local_mem_typeObject

Returns the OpenCL::Device::local_mem_type info

Returns:

  • cl_device_local_mem_type



89
# File 'lib/opencl_ruby_ffi/Device.rb', line 89

get_info("Device", :cl_device_local_mem_type, "local_mem_type")

#max_clock_frequencyObject

Returns the OpenCL::Device::max_clock_frequency info

Returns:

  • cl_uint



90
# File 'lib/opencl_ruby_ffi/Device.rb', line 90

get_info("Device", :cl_uint,  "max_clock_frequency")

#max_compute_unitsObject

Returns the OpenCL::Device::max_compute_units info

Returns:

  • cl_uint



91
# File 'lib/opencl_ruby_ffi/Device.rb', line 91

get_info("Device", :cl_uint,  "max_compute_units")

#max_constant_argsObject

Returns the OpenCL::Device::max_constant_args info

Returns:

  • cl_uint



92
# File 'lib/opencl_ruby_ffi/Device.rb', line 92

get_info("Device", :cl_uint,  "max_constant_args")

#max_constant_buffer_sizeObject

Returns the OpenCL::Device::max_constant_buffer_size info

Returns:

  • cl_ulong



93
# File 'lib/opencl_ruby_ffi/Device.rb', line 93

get_info("Device", :cl_ulong, "max_constant_buffer_size")

#max_mem_alloc_sizeObject

Returns the OpenCL::Device::max_mem_alloc_size info

Returns:

  • cl_ulong



94
# File 'lib/opencl_ruby_ffi/Device.rb', line 94

get_info("Device", :cl_ulong, "max_mem_alloc_size")

#max_parameter_sizeObject

Returns the OpenCL::Device::max_parameter_size info

Returns:

  • size_t



95
# File 'lib/opencl_ruby_ffi/Device.rb', line 95

get_info("Device", :size_t,   "max_parameter_size")

#max_read_image_argsObject

Returns the OpenCL::Device::max_read_image_args info

Returns:

  • cl_uint



96
# File 'lib/opencl_ruby_ffi/Device.rb', line 96

get_info("Device", :cl_uint,  "max_read_image_args")

#max_samplersObject

Returns the OpenCL::Device::max_samplers info

Returns:

  • cl_uint



97
# File 'lib/opencl_ruby_ffi/Device.rb', line 97

get_info("Device", :cl_uint,  "max_samplers")

#max_work_group_sizeObject

Returns the OpenCL::Device::max_work_group_size info

Returns:

  • size_t



98
# File 'lib/opencl_ruby_ffi/Device.rb', line 98

get_info("Device", :size_t,   "max_work_group_size")

#max_work_item_dimensionsObject

Returns the OpenCL::Device::max_work_item_dimensions info

Returns:

  • cl_uint



99
# File 'lib/opencl_ruby_ffi/Device.rb', line 99

get_info("Device", :cl_uint,  "max_work_item_dimensions")

#max_work_item_sizesObject

Returns the OpenCL::Device::max_work_item_sizes info

Returns:

  • an Array of size_t



100
# File 'lib/opencl_ruby_ffi/Device.rb', line 100

get_info_array("Device", :size_t, "max_work_item_sizes")

#max_write_image_argsObject

Returns the OpenCL::Device::max_write_image_args info

Returns:

  • cl_uint



101
# File 'lib/opencl_ruby_ffi/Device.rb', line 101

get_info("Device", :cl_uint, "max_write_image_args")

#mem_base_addr_alignObject

Returns the OpenCL::Device::mem_base_addr_align info

Returns:

  • cl_uint



102
# File 'lib/opencl_ruby_ffi/Device.rb', line 102

get_info("Device", :cl_uint, "mem_base_addr_align")

#min_data_type_align_sizeObject

Returns the OpenCL::Device::min_data_type_align_size info

Returns:

  • cl_uint



103
# File 'lib/opencl_ruby_ffi/Device.rb', line 103

get_info("Device", :cl_uint, "min_data_type_align_size")

#nameObject Also known as: to_s

Returns the OpenCL::Device::name info

Returns:

  • string



104
# File 'lib/opencl_ruby_ffi/Device.rb', line 104

get_info("Device", :string,  "name", true)

#platformObject

Returns the Platform the Device belongs to



109
110
111
112
113
114
115
116
# File 'lib/opencl_ruby_ffi/Device.rb', line 109

def platform
  @_platform ||= begin
    ptr = MemoryPointer::new( OpenCL::Platform )
    error = OpenCL.clGetDeviceInfo(self, PLATFORM, OpenCL::Platform.size, ptr, nil)
    error_check(error)
    OpenCL::Platform::new(ptr.read_pointer)
  end
end

#preferred_vector_width_charObject

Returns the OpenCL::Device::preferred_vector_width_char info

Returns:

  • cl_uint



118
# File 'lib/opencl_ruby_ffi/Device.rb', line 118

get_info("Device", :cl_uint, "preferred_vector_width_char")

#preferred_vector_width_doubleObject

Returns the OpenCL::Device::preferred_vector_width_double info

Returns:

  • cl_uint



123
# File 'lib/opencl_ruby_ffi/Device.rb', line 123

get_info("Device", :cl_uint, "preferred_vector_width_double")

#preferred_vector_width_floatObject

Returns the OpenCL::Device::preferred_vector_width_float info

Returns:

  • cl_uint



122
# File 'lib/opencl_ruby_ffi/Device.rb', line 122

get_info("Device", :cl_uint, "preferred_vector_width_float")

#preferred_vector_width_intObject

Returns the OpenCL::Device::preferred_vector_width_int info

Returns:

  • cl_uint



120
# File 'lib/opencl_ruby_ffi/Device.rb', line 120

get_info("Device", :cl_uint, "preferred_vector_width_int")

#preferred_vector_width_longObject

Returns the OpenCL::Device::preferred_vector_width_long info

Returns:

  • cl_uint



121
# File 'lib/opencl_ruby_ffi/Device.rb', line 121

get_info("Device", :cl_uint, "preferred_vector_width_long")

#preferred_vector_width_shortObject

Returns the OpenCL::Device::preferred_vector_width_short info

Returns:

  • cl_uint



119
# File 'lib/opencl_ruby_ffi/Device.rb', line 119

get_info("Device", :cl_uint, "preferred_vector_width_short")

#profileObject

Returns the OpenCL::Device::profile info

Returns:

  • string



124
# File 'lib/opencl_ruby_ffi/Device.rb', line 124

get_info("Device", :string,  "profile", true)

#profiling_timer_resolutionObject

Returns the OpenCL::Device::profiling_timer_resolution info

Returns:

  • size_t



125
# File 'lib/opencl_ruby_ffi/Device.rb', line 125

get_info("Device", :size_t,  "profiling_timer_resolution")

#queue_propertiesObject

Returns the OpenCL::Device::queue_properties info

Returns:

  • cl_command_queue_properties



126
# File 'lib/opencl_ruby_ffi/Device.rb', line 126

get_info("Device", :cl_command_queue_properties, "queue_properties")

#single_fp_configObject

Returns the OpenCL::Device::single_fp_config info

Returns:

  • cl_device_fp_config



127
# File 'lib/opencl_ruby_ffi/Device.rb', line 127

get_info("Device", :cl_device_fp_config,         "single_fp_config")

#terminate_capability_khrObject

Returns the OpenCL::Device::terminate_capability_khr info

Returns:

  • cl_bitfield



20
# File 'lib/opencl_ruby_ffi/khr/terminate_context.rb', line 20

get_info("Device", :cl_bitfield, "terminate_capability_khr")

#typeObject

Returns the OpenCL::Device::type info

Returns:

  • cl_device_type



128
# File 'lib/opencl_ruby_ffi/Device.rb', line 128

get_info("Device", :cl_device_type, "type", true)

#vendorObject

Returns the OpenCL::Device::vendor info

Returns:

  • string



129
# File 'lib/opencl_ruby_ffi/Device.rb', line 129

get_info("Device", :string,         "vendor", true)

#vendor_idObject

Returns the OpenCL::Device::vendor_id info

Returns:

  • cl_uint



130
# File 'lib/opencl_ruby_ffi/Device.rb', line 130

get_info("Device", :cl_uint,        "vendor_id", true)

#versionObject

Returns the OpenCL::Device::version info

Returns:

  • string



131
# File 'lib/opencl_ruby_ffi/Device.rb', line 131

get_info("Device", :string,         "version", true)

#version_numberObject

returs a floating point number corresponding to the OpenCL version of the Device



134
135
136
137
138
# File 'lib/opencl_ruby_ffi/Device.rb', line 134

def version_number
  ver = self.version
  n = ver.scan(/OpenCL (\d+\.\d+)/)
  return n.first.first.to_f
end

Constant Summary collapse

TYPE_DEFAULT =
(1 << 0)
TYPE_CPU =
(1 << 1)
TYPE_GPU =
(1 << 2)
TYPE_ACCELERATOR =
(1 << 3)
TYPE_CUSTOM =
(1 << 4)
TYPE_ALL =
0xFFFFFFFF
TYPE =
0x1000
VENDOR_ID =
0x1001
MAX_COMPUTE_UNITS =
0x1002
MAX_WORK_ITEM_DIMENSIONS =
0x1003
MAX_WORK_GROUP_SIZE =
0x1004
MAX_WORK_ITEM_SIZES =
0x1005
PREFERRED_VECTOR_WIDTH_CHAR =
0x1006
PREFERRED_VECTOR_WIDTH_SHORT =
0x1007
PREFERRED_VECTOR_WIDTH_INT =
0x1008
PREFERRED_VECTOR_WIDTH_LONG =
0x1009
PREFERRED_VECTOR_WIDTH_FLOAT =
0x100A
PREFERRED_VECTOR_WIDTH_DOUBLE =
0x100B
MAX_CLOCK_FREQUENCY =
0x100C
ADDRESS_BITS =
0x100D
MAX_READ_IMAGE_ARGS =
0x100E
MAX_WRITE_IMAGE_ARGS =
0x100F
MAX_MEM_ALLOC_SIZE =
0x1010
IMAGE2D_MAX_WIDTH =
0x1011
IMAGE2D_MAX_HEIGHT =
0x1012
IMAGE3D_MAX_WIDTH =
0x1013
IMAGE3D_MAX_HEIGHT =
0x1014
IMAGE3D_MAX_DEPTH =
0x1015
IMAGE_SUPPORT =
0x1016
MAX_PARAMETER_SIZE =
0x1017
MAX_SAMPLERS =
0x1018
MEM_BASE_ADDR_ALIGN =
0x1019
MIN_DATA_TYPE_ALIGN_SIZE =
0x101A
SINGLE_FP_CONFIG =
0x101B
GLOBAL_MEM_CACHE_TYPE =
0x101C
GLOBAL_MEM_CACHELINE_SIZE =
0x101D
GLOBAL_MEM_CACHE_SIZE =
0x101E
GLOBAL_MEM_SIZE =
0x101F
MAX_CONSTANT_BUFFER_SIZE =
0x1020
MAX_CONSTANT_ARGS =
0x1021
LOCAL_MEM_TYPE =
0x1022
LOCAL_MEM_SIZE =
0x1023
ERROR_CORRECTION_SUPPORT =
0x1024
PROFILING_TIMER_RESOLUTION =
0x1025
ENDIAN_LITTLE =
0x1026
AVAILABLE =
0x1027
COMPILER_AVAILABLE =
0x1028
EXECUTION_CAPABILITIES =
0x1029
QUEUE_PROPERTIES =
0x102A
QUEUE_ON_HOST_PROPERTIES =
0x102A
NAME =
0x102B
VENDOR =
0x102C
DRIVER_VERSION =
0x102D
PROFILE =
0x102E
VERSION =
0x102F
EXTENSIONS =
0x1030
PLATFORM =
0x1031
PREFERRED_VECTOR_WIDTH_HALF =
0x1034
HOST_UNIFIED_MEMORY =
0x1035
NATIVE_VECTOR_WIDTH_CHAR =
0x1036
NATIVE_VECTOR_WIDTH_SHORT =
0x1037
NATIVE_VECTOR_WIDTH_INT =
0x1038
NATIVE_VECTOR_WIDTH_LONG =
0x1039
NATIVE_VECTOR_WIDTH_FLOAT =
0x103A
NATIVE_VECTOR_WIDTH_DOUBLE =
0x103B
NATIVE_VECTOR_WIDTH_HALF =
0x103C
OPENCL_C_VERSION =
0x103D
LINKER_AVAILABLE =
0x103E
BUILT_IN_KERNELS =
0x103F
IMAGE_MAX_BUFFER_SIZE =
0x1040
IMAGE_MAX_ARRAY_SIZE =
0x1041
PARENT_DEVICE =
0x1042
PARTITION_MAX_SUB_DEVICES =
0x1043
PARTITION_PROPERTIES =
0x1044
PARTITION_AFFINITY_DOMAIN =
0x1045
PARTITION_TYPE =
0x1046
REFERENCE_COUNT =
0x1047
PREFERRED_INTEROP_USER_SYNC =
0x1048
PRINTF_BUFFER_SIZE =
0x1049
IMAGE_PITCH_ALIGNMENT =
0x104A
IMAGE_BASE_ADDRESS_ALIGNMENT =
0x104B
MAX_READ_WRITE_IMAGE_ARGS =
0x104C
MAX_GLOBAL_VARIABLE_SIZE =
0x104D
QUEUE_ON_DEVICE_PROPERTIES =
0x104E
QUEUE_ON_DEVICE_PREFERRED_SIZE =
0x104F
QUEUE_ON_DEVICE_MAX_SIZE =
0x1050
MAX_ON_DEVICE_QUEUES =
0x1051
MAX_ON_DEVICE_EVENTS =
0x1052
SVM_CAPABILITIES =
0x1053
GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE =
0x1054
MAX_PIPE_ARGS =
0x1055
PIPE_MAX_ACTIVE_RESERVATIONS =
0x1056
PIPE_MAX_PACKET_SIZE =
0x1057
PREFERRED_PLATFORM_ATOMIC_ALIGNMENT =
0x1058
PREFERRED_GLOBAL_ATOMIC_ALIGNMENT =
0x1059
PREFERRED_LOCAL_ATOMIC_ALIGNMENT =
0x105A
IL_VERSION =
0x105B
MAX_NUM_SUB_GROUPS =
0x105C
SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS =
0x105D
NUMERIC_VERSION =
0x105E
EXTENSIONS_WITH_VERSION =
0x1060
ILS_WITH_VERSION =
0x1061
BUILT_IN_KERNELS_WITH_VERSION =
0x1062
ATOMIC_MEMORY_CAPABILITIES =
0x1063
ATOMIC_FENCE_CAPABILITIES =
0x1064
NON_UNIFORM_WORK_GROUP_SUPPORT =
0x1065
OPENCL_C_ALL_VERSIONS =
0x1066
PREFERRED_WORK_GROUP_SIZE_MULTIPLE =
0x1067
WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT =
0x1068
GENERIC_ADDRESS_SPACE_SUPPORT =
0x1069
OPENCL_C_FEATURES =
0x106F
DEVICE_ENQUEUE_SUPPORT =
0x1070
PIPE_SUPPORT =
0x1071
PARTITION_EQUALLY =
0x1086
PARTITION_BY_COUNTS =
0x1087
PARTITION_BY_COUNTS_LIST_END =
0x0
PARTITION_BY_AFFINITY_DOMAIN =
0x1088
AFFINITY_DOMAIN_NUMA =
(1 << 0)
AFFINITY_DOMAIN_L4_CACHE =
(1 << 1)
AFFINITY_DOMAIN_L3_CACHE =
(1 << 2)
AFFINITY_DOMAIN_L2_CACHE =
(1 << 3)
AFFINITY_DOMAIN_L1_CACHE =
(1 << 4)
AFFINITY_DOMAIN_NEXT_PARTITIONABLE =
(1 << 5)
SVM_COARSE_GRAIN_BUFFER =
(1 << 0)
SVM_FINE_GRAIN_BUFFER =
(1 << 1)
SVM_FINE_GRAIN_SYSTEM =
(1 << 2)
SVM_ATOMICS =
(1 << 3)
PAGE_SIZE_QCOM =
0x40A1
ATOMIC_ORDER_RELAXED =
(1 << 0)
ATOMIC_ORDER_ACQ_REL =
(1 << 1)
ATOMIC_ORDER_SEQ_CST =
(1 << 2)
ATOMIC_SCOPE_WORK_ITEM =
(1 << 3)
ATOMIC_SCOPE_WORK_GROUP =
(1 << 4)
ATOMIC_SCOPE_DEVICE =
(1 << 5)
ATOMIC_SCOPE_ALL_DEVICES =
(1 << 6)
HALF_FP_CONFIG =
0x1033
DOUBLE_FP_CONFIG =
0x1032
SPIR_VERSIONS =
0x40E0
UUID_KHR =
0x106A
LUID_VALID_KHR =
0x106C
LUID_KHR =
0x106D
NODE_MASK_KHR =
0x106E
PARTITION_EQUALLY_EXT =
0x4050
PARTITION_BY_COUNTS_EXT =
0x4051
PARTITION_BY_NAMES_EXT =
0x4052
PARTITION_BY_AFFINITY_DOMAIN_EXT =
0x4053
PARENT_DEVICE_EXT =
0x4054
PARTITION_TYPES_EXT =
0x4055
AFFINITY_DOMAINS_EXT =
0x4056
REFERENCE_COUNT_EXT =
0x4057
PARTITION_STYLE_EXT =
0x4058
TERMINATE_CAPABILITY_KHR =
0x2031
COMPUTE_CAPABILITY_MAJOR_NV =
0x4000
COMPUTE_CAPABILITY_MINOR_NV =
0x4001
REGISTERS_PER_BLOCK_NV =
0x4002
WARP_SIZE_NV =
0x4003
GPU_OVERLAP_NV =
0x4004
KERNEL_EXEC_TIMEOUT_NV =
0x4005
INTEGRATED_MEMORY_NV =
0x4006
ATTRIBUTE_ASYNC_ENGINE_COUNT_NV =
0x4007
PCI_BUS_ID_NV =
0x4008
PCI_SLOT_ID_NV =
0x4009
TOPOLOGY_TYPE_PCIE_AMD =
1
PROFILING_TIMER_OFFSET_AMD =
0x4036
TOPOLOGY_AMD =
0x4037
BOARD_NAME_AMD =
0x4038
GLOBAL_FREE_MEMORY_AMD =
0x4039
SIMD_PER_COMPUTE_UNIT_AMD =
0x4040
SIMD_WIDTH_AMD =
0x4041
SIMD_INSTRUCTION_WIDTH_AMD =
0x4042
WAVEFRONT_WIDTH_AMD =
0x4043
GLOBAL_MEM_CHANNELS_AMD =
0x4044
GLOBAL_MEM_CHANNEL_BANKS_AMD =
0x4045
GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD =
0x4046
LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD =
0x4047
LOCAL_MEM_BANKS_AMD =
0x4048
THREAD_TRACE_SUPPORTED_AMD =
0x4049
GFXIP_MAJOR_AMD =
0x404A
GFXIP_MINOR_AMD =
0x404B
AVAILABLE_ASYNC_QUEUES_AMD =
0x404C
ME_VERSION_INTEL =
0x407E
HOST_MEM_CAPABILITIES_INTEL =
0x4190
DEVICE_MEM_CAPABILITIES_INTEL =
0x4191
SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL =
0x4192
CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL =
0x4193
SHARED_SYSTEM_MEM_CAPABILITIES_INTEL =
0x4194