DPC++ Runtime
Runtime libraries for oneAPI DPC++
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 enum class memory_scope;
25 
26 // TODO: stop using OpenCL directly, use PI.
27 namespace info {
28 
29 // Information descriptors
30 // A.1 Platform information descriptors
31 enum class platform {
36  extensions __SYCL2020_DEPRECATED(
37  "platform::extensions is deprecated, use device::get_info() with"
38  " info::device::aspects instead.") = PI_PLATFORM_INFO_EXTENSIONS,
39 };
40 
41 // A.2 Context information desctiptors
42 enum class context : cl_context_info {
43  reference_count = CL_CONTEXT_REFERENCE_COUNT,
44  platform = CL_CONTEXT_PLATFORM,
45  devices = CL_CONTEXT_DEVICES,
50 };
51 
52 // A.3 Device information descriptors
53 enum class device : cl_device_info {
54  device_type = CL_DEVICE_TYPE,
55  vendor_id = CL_DEVICE_VENDOR_ID,
56  max_compute_units = CL_DEVICE_MAX_COMPUTE_UNITS,
57  max_work_item_dimensions = CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS,
58  max_work_item_sizes = CL_DEVICE_MAX_WORK_ITEM_SIZES,
59  max_work_group_size = CL_DEVICE_MAX_WORK_GROUP_SIZE,
60 
61  preferred_vector_width_char = CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR,
62  preferred_vector_width_short = CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT,
63  preferred_vector_width_int = CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT,
64  preferred_vector_width_long = CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG,
65  preferred_vector_width_float = CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,
66  preferred_vector_width_double = CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE,
67  preferred_vector_width_half = CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF,
68 
69  native_vector_width_char = CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR,
70  native_vector_width_short = CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT,
71  native_vector_width_int = CL_DEVICE_NATIVE_VECTOR_WIDTH_INT,
72  native_vector_width_long = CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG,
73  native_vector_width_float = CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT,
74  native_vector_width_double = CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE,
75  native_vector_width_half = CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF,
76 
77  max_clock_frequency = CL_DEVICE_MAX_CLOCK_FREQUENCY,
78  address_bits = CL_DEVICE_ADDRESS_BITS,
79  max_mem_alloc_size = CL_DEVICE_MAX_MEM_ALLOC_SIZE,
80  image_support = CL_DEVICE_IMAGE_SUPPORT,
81  max_read_image_args = CL_DEVICE_MAX_READ_IMAGE_ARGS,
82  max_write_image_args = CL_DEVICE_MAX_WRITE_IMAGE_ARGS,
83  image2d_max_width = CL_DEVICE_IMAGE2D_MAX_WIDTH,
84  image2d_max_height = CL_DEVICE_IMAGE2D_MAX_HEIGHT,
85  image3d_max_width = CL_DEVICE_IMAGE3D_MAX_WIDTH,
86  image3d_max_height = CL_DEVICE_IMAGE3D_MAX_HEIGHT,
87  image3d_max_depth = CL_DEVICE_IMAGE3D_MAX_DEPTH,
88  image_max_buffer_size = CL_DEVICE_IMAGE_MAX_BUFFER_SIZE,
89  image_max_array_size = CL_DEVICE_IMAGE_MAX_ARRAY_SIZE,
90  max_samplers = CL_DEVICE_MAX_SAMPLERS,
91  max_parameter_size = CL_DEVICE_MAX_PARAMETER_SIZE,
92  mem_base_addr_align = CL_DEVICE_MEM_BASE_ADDR_ALIGN,
93  half_fp_config = CL_DEVICE_HALF_FP_CONFIG,
94  single_fp_config = CL_DEVICE_SINGLE_FP_CONFIG,
95  double_fp_config = CL_DEVICE_DOUBLE_FP_CONFIG,
96  global_mem_cache_type = CL_DEVICE_GLOBAL_MEM_CACHE_TYPE,
97  global_mem_cache_line_size = CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE,
98  global_mem_cache_size = CL_DEVICE_GLOBAL_MEM_CACHE_SIZE,
99  global_mem_size = CL_DEVICE_GLOBAL_MEM_SIZE,
100  max_constant_buffer_size __SYCL2020_DEPRECATED(
101  "max_constant_buffer_size is deprecated") =
102  CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE,
103  max_constant_args __SYCL2020_DEPRECATED("max_constant_args is deprecated") =
104  CL_DEVICE_MAX_CONSTANT_ARGS,
105  local_mem_type = CL_DEVICE_LOCAL_MEM_TYPE,
106  local_mem_size = CL_DEVICE_LOCAL_MEM_SIZE,
107  error_correction_support = CL_DEVICE_ERROR_CORRECTION_SUPPORT,
108  host_unified_memory = CL_DEVICE_HOST_UNIFIED_MEMORY,
109  profiling_timer_resolution = CL_DEVICE_PROFILING_TIMER_RESOLUTION,
110  is_endian_little = CL_DEVICE_ENDIAN_LITTLE,
111  is_available = CL_DEVICE_AVAILABLE,
112  is_compiler_available = CL_DEVICE_COMPILER_AVAILABLE,
113  is_linker_available = CL_DEVICE_LINKER_AVAILABLE,
114  execution_capabilities = CL_DEVICE_EXECUTION_CAPABILITIES,
115  queue_profiling = CL_DEVICE_QUEUE_PROPERTIES,
116  built_in_kernels __SYCL2020_DEPRECATED("use built_in_kernel_ids instead") =
117  CL_DEVICE_BUILT_IN_KERNELS,
118  platform = CL_DEVICE_PLATFORM,
119  name = CL_DEVICE_NAME,
120  vendor = CL_DEVICE_VENDOR,
121  driver_version = CL_DRIVER_VERSION,
122  profile = CL_DEVICE_PROFILE,
123  version = CL_DEVICE_VERSION,
124  opencl_c_version = CL_DEVICE_OPENCL_C_VERSION,
125  extensions __SYCL2020_DEPRECATED(
126  "device::extensions is deprecated, use info::device::aspects"
127  " instead.") = CL_DEVICE_EXTENSIONS,
128  printf_buffer_size = CL_DEVICE_PRINTF_BUFFER_SIZE,
129  preferred_interop_user_sync = CL_DEVICE_PREFERRED_INTEROP_USER_SYNC,
130  parent_device = CL_DEVICE_PARENT_DEVICE,
131  partition_max_sub_devices = CL_DEVICE_PARTITION_MAX_SUB_DEVICES,
132  partition_properties = CL_DEVICE_PARTITION_PROPERTIES,
133  partition_affinity_domains = CL_DEVICE_PARTITION_AFFINITY_DOMAIN,
134  partition_type_affinity_domain = CL_DEVICE_PARTITION_TYPE,
135  reference_count = CL_DEVICE_REFERENCE_COUNT,
136  il_version =
137  CL_DEVICE_IL_VERSION_KHR, // Same as CL_DEVICE_IL_VERSION for >=OpenCL 2.1
138  max_num_sub_groups = CL_DEVICE_MAX_NUM_SUB_GROUPS,
140  CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS,
141  sub_group_sizes = CL_DEVICE_SUB_GROUP_SIZES_INTEL,
146  // USM
152  usm_system_allocator __SYCL2020_DEPRECATED(
153  "use usm_system_allocations instead") = usm_system_allocations,
154 
155  // intel extensions
178 };
179 
180 enum class device_type : pi_uint64 {
184  // TODO: figure out if we need all the below in PI
185  custom = CL_DEVICE_TYPE_CUSTOM,
186  automatic,
187  host,
188  all = CL_DEVICE_TYPE_ALL
189 };
190 
191 enum class partition_property : cl_device_partition_property {
192  no_partition = 0,
193  partition_equally = CL_DEVICE_PARTITION_EQUALLY,
194  partition_by_counts = CL_DEVICE_PARTITION_BY_COUNTS,
195  partition_by_affinity_domain = CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
196 };
197 
198 enum class partition_affinity_domain : cl_device_affinity_domain {
199  not_applicable = 0,
200  numa = CL_DEVICE_AFFINITY_DOMAIN_NUMA,
201  L4_cache = CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE,
202  L3_cache = CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE,
203  L2_cache = CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE,
204  L1_cache = CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE,
205  next_partitionable = CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
206 };
207 
208 enum class local_mem_type : int { none, local, global };
209 
210 enum class fp_config : cl_device_fp_config {
211  denorm = CL_FP_DENORM,
212  inf_nan = CL_FP_INF_NAN,
213  round_to_nearest = CL_FP_ROUND_TO_NEAREST,
214  round_to_zero = CL_FP_ROUND_TO_ZERO,
215  round_to_inf = CL_FP_ROUND_TO_INF,
216  fma = CL_FP_FMA,
218  soft_float
219 };
220 
221 enum class global_mem_cache_type : int { none, read_only, read_write };
222 
223 enum class execution_capability : unsigned int {
224  exec_kernel,
226 };
227 
228 // A.4 Queue information descriptors
229 enum class queue : cl_command_queue_info {
230  context = CL_QUEUE_CONTEXT,
231  device = CL_QUEUE_DEVICE,
232  reference_count = CL_QUEUE_REFERENCE_COUNT
233 };
234 
235 // A.5 Kernel information desctiptors
236 enum class kernel : cl_kernel_info {
237  function_name = CL_KERNEL_FUNCTION_NAME,
238  num_args = CL_KERNEL_NUM_ARGS,
239  context = CL_KERNEL_CONTEXT,
240 #ifdef __SYCL_INTERNAL_API
241  program = CL_KERNEL_PROGRAM,
242 #endif
243  reference_count = CL_KERNEL_REFERENCE_COUNT,
244  attributes = CL_KERNEL_ATTRIBUTES
245 };
246 
247 enum class __SYCL2020_DEPRECATED(
248  "kernel_work_group enumeration is deprecated, use SYCL 2020 requests"
249  " instead") kernel_work_group : cl_kernel_work_group_info {
250  global_work_size = CL_KERNEL_GLOBAL_WORK_SIZE,
251  work_group_size = CL_KERNEL_WORK_GROUP_SIZE,
252  compile_work_group_size = CL_KERNEL_COMPILE_WORK_GROUP_SIZE,
253  preferred_work_group_size_multiple =
254  CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,
255  private_mem_size = CL_KERNEL_PRIVATE_MEM_SIZE
256 };
257 
258 enum class kernel_sub_group : cl_kernel_sub_group_info {
259  max_sub_group_size = CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE,
260  max_num_sub_groups = CL_KERNEL_MAX_NUM_SUB_GROUPS,
261  compile_num_sub_groups = CL_KERNEL_COMPILE_NUM_SUB_GROUPS,
262  compile_sub_group_size = CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
263 };
264 
265 enum class kernel_device_specific : cl_kernel_work_group_info {
266  global_work_size = CL_KERNEL_GLOBAL_WORK_SIZE,
267  work_group_size = CL_KERNEL_WORK_GROUP_SIZE,
268  compile_work_group_size = CL_KERNEL_COMPILE_WORK_GROUP_SIZE,
270  CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,
271  private_mem_size = CL_KERNEL_PRIVATE_MEM_SIZE,
273  max_sub_group_size = CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE,
274  max_num_sub_groups = CL_KERNEL_MAX_NUM_SUB_GROUPS,
275  compile_num_sub_groups = CL_KERNEL_COMPILE_NUM_SUB_GROUPS,
276  compile_sub_group_size = CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
277 };
278 
279 // A.6 Program information desctiptors
280 #ifdef __SYCL_INTERNAL_API
281 enum class program : cl_program_info {
282  context = CL_PROGRAM_CONTEXT,
283  devices = CL_PROGRAM_DEVICES,
284  reference_count = CL_PROGRAM_REFERENCE_COUNT
285 };
286 #endif
287 
288 // A.7 Event information desctiptors
289 enum class event : cl_event_info {
290  reference_count = CL_EVENT_REFERENCE_COUNT,
291  command_execution_status = CL_EVENT_COMMAND_EXECUTION_STATUS
292 };
293 
295  submitted = CL_SUBMITTED,
296  running = CL_RUNNING,
297  complete = CL_COMPLETE,
298  // Since all BE values are positive, it is safe to use a negative value If you
299  // add other ext_oneapi values
300  ext_oneapi_unknown = -1
301 };
302 
303 enum class event_profiling : cl_profiling_info {
304  command_submit = CL_PROFILING_COMMAND_SUBMIT,
305  command_start = CL_PROFILING_COMMAND_START,
306  command_end = CL_PROFILING_COMMAND_END
307 };
308 
309 // Provide an alias to the return type for each of the info parameters
310 template <typename T, T param> class param_traits {};
311 
312 template <typename T, T param> struct compatibility_param_traits {};
313 
314 #define __SYCL_PARAM_TRAITS_SPEC(param_type, param, ret_type) \
315  template <> class param_traits<param_type, param_type::param> { \
316  public: \
317  using return_type = ret_type; \
318  };
319 
320 #define __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT(param_type, param, ret_type, \
321  in_type) \
322  template <> class param_traits<param_type, param_type::param> { \
323  public: \
324  using return_type = ret_type; \
325  using input_type = in_type; \
326  };
327 
328 #include <CL/sycl/info/device_traits.def>
329 
330 #include <CL/sycl/info/context_traits.def>
331 
332 #include <CL/sycl/info/event_traits.def>
333 
334 #include <CL/sycl/info/event_profiling_traits.def>
335 
336 #include <CL/sycl/info/kernel_device_specific_traits.def>
337 #include <CL/sycl/info/kernel_sub_group_traits.def>
338 #include <CL/sycl/info/kernel_traits.def>
339 #include <CL/sycl/info/kernel_work_group_traits.def>
340 
341 #include <CL/sycl/info/platform_traits.def>
342 
343 #ifdef __SYCL_INTERNAL_API
344 #include <CL/sycl/info/program_traits.def>
345 #endif
346 
347 #include <CL/sycl/info/queue_traits.def>
348 
349 #undef __SYCL_PARAM_TRAITS_SPEC
350 #undef __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT
351 
352 #define __SYCL_PARAM_TRAITS_SPEC(param_type, param, ret_type) \
353  template <> \
354  struct compatibility_param_traits<param_type, param_type::param> { \
355  static constexpr auto value = kernel_device_specific::param; \
356  };
357 
358 #define __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT(param_type, param, ret_type, \
359  in_type) \
360  template <> \
361  struct compatibility_param_traits<param_type, param_type::param> { \
362  static constexpr auto value = kernel_device_specific::param; \
363  };
364 
365 #include <CL/sycl/info/kernel_sub_group_traits.def>
366 #include <CL/sycl/info/kernel_work_group_traits.def>
367 
368 #undef __SYCL_PARAM_TRAITS_SPEC
369 #undef __SYCL_PARAM_TRAITS_SPEC_WITH_INPUT
370 
371 } // namespace info
372 } // namespace sycl
373 } // __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:221
PI_DEVICE_INFO_GPU_EU_COUNT
@ PI_DEVICE_INFO_GPU_EU_COUNT
Definition: pi.h:307
cl::sycl::info::partition_affinity_domain::L2_cache
@ L2_cache
cl::sycl::info::device::backend_version
@ backend_version
cl::sycl::info::context::atomic_memory_order_capabilities
@ atomic_memory_order_capabilities
cl::sycl::info::device
device
Definition: info_desc.hpp:53
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:310
__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:313
cl::sycl::info::fp_config
fp_config
Definition: info_desc.hpp:210
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
PI_DEVICE_INFO_GPU_HW_THREADS_PER_EU
@ PI_DEVICE_INFO_GPU_HW_THREADS_PER_EU
Definition: pi.h:319
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:346
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:309
cl::sycl::info::device_type
device_type
Definition: info_desc.hpp:180
cl::sycl::info::fp_config::round_to_inf
@ round_to_inf
cl::sycl::info::kernel
kernel
Definition: info_desc.hpp:236
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:311
cl::sycl::info::partition_property::no_partition
@ no_partition
sycl
Definition: invoke_simd.hpp:68
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:143
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:229
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::memory_scope
memory_scope
Definition: memory_enums.hpp:26
cl::sycl::info::kernel_device_specific::global_work_size
@ global_work_size
cl::sycl::info::device::max_samplers
@ max_samplers
cl::sycl::aspect::ext_intel_gpu_hw_threads_per_eu
@ ext_intel_gpu_hw_threads_per_eu
PI_DEVICE_TYPE_GPU
@ PI_DEVICE_TYPE_GPU
A PI device that is a GPU.
Definition: pi.h:182
cl::sycl::info::event_command_status
event_command_status
Definition: info_desc.hpp:294
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:312
cl::sycl::fma
detail::enable_if_t< detail::is_genfloat< T >::value, T > fma(T a, T b, T c) __NOEXC
Definition: builtins.hpp:196
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:183
PI_KERNEL_GROUP_INFO_NUM_REGS
@ PI_KERNEL_GROUP_INFO_NUM_REGS
Definition: pi.h:378
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:146
cl::sycl::info::event_profiling::command_end
@ command_end
pi_uint64
uint64_t pi_uint64
Definition: pi.h:73
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
PI_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
@ PI_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
Definition: pi.h:347
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:304
cl::sycl::info::event_command_status::submitted
@ submitted
PI_PLATFORM_INFO_PROFILE
@ PI_PLATFORM_INFO_PROFILE
Definition: pi.h:144
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:306
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:145
cl::sycl::aspect::ext_intel_pci_address
@ ext_intel_pci_address
cl::sycl::info::device::max_work_item_dimensions
@ max_work_item_dimensions
PI_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
@ PI_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
Definition: pi.h:318
cl::sycl::info::kernel::num_args
@ num_args
cl::sycl::info::event_command_status::ext_oneapi_unknown
@ ext_oneapi_unknown
PI_DEVICE_TYPE_CPU
@ PI_DEVICE_TYPE_CPU
A PI device that is the host processor.
Definition: pi.h:180
cl::sycl::info::partition_property
partition_property
Definition: info_desc.hpp:191
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:324
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:258
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:1630
cl::sycl::info::partition_property::partition_by_counts
@ partition_by_counts
cl::sycl::info::event
event
Definition: info_desc.hpp:289
PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
@ PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
Definition: pi.h:312
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:323
PI_DEVICE_INFO_ATOMIC_64
@ PI_DEVICE_INFO_ATOMIC_64
Definition: pi.h:316
PI_DEVICE_INFO_BACKEND_VERSION
@ PI_DEVICE_INFO_BACKEND_VERSION
Definition: pi.h:320
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:601
cl::sycl::info::local_mem_type
local_mem_type
Definition: info_desc.hpp:208
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:223
PI_USM_DEVICE_SUPPORT
@ PI_USM_DEVICE_SUPPORT
Definition: pi.h:1625
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:310
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:1628
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:322
cl::sycl::all
detail::enable_if_t< detail::is_sigeninteger< T >::value, int > all(T x) __NOEXC
Definition: builtins.hpp:1297
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:31
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:42
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::context::atomic_memory_scope_capabilities
@ atomic_memory_scope_capabilities
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:265
cl::sycl::info::event_profiling
event_profiling
Definition: info_desc.hpp:303
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:308
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:1624
cl::sycl::info::context::devices
@ devices
PI_USM_SINGLE_SHARED_SUPPORT
@ PI_USM_SINGLE_SHARED_SUPPORT
Definition: pi.h:1626
PI_PLATFORM_INFO_EXTENSIONS
@ PI_PLATFORM_INFO_EXTENSIONS
Definition: pi.h:142
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:198
__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:317
PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
Definition: pi.h:321