DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
info_desc.hpp
Go to the documentation of this file.
1 //==------- info_desc.hpp - SYCL information descriptors -------------------==//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #pragma once
10 
12 #include <CL/sycl/detail/pi.hpp>
13 #include <CL/sycl/id.hpp>
14 
16 namespace sycl {
17 
18 #ifdef __SYCL_INTERNAL_API
19 class program;
20 #endif
21 class device;
22 class platform;
23 class kernel_id;
24 
25 // TODO: stop using OpenCL directly, use PI.
26 namespace info {
27 
28 // Information descriptors
29 // A.1 Platform information descriptors
30 enum class platform {
35  extensions __SYCL2020_DEPRECATED(
36  "platform::extensions is deprecated, use device::get_info() with"
37  " info::device::aspects instead.") = PI_PLATFORM_INFO_EXTENSIONS,
38 };
39 
40 // A.2 Context information desctiptors
41 enum class context : cl_context_info {
42  reference_count = CL_CONTEXT_REFERENCE_COUNT,
43  platform = CL_CONTEXT_PLATFORM,
44  devices = CL_CONTEXT_DEVICES,
47 };
48 
49 // A.3 Device information descriptors
50 enum class device : cl_device_info {
51  device_type = CL_DEVICE_TYPE,
52  vendor_id = CL_DEVICE_VENDOR_ID,
53  max_compute_units = CL_DEVICE_MAX_COMPUTE_UNITS,
54  max_work_item_dimensions = CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS,
55  max_work_item_sizes = CL_DEVICE_MAX_WORK_ITEM_SIZES,
56  max_work_group_size = CL_DEVICE_MAX_WORK_GROUP_SIZE,
57 
58  preferred_vector_width_char = CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR,
59  preferred_vector_width_short = CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT,
60  preferred_vector_width_int = CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT,
61  preferred_vector_width_long = CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG,
62  preferred_vector_width_float = CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,
63  preferred_vector_width_double = CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE,
64  preferred_vector_width_half = CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF,
65 
66  native_vector_width_char = CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR,
67  native_vector_width_short = CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT,
68  native_vector_width_int = CL_DEVICE_NATIVE_VECTOR_WIDTH_INT,
69  native_vector_width_long = CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG,
70  native_vector_width_float = CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT,
71  native_vector_width_double = CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE,
72  native_vector_width_half = CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF,
73 
74  max_clock_frequency = CL_DEVICE_MAX_CLOCK_FREQUENCY,
75  address_bits = CL_DEVICE_ADDRESS_BITS,
76  max_mem_alloc_size = CL_DEVICE_MAX_MEM_ALLOC_SIZE,
77  image_support = CL_DEVICE_IMAGE_SUPPORT,
78  max_read_image_args = CL_DEVICE_MAX_READ_IMAGE_ARGS,
79  max_write_image_args = CL_DEVICE_MAX_WRITE_IMAGE_ARGS,
80  image2d_max_width = CL_DEVICE_IMAGE2D_MAX_WIDTH,
81  image2d_max_height = CL_DEVICE_IMAGE2D_MAX_HEIGHT,
82  image3d_max_width = CL_DEVICE_IMAGE3D_MAX_WIDTH,
83  image3d_max_height = CL_DEVICE_IMAGE3D_MAX_HEIGHT,
84  image3d_max_depth = CL_DEVICE_IMAGE3D_MAX_DEPTH,
85  image_max_buffer_size = CL_DEVICE_IMAGE_MAX_BUFFER_SIZE,
86  image_max_array_size = CL_DEVICE_IMAGE_MAX_ARRAY_SIZE,
87  max_samplers = CL_DEVICE_MAX_SAMPLERS,
88  max_parameter_size = CL_DEVICE_MAX_PARAMETER_SIZE,
89  mem_base_addr_align = CL_DEVICE_MEM_BASE_ADDR_ALIGN,
90  half_fp_config = CL_DEVICE_HALF_FP_CONFIG,
91  single_fp_config = CL_DEVICE_SINGLE_FP_CONFIG,
92  double_fp_config = CL_DEVICE_DOUBLE_FP_CONFIG,
93  global_mem_cache_type = CL_DEVICE_GLOBAL_MEM_CACHE_TYPE,
94  global_mem_cache_line_size = CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE,
95  global_mem_cache_size = CL_DEVICE_GLOBAL_MEM_CACHE_SIZE,
96  global_mem_size = CL_DEVICE_GLOBAL_MEM_SIZE,
97  max_constant_buffer_size __SYCL2020_DEPRECATED(
98  "max_constant_buffer_size is deprecated") =
99  CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE,
100  max_constant_args __SYCL2020_DEPRECATED("max_constant_args is deprecated") =
101  CL_DEVICE_MAX_CONSTANT_ARGS,
102  local_mem_type = CL_DEVICE_LOCAL_MEM_TYPE,
103  local_mem_size = CL_DEVICE_LOCAL_MEM_SIZE,
104  error_correction_support = CL_DEVICE_ERROR_CORRECTION_SUPPORT,
105  host_unified_memory = CL_DEVICE_HOST_UNIFIED_MEMORY,
106  profiling_timer_resolution = CL_DEVICE_PROFILING_TIMER_RESOLUTION,
107  is_endian_little = CL_DEVICE_ENDIAN_LITTLE,
108  is_available = CL_DEVICE_AVAILABLE,
109  is_compiler_available = CL_DEVICE_COMPILER_AVAILABLE,
110  is_linker_available = CL_DEVICE_LINKER_AVAILABLE,
111  execution_capabilities = CL_DEVICE_EXECUTION_CAPABILITIES,
112  queue_profiling = CL_DEVICE_QUEUE_PROPERTIES,
113  built_in_kernels __SYCL2020_DEPRECATED("use built_in_kernel_ids instead") =
114  CL_DEVICE_BUILT_IN_KERNELS,
115  platform = CL_DEVICE_PLATFORM,
116  name = CL_DEVICE_NAME,
117  vendor = CL_DEVICE_VENDOR,
118  driver_version = CL_DRIVER_VERSION,
119  profile = CL_DEVICE_PROFILE,
120  version = CL_DEVICE_VERSION,
121  opencl_c_version = CL_DEVICE_OPENCL_C_VERSION,
122  extensions __SYCL2020_DEPRECATED(
123  "device::extensions is deprecated, use info::device::aspects"
124  " instead.") = CL_DEVICE_EXTENSIONS,
125  printf_buffer_size = CL_DEVICE_PRINTF_BUFFER_SIZE,
126  preferred_interop_user_sync = CL_DEVICE_PREFERRED_INTEROP_USER_SYNC,
127  parent_device = CL_DEVICE_PARENT_DEVICE,
128  partition_max_sub_devices = CL_DEVICE_PARTITION_MAX_SUB_DEVICES,
129  partition_properties = CL_DEVICE_PARTITION_PROPERTIES,
130  partition_affinity_domains = CL_DEVICE_PARTITION_AFFINITY_DOMAIN,
131  partition_type_affinity_domain = CL_DEVICE_PARTITION_TYPE,
132  reference_count = CL_DEVICE_REFERENCE_COUNT,
133  il_version =
134  CL_DEVICE_IL_VERSION_KHR, // Same as CL_DEVICE_IL_VERSION for >=OpenCL 2.1
135  max_num_sub_groups = CL_DEVICE_MAX_NUM_SUB_GROUPS,
137  CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS,
138  sub_group_sizes = CL_DEVICE_SUB_GROUP_SIZES_INTEL,
142  // USM
148  usm_system_allocator __SYCL2020_DEPRECATED(
149  "use usm_system_allocations instead") = usm_system_allocations,
150 
151  // intel extensions
171 };
172 
173 enum class device_type : pi_uint64 {
177  // TODO: figure out if we need all the below in PI
178  custom = CL_DEVICE_TYPE_CUSTOM,
179  automatic,
180  host,
181  all = CL_DEVICE_TYPE_ALL
182 };
183 
184 enum class partition_property : cl_device_partition_property {
185  no_partition = 0,
186  partition_equally = CL_DEVICE_PARTITION_EQUALLY,
187  partition_by_counts = CL_DEVICE_PARTITION_BY_COUNTS,
188  partition_by_affinity_domain = CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
189 };
190 
191 enum class partition_affinity_domain : cl_device_affinity_domain {
192  not_applicable = 0,
193  numa = CL_DEVICE_AFFINITY_DOMAIN_NUMA,
194  L4_cache = CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE,
195  L3_cache = CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE,
196  L2_cache = CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE,
197  L1_cache = CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE,
198  next_partitionable = CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
199 };
200 
201 enum class local_mem_type : int { none, local, global };
202 
203 enum class fp_config : cl_device_fp_config {
204  denorm = CL_FP_DENORM,
205  inf_nan = CL_FP_INF_NAN,
206  round_to_nearest = CL_FP_ROUND_TO_NEAREST,
207  round_to_zero = CL_FP_ROUND_TO_ZERO,
208  round_to_inf = CL_FP_ROUND_TO_INF,
209  fma = CL_FP_FMA,
211  soft_float
212 };
213 
214 enum class global_mem_cache_type : int { none, read_only, read_write };
215 
216 enum class execution_capability : unsigned int {
217  exec_kernel,
219 };
220 
221 // A.4 Queue information descriptors
222 enum class queue : cl_command_queue_info {
223  context = CL_QUEUE_CONTEXT,
224  device = CL_QUEUE_DEVICE,
225  reference_count = CL_QUEUE_REFERENCE_COUNT
226 };
227 
228 // A.5 Kernel information desctiptors
229 enum class kernel : cl_kernel_info {
230  function_name = CL_KERNEL_FUNCTION_NAME,
231  num_args = CL_KERNEL_NUM_ARGS,
232  context = CL_KERNEL_CONTEXT,
233 #ifdef __SYCL_INTERNAL_API
234  program = CL_KERNEL_PROGRAM,
235 #endif
236  reference_count = CL_KERNEL_REFERENCE_COUNT,
237  attributes = CL_KERNEL_ATTRIBUTES
238 };
239 
240 enum class __SYCL2020_DEPRECATED(
241  "kernel_work_group enumeration is deprecated, use SYCL 2020 requests"
242  " instead") kernel_work_group : cl_kernel_work_group_info {
243  global_work_size = CL_KERNEL_GLOBAL_WORK_SIZE,
244  work_group_size = CL_KERNEL_WORK_GROUP_SIZE,
245  compile_work_group_size = CL_KERNEL_COMPILE_WORK_GROUP_SIZE,
246  preferred_work_group_size_multiple =
247  CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,
248  private_mem_size = CL_KERNEL_PRIVATE_MEM_SIZE
249 };
250 
251 enum class kernel_sub_group : cl_kernel_sub_group_info {
252  max_sub_group_size = CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE,
253  max_num_sub_groups = CL_KERNEL_MAX_NUM_SUB_GROUPS,
254  compile_num_sub_groups = CL_KERNEL_COMPILE_NUM_SUB_GROUPS,
255  compile_sub_group_size = CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
256 };
257 
258 enum class kernel_device_specific : cl_kernel_work_group_info {
259  global_work_size = CL_KERNEL_GLOBAL_WORK_SIZE,
260  work_group_size = CL_KERNEL_WORK_GROUP_SIZE,
261  compile_work_group_size = CL_KERNEL_COMPILE_WORK_GROUP_SIZE,
263  CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,
264  private_mem_size = CL_KERNEL_PRIVATE_MEM_SIZE,
266  max_sub_group_size = CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE,
267  max_num_sub_groups = CL_KERNEL_MAX_NUM_SUB_GROUPS,
268  compile_num_sub_groups = CL_KERNEL_COMPILE_NUM_SUB_GROUPS,
269  compile_sub_group_size = CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
270 };
271 
272 // A.6 Program information desctiptors
273 #ifdef __SYCL_INTERNAL_API
274 enum class program : cl_program_info {
275  context = CL_PROGRAM_CONTEXT,
276  devices = CL_PROGRAM_DEVICES,
277  reference_count = CL_PROGRAM_REFERENCE_COUNT
278 };
279 #endif
280 
281 // A.7 Event information desctiptors
282 enum class event : cl_event_info {
283  reference_count = CL_EVENT_REFERENCE_COUNT,
284  command_execution_status = CL_EVENT_COMMAND_EXECUTION_STATUS
285 };
286 
288  submitted = CL_SUBMITTED,
289  running = CL_RUNNING,
290  complete = CL_COMPLETE
291 };
292 
293 enum class event_profiling : cl_profiling_info {
294  command_submit = CL_PROFILING_COMMAND_SUBMIT,
295  command_start = CL_PROFILING_COMMAND_START,
296  command_end = CL_PROFILING_COMMAND_END
297 };
298 
299 // Provide an alias to the return type for each of the info parameters
300 template <typename T, T param> class param_traits {};
301 
302 template <typename T, T param> struct compatibility_param_traits {};
303 
304 #define __SYCL_PARAM_TRAITS_SPEC(param_type, param, ret_type) \
305  template <> class param_traits<param_type, param_type::param> { \
306  public: \
307  using return_type = ret_type; \
308  };
309 
310 #define __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT(param_type, param, ret_type, \
311  in_type) \
312  template <> class param_traits<param_type, param_type::param> { \
313  public: \
314  using return_type = ret_type; \
315  using input_type = in_type; \
316  };
317 
318 #include <CL/sycl/info/device_traits.def>
319 
320 #include <CL/sycl/info/context_traits.def>
321 
322 #include <CL/sycl/info/event_traits.def>
323 
324 #include <CL/sycl/info/event_profiling_traits.def>
325 
326 #include <CL/sycl/info/kernel_device_specific_traits.def>
327 #include <CL/sycl/info/kernel_sub_group_traits.def>
328 #include <CL/sycl/info/kernel_traits.def>
329 #include <CL/sycl/info/kernel_work_group_traits.def>
330 
331 #include <CL/sycl/info/platform_traits.def>
332 
333 #ifdef __SYCL_INTERNAL_API
334 #include <CL/sycl/info/program_traits.def>
335 #endif
336 
337 #include <CL/sycl/info/queue_traits.def>
338 
339 #undef __SYCL_PARAM_TRAITS_SPEC
340 #undef __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT
341 
342 #define __SYCL_PARAM_TRAITS_SPEC(param_type, param, ret_type) \
343  template <> \
344  struct compatibility_param_traits<param_type, param_type::param> { \
345  static constexpr auto value = kernel_device_specific::param; \
346  };
347 
348 #define __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT(param_type, param, ret_type, \
349  in_type) \
350  template <> \
351  struct compatibility_param_traits<param_type, param_type::param> { \
352  static constexpr auto value = kernel_device_specific::param; \
353  };
354 
355 #include <CL/sycl/info/kernel_sub_group_traits.def>
356 #include <CL/sycl/info/kernel_work_group_traits.def>
357 
358 #undef __SYCL_PARAM_TRAITS_SPEC
359 #undef __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT
360 
361 } // namespace info
362 } // namespace sycl
363 } // __SYCL_INLINE_NAMESPACE(cl)
cl::sycl::info::device::native_vector_width_double
@ native_vector_width_double
cl::sycl::aspect::usm_system_allocations
@ usm_system_allocations
cl::sycl::aspect::gpu
@ gpu
cl::sycl::info::device::partition_type_affinity_domain
@ partition_type_affinity_domain
cl::sycl::info::device::driver_version
@ driver_version
cl::sycl::info::device::native_vector_width_long
@ native_vector_width_long
cl::sycl::info::device::native_vector_width_float
@ native_vector_width_float
cl::sycl::info::device::partition_type_property
@ partition_type_property
cl::sycl::info::device::preferred_vector_width_half
@ preferred_vector_width_half
cl::sycl::info::execution_capability::exec_kernel
@ exec_kernel
cl::sycl::aspect::ext_intel_gpu_eu_count
@ ext_intel_gpu_eu_count
cl::sycl::info::global_mem_cache_type
global_mem_cache_type
Definition: info_desc.hpp:214
PI_DEVICE_INFO_GPU_EU_COUNT
@ PI_DEVICE_INFO_GPU_EU_COUNT
Definition: pi.h:295
cl::sycl::info::partition_affinity_domain::L2_cache
@ L2_cache
cl::sycl::info::context::atomic_memory_order_capabilities
@ atomic_memory_order_capabilities
cl::sycl::info::device
device
Definition: info_desc.hpp:50
cl::sycl::aspect::usm_restricted_shared_allocations
@ usm_restricted_shared_allocations
cl::sycl::info::device::image_support
@ image_support
cl::sycl::info::device::mem_base_addr_align
@ mem_base_addr_align
cl::sycl::info::param_traits
Definition: info_desc.hpp:300
__SYCL2020_DEPRECATED
#define __SYCL2020_DEPRECATED(message)
Definition: defines_elementary.hpp:56
cl::sycl::info::device::ext_oneapi_max_work_groups_2d
@ ext_oneapi_max_work_groups_2d
cl::sycl::info::device::native_vector_width_half
@ native_vector_width_half
cl::sycl::aspect::ext_intel_device_info_uuid
@ ext_intel_device_info_uuid
cl::sycl::info::device::max_read_image_args
@ max_read_image_args
cl::sycl::aspect::ext_intel_gpu_subslices_per_slice
@ ext_intel_gpu_subslices_per_slice
cl::sycl::info::device::max_num_sub_groups
@ max_num_sub_groups
PI_DEVICE_INFO_IMAGE_SRGB
@ PI_DEVICE_INFO_IMAGE_SRGB
Definition: pi.h:301
cl::sycl::info::fp_config
fp_config
Definition: info_desc.hpp:203
cl::sycl::info::fp_config::denorm
@ denorm
cl::sycl::info::kernel_device_specific::ext_codeplay_num_regs
@ ext_codeplay_num_regs
cl::sycl::info::device::global_mem_size
@ global_mem_size
cl::sycl::info::device_type::automatic
@ automatic
cl::sycl::info::device::local_mem_size
@ local_mem_size
cl::sycl::info::device::max_work_item_sizes
@ max_work_item_sizes
cl::sycl::info::device::image3d_max_depth
@ image3d_max_depth
cl::sycl::info::platform::profile
@ profile
cl::sycl::info::device::ext_oneapi_max_global_work_groups
@ ext_oneapi_max_global_work_groups
cl::sycl::info::device::max_work_group_size
@ max_work_group_size
PI_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
@ PI_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
Definition: pi.h:329
cl::sycl::info::device::built_in_kernel_ids
@ built_in_kernel_ids
cl::sycl::info::device::global_mem_cache_line_size
@ global_mem_cache_line_size
PI_DEVICE_INFO_GPU_SLICES
@ PI_DEVICE_INFO_GPU_SLICES
Definition: pi.h:297
cl::sycl::info::device_type
device_type
Definition: info_desc.hpp:173
cl::sycl::info::fp_config::round_to_inf
@ round_to_inf
cl::sycl::info::kernel
kernel
Definition: info_desc.hpp:229
cl::sycl::info::device::partition_affinity_domains
@ partition_affinity_domains
PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE
@ PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE
Definition: pi.h:299
cl::sycl::info::partition_property::no_partition
@ no_partition
cl::sycl::info::device::preferred_vector_width_float
@ preferred_vector_width_float
cl::sycl::info::device::image2d_max_width
@ image2d_max_width
cl::sycl::info::event_profiling::command_start
@ command_start
cl::sycl::info::platform::vendor
@ vendor
cl::sycl::info::device::ext_oneapi_max_work_groups_3d
@ ext_oneapi_max_work_groups_3d
cl::sycl::info::device::address_bits
@ address_bits
cl::sycl::info::device::is_available
@ is_available
cl::sycl::info::device::is_endian_little
@ is_endian_little
PI_PLATFORM_INFO_NAME
@ PI_PLATFORM_INFO_NAME
Definition: pi.h:131
pi.hpp
cl::sycl::info::kernel_sub_group::compile_num_sub_groups
@ compile_num_sub_groups
cl::sycl::info::queue
queue
Definition: info_desc.hpp:222
id.hpp
cl::sycl::info::fp_config::soft_float
@ soft_float
cl::sycl::info::device::image3d_max_width
@ image3d_max_width
cl::sycl::aspect::cpu
@ cpu
cl::sycl::info::device::max_mem_alloc_size
@ max_mem_alloc_size
cl::sycl::info::fp_config::round_to_zero
@ round_to_zero
cl::sycl::info::device::host_unified_memory
@ host_unified_memory
cl::sycl::info::kernel_device_specific::global_work_size
@ global_work_size
cl::sycl::info::device::max_samplers
@ max_samplers
PI_DEVICE_TYPE_GPU
@ PI_DEVICE_TYPE_GPU
A PI device that is a GPU.
Definition: pi.h:170
cl::sycl::info::event_command_status
event_command_status
Definition: info_desc.hpp:287
cl::sycl::aspect::usm_device_allocations
@ usm_device_allocations
cl::sycl::info::device::image3d_max_height
@ image3d_max_height
cl::sycl::aspect::ext_intel_mem_channel
@ ext_intel_mem_channel
cl::sycl::info::device::opencl_c_version
@ opencl_c_version
cl::sycl::info::compatibility_param_traits
Definition: info_desc.hpp:302
cl::sycl::fma
detail::enable_if_t< detail::is_genfloat< T >::value, T > fma(T a, T b, T c) __NOEXC
Definition: builtins.hpp:189
cl::sycl::info::device::ext_oneapi_max_work_groups_1d
@ ext_oneapi_max_work_groups_1d
cl::sycl::info::kernel_device_specific::preferred_work_group_size_multiple
@ preferred_work_group_size_multiple
cl::sycl::info::event_profiling::command_submit
@ command_submit
cl::sycl::info::execution_capability::exec_native_kernel
@ exec_native_kernel
cl::sycl::aspect::usm_shared_allocations
@ usm_shared_allocations
cl::sycl::info::device::global_mem_cache_size
@ global_mem_cache_size
cl::sycl::info::partition_affinity_domain::next_partitionable
@ next_partitionable
cl::sycl::info::device::image_max_buffer_size
@ image_max_buffer_size
PI_DEVICE_TYPE_ACC
@ PI_DEVICE_TYPE_ACC
A PI device that is a dedicated accelerator.
Definition: pi.h:171
PI_KERNEL_GROUP_INFO_NUM_REGS
@ PI_KERNEL_GROUP_INFO_NUM_REGS
Definition: pi.h:360
cl::sycl::info::device::partition_properties
@ partition_properties
cl::sycl::info::kernel_device_specific::private_mem_size
@ private_mem_size
cl::sycl::info::device::preferred_vector_width_char
@ preferred_vector_width_char
cl::sycl::info::device::preferred_vector_width_double
@ preferred_vector_width_double
cl
We provide new interfaces for matrix muliply in this patch:
Definition: access.hpp:13
cl::sycl::info::device::double_fp_config
@ double_fp_config
cl::sycl::info::device::max_write_image_args
@ max_write_image_args
PI_PLATFORM_INFO_VERSION
@ PI_PLATFORM_INFO_VERSION
Definition: pi.h:134
cl::sycl::info::event_profiling::command_end
@ command_end
pi_uint64
uint64_t pi_uint64
Definition: pi.h:69
cl::sycl::info::device::preferred_vector_width_int
@ preferred_vector_width_int
cl::sycl::info::event::command_execution_status
@ command_execution_status
cl::sycl::aspect::ext_intel_gpu_eu_simd_width
@ ext_intel_gpu_eu_simd_width
cl::sycl::info::device::preferred_vector_width_short
@ preferred_vector_width_short
cl::sycl::info::device::image_max_array_size
@ image_max_array_size
cl::sycl::info::device::printf_buffer_size
@ printf_buffer_size
cl::sycl::info::platform::name
@ name
cl::sycl::info::device::sub_group_sizes
@ sub_group_sizes
cl::sycl::info::device::native_vector_width_int
@ native_vector_width_int
cl::sycl::info::device::max_parameter_size
@ max_parameter_size
PI_DEVICE_INFO_UUID
@ PI_DEVICE_INFO_UUID
Definition: pi.h:292
cl::sycl::info::event_command_status::submitted
@ submitted
PI_PLATFORM_INFO_PROFILE
@ PI_PLATFORM_INFO_PROFILE
Definition: pi.h:132
cl::sycl::info::partition_property::partition_equally
@ partition_equally
cl::sycl::aspect::custom
@ custom
cl::sycl::info::device::single_fp_config
@ single_fp_config
PI_DEVICE_INFO_PCI_ADDRESS
@ PI_DEVICE_INFO_PCI_ADDRESS
Definition: pi.h:294
cl::sycl::info::device::il_version
@ il_version
cl::sycl::info::device::half_fp_config
@ half_fp_config
cl::sycl::info::device::native_vector_width_short
@ native_vector_width_short
cl::sycl::info::context::reference_count
@ reference_count
cl::sycl::info::device::native_vector_width_char
@ native_vector_width_char
PI_PLATFORM_INFO_VENDOR
@ PI_PLATFORM_INFO_VENDOR
Definition: pi.h:133
cl::sycl::aspect::ext_intel_pci_address
@ ext_intel_pci_address
cl::sycl::info::device::max_work_item_dimensions
@ max_work_item_dimensions
cl::sycl::info::kernel::num_args
@ num_args
PI_DEVICE_TYPE_CPU
@ PI_DEVICE_TYPE_CPU
A PI device that is the host processor.
Definition: pi.h:168
cl::sycl::info::partition_property
partition_property
Definition: info_desc.hpp:184
cl::sycl::info::partition_affinity_domain::L3_cache
@ L3_cache
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D
Definition: pi.h:307
cl::sycl::info::device::preferred_vector_width_long
@ preferred_vector_width_long
cl::sycl::info::kernel_sub_group
kernel_sub_group
Definition: info_desc.hpp:251
cl::sycl::info::platform::version
@ version
cl::sycl::info::partition_affinity_domain::L4_cache
@ L4_cache
PI_USM_SYSTEM_SHARED_SUPPORT
@ PI_USM_SYSTEM_SHARED_SUPPORT
Definition: pi.h:1556
cl::sycl::info::partition_property::partition_by_counts
@ partition_by_counts
cl::sycl::info::event
event
Definition: info_desc.hpp:282
PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
@ PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
Definition: pi.h:300
cl::sycl::cl_int
std::int32_t cl_int
Definition: aliases.hpp:82
cl::sycl::info::kernel::attributes
@ attributes
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_2D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_2D
Definition: pi.h:306
PI_DEVICE_INFO_ATOMIC_64
@ PI_DEVICE_INFO_ATOMIC_64
Definition: pi.h:302
cl::sycl::info::device::preferred_interop_user_sync
@ preferred_interop_user_sync
PI_MEM_PROPERTIES_CHANNEL
constexpr pi_mem_properties PI_MEM_PROPERTIES_CHANNEL
Definition: pi.h:566
cl::sycl::info::local_mem_type
local_mem_type
Definition: info_desc.hpp:201
cl::sycl::info::device::execution_capabilities
@ execution_capabilities
cl::sycl::info::device::error_correction_support
@ error_correction_support
cl::sycl::info::execution_capability
execution_capability
Definition: info_desc.hpp:216
PI_USM_DEVICE_SUPPORT
@ PI_USM_DEVICE_SUPPORT
Definition: pi.h:1551
cl::sycl::info::device::profiling_timer_resolution
@ profiling_timer_resolution
PI_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE
@ PI_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE
Definition: pi.h:298
cl::sycl::info::device::image2d_max_height
@ image2d_max_height
cl::sycl::info::local_mem_type::none
@ none
cl::sycl::context
The context class represents a SYCL context on which kernel functions may be executed.
Definition: context.hpp:35
cl::sycl::info::local_mem_type::global
@ global
PI_USM_CROSS_SHARED_SUPPORT
@ PI_USM_CROSS_SHARED_SUPPORT
Definition: pi.h:1554
cl::sycl::info::event_command_status::complete
@ complete
cl::sycl::info::device::parent_device
@ parent_device
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D
Definition: pi.h:305
cl::sycl::all
detail::enable_if_t< detail::is_sigeninteger< T >::value, int > all(T x) __NOEXC
Definition: builtins.hpp:1282
cl::sycl::aspect::queue_profiling
@ queue_profiling
cl::sycl::info::device::is_compiler_available
@ is_compiler_available
cl::sycl::info::device::vendor_id
@ vendor_id
cl::sycl::info::device::max_compute_units
@ max_compute_units
cl::sycl::info::event_command_status::running
@ running
common.hpp
cl::sycl::info::device::is_linker_available
@ is_linker_available
cl::sycl::aspect::accelerator
@ accelerator
cl::sycl::info::kernel::function_name
@ function_name
cl::sycl::info::platform
platform
Definition: info_desc.hpp:30
cl::sycl::aspect::usm_host_allocations
@ usm_host_allocations
cl::sycl::info::partition_affinity_domain::not_applicable
@ not_applicable
cl::sycl::instead
std::uint8_t instead
Definition: aliases.hpp:68
cl::sycl::info::context
context
Definition: info_desc.hpp:41
cl::sycl::aspect::ext_intel_max_mem_bandwidth
@ ext_intel_max_mem_bandwidth
cl::sycl::aspect::ext_oneapi_srgb
@ ext_oneapi_srgb
cl::sycl::info::device::kernel_kernel_pipe_support
@ kernel_kernel_pipe_support
cl::sycl::aspect::ext_intel_gpu_eu_count_per_subslice
@ ext_intel_gpu_eu_count_per_subslice
cl::sycl::info::partition_affinity_domain::numa
@ numa
cl::sycl::info::kernel_sub_group::max_sub_group_size
@ max_sub_group_size
cl::sycl::info::device::partition_max_sub_devices
@ partition_max_sub_devices
cl::sycl::info::kernel_sub_group::compile_sub_group_size
@ compile_sub_group_size
cl::sycl::info::partition_affinity_domain::L1_cache
@ L1_cache
cl::sycl::info::kernel_device_specific
kernel_device_specific
Definition: info_desc.hpp:258
cl::sycl::info::event_profiling
event_profiling
Definition: info_desc.hpp:293
cl::sycl::info::fp_config::correctly_rounded_divide_sqrt
@ correctly_rounded_divide_sqrt
cl::sycl::info::kernel_device_specific::work_group_size
@ work_group_size
cl::sycl::aspect::ext_intel_gpu_slices
@ ext_intel_gpu_slices
PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH
@ PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH
Definition: pi.h:296
cl::sycl::aspect::host
@ host
cl::sycl::info::global_mem_cache_type::read_only
@ read_only
cl::sycl::info::fp_config::inf_nan
@ inf_nan
cl::sycl::info::fp_config::round_to_nearest
@ round_to_nearest
cl::sycl::aspect::atomic64
@ atomic64
cl::sycl::info::device::max_clock_frequency
@ max_clock_frequency
cl::sycl::info::partition_property::partition_by_affinity_domain
@ partition_by_affinity_domain
cl::sycl::info::device::sub_group_independent_forward_progress
@ sub_group_independent_forward_progress
PI_USM_HOST_SUPPORT
@ PI_USM_HOST_SUPPORT
Definition: pi.h:1550
cl::sycl::info::context::devices
@ devices
PI_USM_SINGLE_SHARED_SUPPORT
@ PI_USM_SINGLE_SHARED_SUPPORT
Definition: pi.h:1552
PI_PLATFORM_INFO_EXTENSIONS
@ PI_PLATFORM_INFO_EXTENSIONS
Definition: pi.h:130
cl::sycl::info::kernel_device_specific::compile_work_group_size
@ compile_work_group_size
cl::sycl::info::partition_affinity_domain
partition_affinity_domain
Definition: info_desc.hpp:191
__SYCL_INLINE_NAMESPACE
#define __SYCL_INLINE_NAMESPACE(X)
Definition: defines_elementary.hpp:12
PI_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
@ PI_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
Definition: pi.h:303
PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
Definition: pi.h:304