Class: OpenCL::Device
- Inherits:
-
ExtendedStruct
- Object
- ManagedStruct
- ExtendedStruct
- OpenCL::Device
- 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
-
#address_bits ⇒ Object
Returns the OpenCL::Device::address_bits info.
-
#available ⇒ Object
Returns the OpenCL::Device::available info.
-
#compiler_available ⇒ Object
Returns the OpenCL::Device::compiler_available info.
-
#driver_version ⇒ Object
Returns the OpenCL::Device::driver_version info.
-
#endian_little ⇒ Object
Returns the OpenCL::Device::endian_little info.
-
#error_correction_support ⇒ Object
Returns the OpenCL::Device::error_correction_support info.
-
#execution_capabilities ⇒ Object
Returns the OpenCL::Device::execution_capabilities info.
-
#extensions ⇒ Object
Returns an Array of String corresponding to the Device extensions.
-
#global_mem_cache_size ⇒ Object
Returns the OpenCL::Device::global_mem_cache_size info.
-
#global_mem_cache_type ⇒ Object
Returns the OpenCL::Device::global_mem_cache_type info.
-
#global_mem_cacheline_size ⇒ Object
Returns the OpenCL::Device::global_mem_cacheline_size info.
-
#global_mem_size ⇒ Object
Returns the OpenCL::Device::global_mem_size info.
-
#image2d_max_height ⇒ Object
Returns the OpenCL::Device::image2d_max_height info.
-
#image2d_max_width ⇒ Object
Returns the OpenCL::Device::image2d_max_width info.
-
#image3d_max_depth ⇒ Object
Returns the OpenCL::Device::image3d_max_depth info.
-
#image3d_max_height ⇒ Object
Returns the OpenCL::Device::image3d_max_height info.
-
#image3d_max_width ⇒ Object
Returns the OpenCL::Device::image3d_max_width info.
-
#image_support ⇒ Object
Returns the OpenCL::Device::image_support info.
-
#initialize(ptr, retain = true) ⇒ Device
constructor
Creates a new Device and retains it if specified and aplicable.
- #inspect ⇒ Object
-
#local_mem_size ⇒ Object
Returns the OpenCL::Device::local_mem_size info.
-
#local_mem_type ⇒ Object
Returns the OpenCL::Device::local_mem_type info.
-
#max_clock_frequency ⇒ Object
Returns the OpenCL::Device::max_clock_frequency info.
-
#max_compute_units ⇒ Object
Returns the OpenCL::Device::max_compute_units info.
-
#max_constant_args ⇒ Object
Returns the OpenCL::Device::max_constant_args info.
-
#max_constant_buffer_size ⇒ Object
Returns the OpenCL::Device::max_constant_buffer_size info.
-
#max_mem_alloc_size ⇒ Object
Returns the OpenCL::Device::max_mem_alloc_size info.
-
#max_parameter_size ⇒ Object
Returns the OpenCL::Device::max_parameter_size info.
-
#max_read_image_args ⇒ Object
Returns the OpenCL::Device::max_read_image_args info.
-
#max_samplers ⇒ Object
Returns the OpenCL::Device::max_samplers info.
-
#max_work_group_size ⇒ Object
Returns the OpenCL::Device::max_work_group_size info.
-
#max_work_item_dimensions ⇒ Object
Returns the OpenCL::Device::max_work_item_dimensions info.
-
#max_work_item_sizes ⇒ Object
Returns the OpenCL::Device::max_work_item_sizes info.
-
#max_write_image_args ⇒ Object
Returns the OpenCL::Device::max_write_image_args info.
-
#mem_base_addr_align ⇒ Object
Returns the OpenCL::Device::mem_base_addr_align info.
-
#min_data_type_align_size ⇒ Object
Returns the OpenCL::Device::min_data_type_align_size info.
-
#name ⇒ Object
(also: #to_s)
Returns the OpenCL::Device::name info.
-
#platform ⇒ Object
Returns the Platform the Device belongs to.
-
#preferred_vector_width_char ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_char info.
-
#preferred_vector_width_double ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_double info.
-
#preferred_vector_width_float ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_float info.
-
#preferred_vector_width_int ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_int info.
-
#preferred_vector_width_long ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_long info.
-
#preferred_vector_width_short ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_short info.
-
#profile ⇒ Object
Returns the OpenCL::Device::profile info.
-
#profiling_timer_resolution ⇒ Object
Returns the OpenCL::Device::profiling_timer_resolution info.
-
#queue_properties ⇒ Object
Returns the OpenCL::Device::queue_properties info.
-
#single_fp_config ⇒ Object
Returns the OpenCL::Device::single_fp_config info.
-
#terminate_capability_khr ⇒ Object
Returns the OpenCL::Device::terminate_capability_khr info.
-
#type ⇒ Object
Returns the OpenCL::Device::type info.
-
#vendor ⇒ Object
Returns the OpenCL::Device::vendor info.
-
#vendor_id ⇒ Object
Returns the OpenCL::Device::vendor_id info.
-
#version ⇒ Object
Returns the OpenCL::Device::version info.
-
#version_number ⇒ Object
returs a floating point number corresponding to the OpenCL version of the Device.
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
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
Methods included from KHRFP16
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
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_bits ⇒ Object
Returns the OpenCL::Device::address_bits info
59 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 59 get_info("Device", :cl_uint, "address_bits", true) |
#available ⇒ Object
Returns the OpenCL::Device::available info
60 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 60 get_info("Device", :cl_bool, "available") |
#compiler_available ⇒ Object
Returns the OpenCL::Device::compiler_available info
61 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 61 get_info("Device", :cl_bool, "compiler_available") |
#driver_version ⇒ Object
Returns the OpenCL::Device::driver_version info
140 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 140 get_info("Device", :string, "driver_version") |
#endian_little ⇒ Object
Returns the OpenCL::Device::endian_little info
62 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 62 get_info("Device", :cl_bool, "endian_little") |
#error_correction_support ⇒ Object
Returns the OpenCL::Device::error_correction_support info
63 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 63 get_info("Device", :cl_bool, "error_correction_support") |
#execution_capabilities ⇒ Object
Returns the OpenCL::Device::execution_capabilities info
64 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 64 get_info("Device", :cl_device_exec_capabilities, "execution_capabilities") |
#extensions ⇒ Object
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_size ⇒ Object
Returns the OpenCL::Device::global_mem_cache_size info
78 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 78 get_info("Device", :cl_ulong, "global_mem_cache_size") |
#global_mem_cache_type ⇒ Object
Returns the OpenCL::Device::global_mem_cache_type info
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_size ⇒ Object
Returns the OpenCL::Device::global_mem_cacheline_size info
80 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 80 get_info("Device", :cl_uint, "global_mem_cacheline_size") |
#global_mem_size ⇒ Object
Returns the OpenCL::Device::global_mem_size info
81 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 81 get_info("Device", :cl_ulong, "global_mem_size") |
#image2d_max_height ⇒ Object
Returns the OpenCL::Device::image2d_max_height info
83 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 83 get_info("Device", :size_t, "image2d_max_height") |
#image2d_max_width ⇒ Object
Returns the OpenCL::Device::image2d_max_width info
84 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 84 get_info("Device", :size_t, "image2d_max_width") |
#image3d_max_depth ⇒ Object
Returns the OpenCL::Device::image3d_max_depth info
85 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 85 get_info("Device", :size_t, "image3d_max_depth") |
#image3d_max_height ⇒ Object
Returns the OpenCL::Device::image3d_max_height info
86 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 86 get_info("Device", :size_t, "image3d_max_height") |
#image3d_max_width ⇒ Object
Returns the OpenCL::Device::image3d_max_width info
87 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 87 get_info("Device", :size_t, "image3d_max_width") |
#image_support ⇒ Object
Returns the OpenCL::Device::image_support info
82 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 82 get_info("Device", :cl_bool, "image_support") |
#inspect ⇒ Object
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_size ⇒ Object
Returns the OpenCL::Device::local_mem_size info
88 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 88 get_info("Device", :cl_ulong, "local_mem_size") |
#local_mem_type ⇒ Object
Returns the OpenCL::Device::local_mem_type info
89 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 89 get_info("Device", :cl_device_local_mem_type, "local_mem_type") |
#max_clock_frequency ⇒ Object
Returns the OpenCL::Device::max_clock_frequency info
90 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 90 get_info("Device", :cl_uint, "max_clock_frequency") |
#max_compute_units ⇒ Object
Returns the OpenCL::Device::max_compute_units info
91 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 91 get_info("Device", :cl_uint, "max_compute_units") |
#max_constant_args ⇒ Object
Returns the OpenCL::Device::max_constant_args info
92 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 92 get_info("Device", :cl_uint, "max_constant_args") |
#max_constant_buffer_size ⇒ Object
Returns the OpenCL::Device::max_constant_buffer_size info
93 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 93 get_info("Device", :cl_ulong, "max_constant_buffer_size") |
#max_mem_alloc_size ⇒ Object
Returns the OpenCL::Device::max_mem_alloc_size info
94 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 94 get_info("Device", :cl_ulong, "max_mem_alloc_size") |
#max_parameter_size ⇒ Object
Returns the OpenCL::Device::max_parameter_size info
95 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 95 get_info("Device", :size_t, "max_parameter_size") |
#max_read_image_args ⇒ Object
Returns the OpenCL::Device::max_read_image_args info
96 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 96 get_info("Device", :cl_uint, "max_read_image_args") |
#max_samplers ⇒ Object
Returns the OpenCL::Device::max_samplers info
97 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 97 get_info("Device", :cl_uint, "max_samplers") |
#max_work_group_size ⇒ Object
Returns the OpenCL::Device::max_work_group_size info
98 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 98 get_info("Device", :size_t, "max_work_group_size") |
#max_work_item_dimensions ⇒ Object
Returns the OpenCL::Device::max_work_item_dimensions info
99 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 99 get_info("Device", :cl_uint, "max_work_item_dimensions") |
#max_work_item_sizes ⇒ Object
Returns the OpenCL::Device::max_work_item_sizes info
100 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 100 get_info_array("Device", :size_t, "max_work_item_sizes") |
#max_write_image_args ⇒ Object
Returns the OpenCL::Device::max_write_image_args info
101 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 101 get_info("Device", :cl_uint, "max_write_image_args") |
#mem_base_addr_align ⇒ Object
Returns the OpenCL::Device::mem_base_addr_align info
102 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 102 get_info("Device", :cl_uint, "mem_base_addr_align") |
#min_data_type_align_size ⇒ Object
Returns the OpenCL::Device::min_data_type_align_size info
103 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 103 get_info("Device", :cl_uint, "min_data_type_align_size") |
#name ⇒ Object Also known as: to_s
Returns the OpenCL::Device::name info
104 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 104 get_info("Device", :string, "name", true) |
#platform ⇒ Object
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_char ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_char info
118 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 118 get_info("Device", :cl_uint, "preferred_vector_width_char") |
#preferred_vector_width_double ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_double info
123 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 123 get_info("Device", :cl_uint, "preferred_vector_width_double") |
#preferred_vector_width_float ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_float info
122 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 122 get_info("Device", :cl_uint, "preferred_vector_width_float") |
#preferred_vector_width_int ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_int info
120 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 120 get_info("Device", :cl_uint, "preferred_vector_width_int") |
#preferred_vector_width_long ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_long info
121 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 121 get_info("Device", :cl_uint, "preferred_vector_width_long") |
#preferred_vector_width_short ⇒ Object
Returns the OpenCL::Device::preferred_vector_width_short info
119 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 119 get_info("Device", :cl_uint, "preferred_vector_width_short") |
#profile ⇒ Object
Returns the OpenCL::Device::profile info
124 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 124 get_info("Device", :string, "profile", true) |
#profiling_timer_resolution ⇒ Object
Returns the OpenCL::Device::profiling_timer_resolution info
125 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 125 get_info("Device", :size_t, "profiling_timer_resolution") |
#queue_properties ⇒ Object
Returns the OpenCL::Device::queue_properties info
126 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 126 get_info("Device", :cl_command_queue_properties, "queue_properties") |
#single_fp_config ⇒ Object
Returns the OpenCL::Device::single_fp_config info
127 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 127 get_info("Device", :cl_device_fp_config, "single_fp_config") |
#terminate_capability_khr ⇒ Object
Returns the OpenCL::Device::terminate_capability_khr info
20 |
# File 'lib/opencl_ruby_ffi/khr/terminate_context.rb', line 20 get_info("Device", :cl_bitfield, "terminate_capability_khr") |
#type ⇒ Object
Returns the OpenCL::Device::type info
128 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 128 get_info("Device", :cl_device_type, "type", true) |
#vendor ⇒ Object
Returns the OpenCL::Device::vendor info
129 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 129 get_info("Device", :string, "vendor", true) |
#vendor_id ⇒ Object
Returns the OpenCL::Device::vendor_id info
130 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 130 get_info("Device", :cl_uint, "vendor_id", true) |
#version ⇒ Object
Returns the OpenCL::Device::version info
131 |
# File 'lib/opencl_ruby_ffi/Device.rb', line 131 get_info("Device", :string, "version", true) |
#version_number ⇒ Object
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