DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
pi.h
Go to the documentation of this file.
1 //==---------- pi.h - Plugin Interface -------------------------------------==//
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 
10 // TODO: link to sphinx page
11 
21 
22 #ifndef _PI_H_
23 #define _PI_H_
24 
25 // Every single change in PI API should be accompanied with the minor
26 // version increase (+1). In the cases where backward compatibility is not
27 // maintained there should be a (+1) change to the major version in
28 // addition to the increase of the minor.
29 //
30 // PI version changes log:
31 // -- Version 1.2:
32 // 1. (Binary backward compatibility breaks) Two fields added to the
33 // pi_device_binary_struct structure:
34 // pi_device_binary_property_set PropertySetsBegin;
35 // pi_device_binary_property_set PropertySetsEnd;
36 // 2. A number of types needed to define pi_device_binary_property_set added.
37 // 3. Added new ownership argument to piextContextCreateWithNativeHandle.
38 // 4. Add interoperability interfaces for kernel.
39 // 4.6 Added new ownership argument to piextQueueCreateWithNativeHandle which
40 // changes the API version from 3.5 to 4.6.
41 // 5.7 Added new context and ownership arguments to
42 // piextEventCreateWithNativeHandle
43 // 6.8 Added new ownership argument to piextProgramCreateWithNativeHandle.
44 //
45 #include "CL/cl.h"
46 #define _PI_H_VERSION_MAJOR 5
47 #define _PI_H_VERSION_MINOR 7
48 
49 #define _PI_STRING_HELPER(a) #a
50 #define _PI_CONCAT(a, b) _PI_STRING_HELPER(a.b)
51 #define _PI_H_VERSION_STRING \
52  _PI_CONCAT(_PI_H_VERSION_MAJOR, _PI_H_VERSION_MINOR)
53 
54 // TODO: we need a mapping of PI to OpenCL somewhere, and this can be done
55 // elsewhere, e.g. in the pi_opencl, but constants/enums mapping is now
56 // done here, for efficiency and simplicity.
57 #include <CL/cl_ext.h>
58 #include <CL/sycl/detail/cl.h>
60 
61 #include <cstdint>
62 
63 #ifdef __cplusplus
64 extern "C" {
65 #endif // __cplusplus
66 
67 using pi_int32 = int32_t;
68 using pi_uint32 = uint32_t;
69 using pi_uint64 = uint64_t;
72 using pi_native_handle = uintptr_t;
73 
74 //
75 // NOTE: prefer to map 1:1 to OpenCL so that no translation is needed
76 // for PI <-> OpenCL ways. The PI <-> to other BE translation is almost
77 // always needed anyway.
78 //
79 // TODO: populate PI enums.
80 //
81 typedef enum {
82  PI_SUCCESS = CL_SUCCESS,
83  PI_INVALID_KERNEL_NAME = CL_INVALID_KERNEL_NAME,
84  PI_INVALID_OPERATION = CL_INVALID_OPERATION,
85  PI_INVALID_KERNEL = CL_INVALID_KERNEL,
86  PI_INVALID_QUEUE_PROPERTIES = CL_INVALID_QUEUE_PROPERTIES,
87  PI_INVALID_VALUE = CL_INVALID_VALUE,
88  PI_INVALID_CONTEXT = CL_INVALID_CONTEXT,
89  PI_INVALID_PLATFORM = CL_INVALID_PLATFORM,
90  PI_INVALID_DEVICE = CL_INVALID_DEVICE,
91  PI_INVALID_BINARY = CL_INVALID_BINARY,
92  PI_INVALID_QUEUE = CL_INVALID_COMMAND_QUEUE,
93  PI_OUT_OF_HOST_MEMORY = CL_OUT_OF_HOST_MEMORY,
94  PI_INVALID_PROGRAM = CL_INVALID_PROGRAM,
95  PI_INVALID_PROGRAM_EXECUTABLE = CL_INVALID_PROGRAM_EXECUTABLE,
96  PI_INVALID_SAMPLER = CL_INVALID_SAMPLER,
97  PI_INVALID_BUFFER_SIZE = CL_INVALID_BUFFER_SIZE,
98  PI_INVALID_MEM_OBJECT = CL_INVALID_MEM_OBJECT,
99  PI_OUT_OF_RESOURCES = CL_OUT_OF_RESOURCES,
100  PI_INVALID_EVENT = CL_INVALID_EVENT,
101  PI_INVALID_EVENT_WAIT_LIST = CL_INVALID_EVENT_WAIT_LIST,
102  PI_MISALIGNED_SUB_BUFFER_OFFSET = CL_MISALIGNED_SUB_BUFFER_OFFSET,
103  PI_BUILD_PROGRAM_FAILURE = CL_BUILD_PROGRAM_FAILURE,
104  PI_INVALID_WORK_GROUP_SIZE = CL_INVALID_WORK_GROUP_SIZE,
105  PI_COMPILER_NOT_AVAILABLE = CL_COMPILER_NOT_AVAILABLE,
106  PI_PROFILING_INFO_NOT_AVAILABLE = CL_PROFILING_INFO_NOT_AVAILABLE,
107  PI_DEVICE_NOT_FOUND = CL_DEVICE_NOT_FOUND,
108  PI_INVALID_WORK_ITEM_SIZE = CL_INVALID_WORK_ITEM_SIZE,
109  PI_INVALID_WORK_DIMENSION = CL_INVALID_WORK_DIMENSION,
110  PI_INVALID_KERNEL_ARGS = CL_INVALID_KERNEL_ARGS,
111  PI_INVALID_IMAGE_SIZE = CL_INVALID_IMAGE_SIZE,
112  PI_INVALID_IMAGE_FORMAT_DESCRIPTOR = CL_INVALID_IMAGE_FORMAT_DESCRIPTOR,
113  PI_IMAGE_FORMAT_NOT_SUPPORTED = CL_IMAGE_FORMAT_NOT_SUPPORTED,
114  PI_MEM_OBJECT_ALLOCATION_FAILURE = CL_MEM_OBJECT_ALLOCATION_FAILURE,
116  -998,
117  PI_ERROR_UNKNOWN = -999
120 } _pi_result;
121 
122 typedef enum {
123  PI_EVENT_COMPLETE = CL_COMPLETE,
124  PI_EVENT_RUNNING = CL_RUNNING,
125  PI_EVENT_SUBMITTED = CL_SUBMITTED,
126  PI_EVENT_QUEUED = CL_QUEUED
128 
129 typedef enum {
130  PI_PLATFORM_INFO_EXTENSIONS = CL_PLATFORM_EXTENSIONS,
131  PI_PLATFORM_INFO_NAME = CL_PLATFORM_NAME,
132  PI_PLATFORM_INFO_PROFILE = CL_PLATFORM_PROFILE,
133  PI_PLATFORM_INFO_VENDOR = CL_PLATFORM_VENDOR,
134  PI_PLATFORM_INFO_VERSION = CL_PLATFORM_VERSION
136 
137 typedef enum {
138  PI_PROGRAM_BUILD_INFO_STATUS = CL_PROGRAM_BUILD_STATUS,
139  PI_PROGRAM_BUILD_INFO_OPTIONS = CL_PROGRAM_BUILD_OPTIONS,
140  PI_PROGRAM_BUILD_INFO_LOG = CL_PROGRAM_BUILD_LOG,
141  PI_PROGRAM_BUILD_INFO_BINARY_TYPE = CL_PROGRAM_BINARY_TYPE
143 
144 typedef enum {
148  PI_PROGRAM_BUILD_STATUS_IN_PROGRESS = CL_BUILD_IN_PROGRESS
150 
151 typedef enum {
152  PI_PROGRAM_BINARY_TYPE_NONE = CL_PROGRAM_BINARY_TYPE_NONE,
154  CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT,
155  PI_PROGRAM_BINARY_TYPE_LIBRARY = CL_PROGRAM_BINARY_TYPE_LIBRARY,
156  PI_PROGRAM_BINARY_TYPE_EXECUTABLE = CL_PROGRAM_BINARY_TYPE_EXECUTABLE
158 
159 // NOTE: this is made 64-bit to match the size of cl_device_type to
160 // make the translation to OpenCL transparent.
161 //
162 typedef enum : pi_uint64 {
164  CL_DEVICE_TYPE_DEFAULT,
167  CL_DEVICE_TYPE_ALL,
169  CL_DEVICE_TYPE_CPU,
170  PI_DEVICE_TYPE_GPU = CL_DEVICE_TYPE_GPU,
171  PI_DEVICE_TYPE_ACC = CL_DEVICE_TYPE_ACCELERATOR
174 
175 typedef enum {
180 
181 typedef enum {
185 
186 typedef enum {
187  PI_DEVICE_INFO_TYPE = CL_DEVICE_TYPE,
188  PI_DEVICE_INFO_VENDOR_ID = CL_DEVICE_VENDOR_ID,
189  PI_DEVICE_INFO_MAX_COMPUTE_UNITS = CL_DEVICE_MAX_COMPUTE_UNITS,
190  PI_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS = CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS,
191  PI_DEVICE_INFO_MAX_WORK_ITEM_SIZES = CL_DEVICE_MAX_WORK_ITEM_SIZES,
192  PI_DEVICE_INFO_MAX_WORK_GROUP_SIZE = CL_DEVICE_MAX_WORK_GROUP_SIZE,
193  PI_DEVICE_INFO_SINGLE_FP_CONFIG = CL_DEVICE_SINGLE_FP_CONFIG,
194  PI_DEVICE_INFO_HALF_FP_CONFIG = CL_DEVICE_HALF_FP_CONFIG,
195  PI_DEVICE_INFO_DOUBLE_FP_CONFIG = CL_DEVICE_DOUBLE_FP_CONFIG,
196  PI_DEVICE_INFO_QUEUE_PROPERTIES = CL_DEVICE_QUEUE_PROPERTIES,
198  CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR,
200  CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT,
202  CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT,
204  CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG,
206  CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,
208  CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE,
210  CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF,
211  PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR = CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR,
213  CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT,
214  PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT = CL_DEVICE_NATIVE_VECTOR_WIDTH_INT,
215  PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG = CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG,
217  CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT,
219  CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE,
220  PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF = CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF,
221  PI_DEVICE_INFO_MAX_CLOCK_FREQUENCY = CL_DEVICE_MAX_CLOCK_FREQUENCY,
222  PI_DEVICE_INFO_ADDRESS_BITS = CL_DEVICE_ADDRESS_BITS,
223  PI_DEVICE_INFO_MAX_MEM_ALLOC_SIZE = CL_DEVICE_MAX_MEM_ALLOC_SIZE,
224  PI_DEVICE_INFO_IMAGE_SUPPORT = CL_DEVICE_IMAGE_SUPPORT,
225  PI_DEVICE_INFO_MAX_READ_IMAGE_ARGS = CL_DEVICE_MAX_READ_IMAGE_ARGS,
226  PI_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS = CL_DEVICE_MAX_WRITE_IMAGE_ARGS,
227  PI_DEVICE_INFO_IMAGE2D_MAX_WIDTH = CL_DEVICE_IMAGE2D_MAX_WIDTH,
228  PI_DEVICE_INFO_IMAGE2D_MAX_HEIGHT = CL_DEVICE_IMAGE2D_MAX_HEIGHT,
229  PI_DEVICE_INFO_IMAGE3D_MAX_WIDTH = CL_DEVICE_IMAGE3D_MAX_WIDTH,
230  PI_DEVICE_INFO_IMAGE3D_MAX_HEIGHT = CL_DEVICE_IMAGE3D_MAX_HEIGHT,
231  PI_DEVICE_INFO_IMAGE3D_MAX_DEPTH = CL_DEVICE_IMAGE3D_MAX_DEPTH,
232  PI_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE = CL_DEVICE_IMAGE_MAX_BUFFER_SIZE,
233  PI_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE = CL_DEVICE_IMAGE_MAX_ARRAY_SIZE,
234  PI_DEVICE_INFO_MAX_SAMPLERS = CL_DEVICE_MAX_SAMPLERS,
235  PI_DEVICE_INFO_MAX_PARAMETER_SIZE = CL_DEVICE_MAX_PARAMETER_SIZE,
236  PI_DEVICE_INFO_MEM_BASE_ADDR_ALIGN = CL_DEVICE_MEM_BASE_ADDR_ALIGN,
237  PI_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE = CL_DEVICE_GLOBAL_MEM_CACHE_TYPE,
239  CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE,
240  PI_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE = CL_DEVICE_GLOBAL_MEM_CACHE_SIZE,
241  PI_DEVICE_INFO_GLOBAL_MEM_SIZE = CL_DEVICE_GLOBAL_MEM_SIZE,
242  PI_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE = CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE,
243  PI_DEVICE_INFO_MAX_CONSTANT_ARGS = CL_DEVICE_MAX_CONSTANT_ARGS,
244  PI_DEVICE_INFO_LOCAL_MEM_TYPE = CL_DEVICE_LOCAL_MEM_TYPE,
245  PI_DEVICE_INFO_LOCAL_MEM_SIZE = CL_DEVICE_LOCAL_MEM_SIZE,
246  PI_DEVICE_INFO_ERROR_CORRECTION_SUPPORT = CL_DEVICE_ERROR_CORRECTION_SUPPORT,
247  PI_DEVICE_INFO_HOST_UNIFIED_MEMORY = CL_DEVICE_HOST_UNIFIED_MEMORY,
249  CL_DEVICE_PROFILING_TIMER_RESOLUTION,
250  PI_DEVICE_INFO_ENDIAN_LITTLE = CL_DEVICE_ENDIAN_LITTLE,
251  PI_DEVICE_INFO_AVAILABLE = CL_DEVICE_AVAILABLE,
252  PI_DEVICE_INFO_COMPILER_AVAILABLE = CL_DEVICE_COMPILER_AVAILABLE,
253  PI_DEVICE_INFO_LINKER_AVAILABLE = CL_DEVICE_LINKER_AVAILABLE,
254  PI_DEVICE_INFO_EXECUTION_CAPABILITIES = CL_DEVICE_EXECUTION_CAPABILITIES,
256  CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES,
257  PI_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES = CL_DEVICE_QUEUE_ON_HOST_PROPERTIES,
258  PI_DEVICE_INFO_BUILT_IN_KERNELS = CL_DEVICE_BUILT_IN_KERNELS,
259  PI_DEVICE_INFO_PLATFORM = CL_DEVICE_PLATFORM,
260  PI_DEVICE_INFO_REFERENCE_COUNT = CL_DEVICE_REFERENCE_COUNT,
261  PI_DEVICE_INFO_IL_VERSION = CL_DEVICE_IL_VERSION_KHR,
262  PI_DEVICE_INFO_NAME = CL_DEVICE_NAME,
263  PI_DEVICE_INFO_VENDOR = CL_DEVICE_VENDOR,
264  PI_DEVICE_INFO_DRIVER_VERSION = CL_DRIVER_VERSION,
265  PI_DEVICE_INFO_PROFILE = CL_DEVICE_PROFILE,
266  PI_DEVICE_INFO_VERSION = CL_DEVICE_VERSION,
267  PI_DEVICE_INFO_OPENCL_C_VERSION = CL_DEVICE_OPENCL_C_VERSION,
268  PI_DEVICE_INFO_EXTENSIONS = CL_DEVICE_EXTENSIONS,
269  PI_DEVICE_INFO_PRINTF_BUFFER_SIZE = CL_DEVICE_PRINTF_BUFFER_SIZE,
271  CL_DEVICE_PREFERRED_INTEROP_USER_SYNC,
272  PI_DEVICE_INFO_PARENT_DEVICE = CL_DEVICE_PARENT_DEVICE,
273  PI_DEVICE_INFO_PARTITION_PROPERTIES = CL_DEVICE_PARTITION_PROPERTIES,
275  CL_DEVICE_PARTITION_MAX_SUB_DEVICES,
277  CL_DEVICE_PARTITION_AFFINITY_DOMAIN,
278  PI_DEVICE_INFO_PARTITION_TYPE = CL_DEVICE_PARTITION_TYPE,
279  PI_DEVICE_INFO_MAX_NUM_SUB_GROUPS = CL_DEVICE_MAX_NUM_SUB_GROUPS,
281  CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS,
282  PI_DEVICE_INFO_SUB_GROUP_SIZES_INTEL = CL_DEVICE_SUB_GROUP_SIZES_INTEL,
283  PI_DEVICE_INFO_USM_HOST_SUPPORT = CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL,
284  PI_DEVICE_INFO_USM_DEVICE_SUPPORT = CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL,
286  CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL,
288  CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL,
290  CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL,
291  // Intel UUID extension.
292  PI_DEVICE_INFO_UUID = CL_DEVICE_UUID_KHR,
293  // These are Intel-specific extensions.
308 
310 
311 typedef enum {
312  PI_PROGRAM_INFO_REFERENCE_COUNT = CL_PROGRAM_REFERENCE_COUNT,
313  PI_PROGRAM_INFO_CONTEXT = CL_PROGRAM_CONTEXT,
314  PI_PROGRAM_INFO_NUM_DEVICES = CL_PROGRAM_NUM_DEVICES,
315  PI_PROGRAM_INFO_DEVICES = CL_PROGRAM_DEVICES,
316  PI_PROGRAM_INFO_SOURCE = CL_PROGRAM_SOURCE,
317  PI_PROGRAM_INFO_BINARY_SIZES = CL_PROGRAM_BINARY_SIZES,
318  PI_PROGRAM_INFO_BINARIES = CL_PROGRAM_BINARIES,
319  PI_PROGRAM_INFO_NUM_KERNELS = CL_PROGRAM_NUM_KERNELS,
320  PI_PROGRAM_INFO_KERNEL_NAMES = CL_PROGRAM_KERNEL_NAMES
322 
323 typedef enum {
324  PI_CONTEXT_INFO_DEVICES = CL_CONTEXT_DEVICES,
325  PI_CONTEXT_INFO_NUM_DEVICES = CL_CONTEXT_NUM_DEVICES,
326  PI_CONTEXT_INFO_PROPERTIES = CL_CONTEXT_PROPERTIES,
327  PI_CONTEXT_INFO_REFERENCE_COUNT = CL_CONTEXT_REFERENCE_COUNT,
328  // Atomics capabilities extensions
331 
332 typedef enum {
333  PI_QUEUE_INFO_CONTEXT = CL_QUEUE_CONTEXT,
334  PI_QUEUE_INFO_DEVICE = CL_QUEUE_DEVICE,
335  PI_QUEUE_INFO_DEVICE_DEFAULT = CL_QUEUE_DEVICE_DEFAULT,
336  PI_QUEUE_INFO_PROPERTIES = CL_QUEUE_PROPERTIES,
337  PI_QUEUE_INFO_REFERENCE_COUNT = CL_QUEUE_REFERENCE_COUNT,
338  PI_QUEUE_INFO_SIZE = CL_QUEUE_SIZE
340 
341 typedef enum {
342  PI_KERNEL_INFO_FUNCTION_NAME = CL_KERNEL_FUNCTION_NAME,
343  PI_KERNEL_INFO_NUM_ARGS = CL_KERNEL_NUM_ARGS,
344  PI_KERNEL_INFO_REFERENCE_COUNT = CL_KERNEL_REFERENCE_COUNT,
345  PI_KERNEL_INFO_CONTEXT = CL_KERNEL_CONTEXT,
346  PI_KERNEL_INFO_PROGRAM = CL_KERNEL_PROGRAM,
347  PI_KERNEL_INFO_ATTRIBUTES = CL_KERNEL_ATTRIBUTES
349 
350 typedef enum {
351  PI_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE = CL_KERNEL_GLOBAL_WORK_SIZE,
352  PI_KERNEL_GROUP_INFO_WORK_GROUP_SIZE = CL_KERNEL_WORK_GROUP_SIZE,
354  CL_KERNEL_COMPILE_WORK_GROUP_SIZE,
355  PI_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE = CL_KERNEL_LOCAL_MEM_SIZE,
357  CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,
358  PI_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE = CL_KERNEL_PRIVATE_MEM_SIZE,
359  // The number of registers used by the compiled kernel (device specific)
362 
363 typedef enum {
364  PI_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT = CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT,
365  PI_FP_ROUND_TO_NEAREST = CL_FP_ROUND_TO_NEAREST,
366  PI_FP_ROUND_TO_ZERO = CL_FP_ROUND_TO_ZERO,
367  PI_FP_ROUND_TO_INF = CL_FP_ROUND_TO_INF,
368  PI_FP_INF_NAN = CL_FP_INF_NAN,
369  PI_FP_DENORM = CL_FP_DENORM,
370  PI_FP_FMA = CL_FP_FMA
372 
373 typedef enum {
374  PI_IMAGE_INFO_FORMAT = CL_IMAGE_FORMAT,
375  PI_IMAGE_INFO_ELEMENT_SIZE = CL_IMAGE_ELEMENT_SIZE,
376  PI_IMAGE_INFO_ROW_PITCH = CL_IMAGE_ROW_PITCH,
377  PI_IMAGE_INFO_SLICE_PITCH = CL_IMAGE_SLICE_PITCH,
378  PI_IMAGE_INFO_WIDTH = CL_IMAGE_WIDTH,
379  PI_IMAGE_INFO_HEIGHT = CL_IMAGE_HEIGHT,
380  PI_IMAGE_INFO_DEPTH = CL_IMAGE_DEPTH
382 
383 typedef enum {
384  PI_KERNEL_MAX_SUB_GROUP_SIZE = CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE,
385  PI_KERNEL_MAX_NUM_SUB_GROUPS = CL_KERNEL_MAX_NUM_SUB_GROUPS,
386  PI_KERNEL_COMPILE_NUM_SUB_GROUPS = CL_KERNEL_COMPILE_NUM_SUB_GROUPS,
388  CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
390 
391 typedef enum {
392  PI_EVENT_INFO_COMMAND_QUEUE = CL_EVENT_COMMAND_QUEUE,
393  PI_EVENT_INFO_CONTEXT = CL_EVENT_CONTEXT,
394  PI_EVENT_INFO_COMMAND_TYPE = CL_EVENT_COMMAND_TYPE,
395  PI_EVENT_INFO_COMMAND_EXECUTION_STATUS = CL_EVENT_COMMAND_EXECUTION_STATUS,
396  PI_EVENT_INFO_REFERENCE_COUNT = CL_EVENT_REFERENCE_COUNT
398 
399 typedef enum {
400  PI_COMMAND_TYPE_NDRANGE_KERNEL = CL_COMMAND_NDRANGE_KERNEL,
401  PI_COMMAND_TYPE_MEM_BUFFER_READ = CL_COMMAND_READ_BUFFER,
402  PI_COMMAND_TYPE_MEM_BUFFER_WRITE = CL_COMMAND_WRITE_BUFFER,
403  PI_COMMAND_TYPE_MEM_BUFFER_COPY = CL_COMMAND_COPY_BUFFER,
404  PI_COMMAND_TYPE_MEM_BUFFER_MAP = CL_COMMAND_MAP_BUFFER,
405  PI_COMMAND_TYPE_MEM_BUFFER_UNMAP = CL_COMMAND_UNMAP_MEM_OBJECT,
406  PI_COMMAND_TYPE_MEM_BUFFER_READ_RECT = CL_COMMAND_READ_BUFFER_RECT,
407  PI_COMMAND_TYPE_MEM_BUFFER_WRITE_RECT = CL_COMMAND_WRITE_BUFFER_RECT,
408  PI_COMMAND_TYPE_MEM_BUFFER_COPY_RECT = CL_COMMAND_COPY_BUFFER_RECT,
409  PI_COMMAND_TYPE_USER = CL_COMMAND_USER,
410  PI_COMMAND_TYPE_MEM_BUFFER_FILL = CL_COMMAND_FILL_BUFFER,
411  PI_COMMAND_TYPE_IMAGE_READ = CL_COMMAND_READ_IMAGE,
412  PI_COMMAND_TYPE_IMAGE_WRITE = CL_COMMAND_WRITE_IMAGE,
413  PI_COMMAND_TYPE_IMAGE_COPY = CL_COMMAND_COPY_IMAGE,
414  PI_COMMAND_TYPE_NATIVE_KERNEL = CL_COMMAND_NATIVE_KERNEL,
415  PI_COMMAND_TYPE_COPY_BUFFER_TO_IMAGE = CL_COMMAND_COPY_BUFFER_TO_IMAGE,
416  PI_COMMAND_TYPE_COPY_IMAGE_TO_BUFFER = CL_COMMAND_COPY_IMAGE_TO_BUFFER,
417  PI_COMMAND_TYPE_MAP_IMAGE = CL_COMMAND_MAP_IMAGE,
418  PI_COMMAND_TYPE_MARKER = CL_COMMAND_MARKER,
419  PI_COMMAND_TYPE_ACQUIRE_GL_OBJECTS = CL_COMMAND_ACQUIRE_GL_OBJECTS,
420  PI_COMMAND_TYPE_RELEASE_GL_OBJECTS = CL_COMMAND_RELEASE_GL_OBJECTS,
421  PI_COMMAND_TYPE_BARRIER = CL_COMMAND_BARRIER,
422  PI_COMMAND_TYPE_MIGRATE_MEM_OBJECTS = CL_COMMAND_MIGRATE_MEM_OBJECTS,
423  PI_COMMAND_TYPE_FILL_IMAGE = CL_COMMAND_FILL_IMAGE,
424  PI_COMMAND_TYPE_SVM_FREE = CL_COMMAND_SVM_FREE,
425  PI_COMMAND_TYPE_SVM_MEMCPY = CL_COMMAND_SVM_MEMCPY,
426  PI_COMMAND_TYPE_SVM_MEMFILL = CL_COMMAND_SVM_MEMFILL,
427  PI_COMMAND_TYPE_SVM_MAP = CL_COMMAND_SVM_MAP,
428  PI_COMMAND_TYPE_SVM_UNMAP = CL_COMMAND_SVM_UNMAP
430 
431 typedef enum {
432  PI_MEM_TYPE_BUFFER = CL_MEM_OBJECT_BUFFER,
433  PI_MEM_TYPE_IMAGE2D = CL_MEM_OBJECT_IMAGE2D,
434  PI_MEM_TYPE_IMAGE3D = CL_MEM_OBJECT_IMAGE3D,
435  PI_MEM_TYPE_IMAGE2D_ARRAY = CL_MEM_OBJECT_IMAGE2D_ARRAY,
436  PI_MEM_TYPE_IMAGE1D = CL_MEM_OBJECT_IMAGE1D,
437  PI_MEM_TYPE_IMAGE1D_ARRAY = CL_MEM_OBJECT_IMAGE1D_ARRAY,
438  PI_MEM_TYPE_IMAGE1D_BUFFER = CL_MEM_OBJECT_IMAGE1D_BUFFER
439 } _pi_mem_type;
440 
441 typedef enum {
442  // Device-specific value opaque in PI API.
445 
446 typedef enum {
463 
464 typedef enum {
481 
482 typedef enum {
483  PI_BUFFER_CREATE_TYPE_REGION = CL_BUFFER_CREATE_TYPE_REGION
485 
486 const pi_bool PI_TRUE = CL_TRUE;
487 const pi_bool PI_FALSE = CL_FALSE;
488 
489 typedef enum {
490  PI_SAMPLER_INFO_REFERENCE_COUNT = CL_SAMPLER_REFERENCE_COUNT,
491  PI_SAMPLER_INFO_CONTEXT = CL_SAMPLER_CONTEXT,
492  PI_SAMPLER_INFO_NORMALIZED_COORDS = CL_SAMPLER_NORMALIZED_COORDS,
493  PI_SAMPLER_INFO_ADDRESSING_MODE = CL_SAMPLER_ADDRESSING_MODE,
494  PI_SAMPLER_INFO_FILTER_MODE = CL_SAMPLER_FILTER_MODE,
495  PI_SAMPLER_INFO_MIP_FILTER_MODE = CL_SAMPLER_MIP_FILTER_MODE,
496  PI_SAMPLER_INFO_LOD_MIN = CL_SAMPLER_LOD_MIN,
497  PI_SAMPLER_INFO_LOD_MAX = CL_SAMPLER_LOD_MAX
499 
500 typedef enum {
501  PI_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT = CL_ADDRESS_MIRRORED_REPEAT,
503  PI_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE = CL_ADDRESS_CLAMP_TO_EDGE,
507 
508 typedef enum {
509  PI_SAMPLER_FILTER_MODE_NEAREST = CL_FILTER_NEAREST,
510  PI_SAMPLER_FILTER_MODE_LINEAR = CL_FILTER_LINEAR,
512 
513 using pi_context_properties = intptr_t;
514 
517  CL_EXEC_KERNEL;
520 
523  CL_SAMPLER_NORMALIZED_COORDS;
525  CL_SAMPLER_ADDRESSING_MODE;
527  CL_SAMPLER_FILTER_MODE;
528 
535 
536 typedef enum {
537  PI_PROFILING_INFO_COMMAND_QUEUED = CL_PROFILING_COMMAND_QUEUED,
538  PI_PROFILING_INFO_COMMAND_SUBMIT = CL_PROFILING_COMMAND_SUBMIT,
539  PI_PROFILING_INFO_COMMAND_START = CL_PROFILING_COMMAND_START,
540  PI_PROFILING_INFO_COMMAND_END = CL_PROFILING_COMMAND_END
542 
543 // NOTE: this is made 64-bit to match the size of cl_mem_flags to
544 // make the translation to OpenCL transparent.
545 // TODO: populate
546 //
548 // Access
549 constexpr pi_mem_flags PI_MEM_FLAGS_ACCESS_RW = CL_MEM_READ_WRITE;
550 constexpr pi_mem_flags PI_MEM_ACCESS_READ_ONLY = CL_MEM_READ_ONLY;
551 // Host pointer
552 constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_USE = CL_MEM_USE_HOST_PTR;
553 constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_COPY = CL_MEM_COPY_HOST_PTR;
554 constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_ALLOC = CL_MEM_ALLOC_HOST_PTR;
555 
556 // flags passed to Map operations
558 constexpr pi_map_flags PI_MAP_READ = CL_MAP_READ;
559 constexpr pi_map_flags PI_MAP_WRITE = CL_MAP_WRITE;
561  CL_MAP_WRITE_INVALIDATE_REGION;
562 
563 // NOTE: this is made 64-bit to match the size of cl_mem_properties_intel to
564 // make the translation to OpenCL transparent.
566 constexpr pi_mem_properties PI_MEM_PROPERTIES_CHANNEL = CL_MEM_CHANNEL_INTEL;
567 
568 // NOTE: queue properties are implemented this way to better support bit
569 // manipulations
572  CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE;
574  CL_QUEUE_PROFILING_ENABLE;
575 constexpr pi_queue_properties PI_QUEUE_ON_DEVICE = CL_QUEUE_ON_DEVICE;
577  CL_QUEUE_ON_DEVICE_DEFAULT;
578 
608 
609 // For compatibility with OpenCL define this not as enum.
612  CL_DEVICE_PARTITION_EQUALLY;
613 static constexpr pi_device_partition_property
615  CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN;
616 
617 // For compatibility with OpenCL define this not as enum.
620  CL_DEVICE_AFFINITY_DOMAIN_NUMA;
621 static constexpr pi_device_affinity_domain
623  CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE;
624 
625 // Entry type, matches OpenMP for compatibility
627  void *addr;
628  char *name;
629  size_t size;
630  int32_t flags;
631  int32_t reserved;
632 };
633 
635 
636 // A type of a binary image property.
637 typedef enum {
639  PI_PROPERTY_TYPE_UINT32, // 32-bit integer
641  PI_PROPERTY_TYPE_STRING // null-terminated string
643 
644 // Device binary image property.
645 // If the type size of the property value is fixed and is no greater than
646 // 64 bits, then ValAddr is 0 and the value is stored in the ValSize field.
647 // Example - PI_PROPERTY_TYPE_UINT32, which is 32-bit
649  char *Name; // null-terminated property name
650  void *ValAddr; // address of property value
651  uint32_t Type; // _pi_property_type
652  uint64_t ValSize; // size of property value in bytes
653 };
654 
656 
657 // Named array of properties.
659  char *Name; // the name
662 };
663 
665 
667 using pi_device_binary_type = uint8_t;
668 // format is not determined
670 // specific to a device
672 // portable binary types go next
673 // SPIR-V
675 // LLVM bitcode
677 
678 // Device binary descriptor version supported by this library.
680 
681 // The kind of offload model the binary employs; must be 4 for SYCL
682 static const uint8_t PI_DEVICE_BINARY_OFFLOAD_KIND_SYCL = 4;
683 
691 #define __SYCL_PI_DEVICE_BINARY_TARGET_UNKNOWN "<unknown>"
692 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV32 "spir"
694 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64 "spir64"
696 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_X86_64 "spir64_x86_64"
699 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_GEN "spir64_gen"
700 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_FPGA "spir64_fpga"
701 #define __SYCL_PI_DEVICE_BINARY_TARGET_NVPTX64 "nvptx64"
703 #define __SYCL_PI_DEVICE_BINARY_TARGET_AMDGCN "amdgcn"
704 
708 #define PI_DEVICE_INFO_EXTENSION_DEVICELIB_ASSERT \
709  "pi_ext_intel_devicelib_assert"
710 
715 #define __SYCL_PI_PROPERTY_SET_SPEC_CONST_MAP "SYCL/specialization constants"
716 #define __SYCL_PI_PROPERTY_SET_SPEC_CONST_DEFAULT_VALUES_MAP \
719  "SYCL/specialization constants default values"
720 #define __SYCL_PI_PROPERTY_SET_DEVICELIB_REQ_MASK "SYCL/devicelib req mask"
722 #define __SYCL_PI_PROPERTY_SET_KERNEL_PARAM_OPT_INFO "SYCL/kernel param opt"
724 #define __SYCL_PI_PROPERTY_SET_PROGRAM_METADATA "SYCL/program metadata"
726 #define __SYCL_PI_PROPERTY_SET_SYCL_MISC_PROP "SYCL/misc properties"
728 #define __SYCL_PI_PROPERTY_SET_SYCL_ASSERT_USED "SYCL/assert used"
730 #define __SYCL_PI_PROPERTY_SET_SYCL_EXPORTED_SYMBOLS "SYCL/exported symbols"
732 
735 #define __SYCL_PI_PROGRAM_METADATA_TAG_REQD_WORK_GROUP_SIZE \
736  "@reqd_work_group_size"
737 
749  uint8_t Kind;
751  uint8_t Format;
763  const char *DeviceTargetSpec;
766  const char *CompileOptions;
769  const char *LinkOptions;
771  const char *ManifestStart;
773  const char *ManifestEnd;
775  const unsigned char *BinaryStart;
777  const unsigned char *BinaryEnd;
781  // Array of preperty sets; e.g. specialization constants symbol-int ID map is
782  // propagated to runtime with this mechanism.
785  // TODO Other fields like entries, link options can be propagated using
786  // the property set infrastructure. This will improve binary compatibility and
787  // add flexibility.
788 };
790 
791 // pi_buffer_region structure repeats cl_buffer_region, used for sub buffers.
793  size_t origin;
794  size_t size;
795 };
797 
798 // pi_buff_rect_offset structure is 3D offset argument passed to buffer rect
799 // operations (piEnqueueMemBufferCopyRect, etc).
801  size_t x_bytes;
802  size_t y_scalar;
803  size_t z_scalar;
804 };
806 
807 // pi_buff_rect_region structure represents size of 3D region passed to buffer
808 // rect operations (piEnqueueMemBufferCopyRect, etc).
810  size_t width_bytes;
812  size_t depth_scalar;
813 };
815 
816 // pi_image_offset structure is 3D offset argument passed to image operations
817 // (piEnqueueMemImageRead, etc).
819  size_t x;
820  size_t y;
821  size_t z;
822 };
824 
825 // pi_image_region structure represents size of 3D region passed to image
826 // operations (piEnqueueMemImageRead, etc).
828  size_t width;
829  size_t height;
830  size_t depth;
831 };
833 
834 // Offload binaries descriptor version supported by this library.
836 
852 };
854 
855 // Opaque types that make reading build log errors easier.
856 struct _pi_platform;
857 struct _pi_device;
858 struct _pi_context;
859 struct _pi_queue;
860 struct _pi_mem;
861 struct _pi_program;
862 struct _pi_kernel;
863 struct _pi_event;
864 struct _pi_sampler;
865 
869 using pi_queue = _pi_queue *;
870 using pi_mem = _pi_mem *;
873 using pi_event = _pi_event *;
875 
876 typedef struct {
880 
881 typedef struct {
883  size_t image_width;
884  size_t image_height;
885  size_t image_depth;
893 
896 //
897 // Following section contains SYCL RT Plugin Interface (PI) functions.
898 // They are 3 distinct categories:
899 //
900 // 1) Ones having direct analogy in OpenCL and needed for the core SYCL
901 // functionality are started with just "pi" prefix in their names.
902 // 2) Those having direct analogy in OpenCL but only needed for SYCL
903 // interoperability with OpenCL are started with "picl" prefix.
904 // 3) Functions having no direct analogy in OpenCL, started with "piext".
905 //
906 // TODO: describe interfaces in Doxygen format
907 //
908 
909 struct _pi_plugin;
911 
912 // PI Plugin Initialise.
913 // Plugin will check the PI version of Plugin Interface,
914 // populate the PI Version it supports, update targets field and populate
915 // PiFunctionTable with Supported APIs. The pointers are in a predetermined
916 // order in pi.def file.
917 __SYCL_EXPORT pi_result piPluginInit(pi_plugin *plugin_info);
918 
919 //
920 // Platform
921 //
922 __SYCL_EXPORT pi_result piPlatformsGet(pi_uint32 num_entries,
923  pi_platform *platforms,
924  pi_uint32 *num_platforms);
925 
927  pi_platform_info param_name,
928  size_t param_value_size,
929  void *param_value,
930  size_t *param_value_size_ret);
931 
937  pi_platform platform, pi_native_handle *nativeHandle);
938 
945  pi_native_handle nativeHandle, pi_platform *platform);
946 
949  pi_uint32 num_entries, pi_device *devices,
950  pi_uint32 *num_devices);
951 
956  pi_device_info param_name,
957  size_t param_value_size,
958  void *param_value,
959  size_t *param_value_size_ret);
960 
962 
964 
965 __SYCL_EXPORT pi_result piDevicePartition(
966  pi_device device, const pi_device_partition_property *properties,
967  pi_uint32 num_devices, pi_device *out_devices, pi_uint32 *out_num_devices);
968 
973 __SYCL_EXPORT pi_result
975 
984 
989  pi_device_binary *binaries,
990  pi_uint32 num_binaries,
991  pi_uint32 *selected_binary_ind);
992 
1005  pi_device device, pi_program program, const char *function_name,
1006  pi_uint64 *function_pointer_ret);
1007 
1008 //
1009 // Context
1010 //
1011 __SYCL_EXPORT pi_result piContextCreate(
1012  const pi_context_properties *properties, pi_uint32 num_devices,
1013  const pi_device *devices,
1014  void (*pfn_notify)(const char *errinfo, const void *private_info, size_t cb,
1015  void *user_data),
1016  void *user_data, pi_context *ret_context);
1017 
1019  pi_context_info param_name,
1020  size_t param_value_size,
1021  void *param_value,
1022  size_t *param_value_size_ret);
1023 
1025 
1027 
1028 typedef void (*pi_context_extended_deleter)(void *user_data);
1029 
1031  pi_context context, pi_context_extended_deleter func, void *user_data);
1032 
1037 __SYCL_EXPORT pi_result
1039 
1063  pi_native_handle nativeHandle, pi_uint32 numDevices,
1064  const pi_device *devices, bool pluginOwnsNativeHandle, pi_context *context);
1065 
1066 //
1067 // Queue
1068 //
1070  pi_queue_properties properties,
1071  pi_queue *queue);
1072 
1073 __SYCL_EXPORT pi_result piQueueGetInfo(pi_queue command_queue,
1074  pi_queue_info param_name,
1075  size_t param_value_size,
1076  void *param_value,
1077  size_t *param_value_size_ret);
1078 
1079 __SYCL_EXPORT pi_result piQueueRetain(pi_queue command_queue);
1080 
1081 __SYCL_EXPORT pi_result piQueueRelease(pi_queue command_queue);
1082 
1083 __SYCL_EXPORT pi_result piQueueFinish(pi_queue command_queue);
1084 
1089 __SYCL_EXPORT pi_result
1091 
1102  bool pluginOwnsNativeHandle);
1103 
1104 //
1105 // Memory
1106 //
1107 __SYCL_EXPORT pi_result piMemBufferCreate(
1108  pi_context context, pi_mem_flags flags, size_t size, void *host_ptr,
1109  pi_mem *ret_mem, const pi_mem_properties *properties = nullptr);
1110 
1112  const pi_image_format *image_format,
1113  const pi_image_desc *image_desc,
1114  void *host_ptr, pi_mem *ret_mem);
1115 
1116 __SYCL_EXPORT pi_result piMemGetInfo(
1117  pi_mem mem,
1118  cl_mem_info param_name, // TODO: untie from OpenCL
1119  size_t param_value_size, void *param_value, size_t *param_value_size_ret);
1120 
1121 __SYCL_EXPORT pi_result piMemImageGetInfo(pi_mem image,
1122  pi_image_info param_name,
1123  size_t param_value_size,
1124  void *param_value,
1125  size_t *param_value_size_ret);
1126 
1127 __SYCL_EXPORT pi_result piMemRetain(pi_mem mem);
1128 
1129 __SYCL_EXPORT pi_result piMemRelease(pi_mem mem);
1130 
1131 __SYCL_EXPORT pi_result piMemBufferPartition(
1132  pi_mem buffer, pi_mem_flags flags, pi_buffer_create_type buffer_create_type,
1133  void *buffer_create_info, pi_mem *ret_mem);
1134 
1139 __SYCL_EXPORT pi_result piextMemGetNativeHandle(pi_mem mem,
1140  pi_native_handle *nativeHandle);
1141 
1147 __SYCL_EXPORT pi_result
1149 
1150 //
1151 // Program
1152 //
1153 
1154 __SYCL_EXPORT pi_result piProgramCreate(pi_context context, const void *il,
1155  size_t length, pi_program *res_program);
1156 
1158  pi_uint32 count,
1159  const char **strings,
1160  const size_t *lengths,
1161  pi_program *ret_program);
1162 
1179 __SYCL_EXPORT pi_result piProgramCreateWithBinary(
1180  pi_context context, pi_uint32 num_devices, const pi_device *device_list,
1181  const size_t *lengths, const unsigned char **binaries,
1182  size_t num_metadata_entries, const pi_device_binary_property *metadata,
1183  pi_int32 *binary_status, pi_program *ret_program);
1184 
1185 __SYCL_EXPORT pi_result piProgramGetInfo(pi_program program,
1186  pi_program_info param_name,
1187  size_t param_value_size,
1188  void *param_value,
1189  size_t *param_value_size_ret);
1190 
1191 __SYCL_EXPORT pi_result
1193  const pi_device *device_list, const char *options,
1194  pi_uint32 num_input_programs, const pi_program *input_programs,
1195  void (*pfn_notify)(pi_program program, void *user_data),
1196  void *user_data, pi_program *ret_program);
1197 
1198 __SYCL_EXPORT pi_result piProgramCompile(
1199  pi_program program, pi_uint32 num_devices, const pi_device *device_list,
1200  const char *options, pi_uint32 num_input_headers,
1201  const pi_program *input_headers, const char **header_include_names,
1202  void (*pfn_notify)(pi_program program, void *user_data), void *user_data);
1203 
1204 __SYCL_EXPORT pi_result piProgramBuild(
1205  pi_program program, pi_uint32 num_devices, const pi_device *device_list,
1206  const char *options,
1207  void (*pfn_notify)(pi_program program, void *user_data), void *user_data);
1208 
1209 __SYCL_EXPORT pi_result piProgramGetBuildInfo(
1210  pi_program program, pi_device device,
1211  cl_program_build_info param_name, // TODO: untie from OpenCL
1212  size_t param_value_size, void *param_value, size_t *param_value_size_ret);
1213 
1214 __SYCL_EXPORT pi_result piProgramRetain(pi_program program);
1215 
1216 __SYCL_EXPORT pi_result piProgramRelease(pi_program program);
1217 
1224 __SYCL_EXPORT pi_result
1226  size_t spec_size, const void *spec_value);
1227 
1232 __SYCL_EXPORT pi_result
1234 
1244  pi_native_handle nativeHandle, pi_context context,
1245  bool pluginOwnsNativeHandle, pi_program *program);
1246 
1247 //
1248 // Kernel
1249 //
1250 
1251 typedef enum {
1255  PI_USM_PTRS = CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL
1257 
1259 
1260 __SYCL_EXPORT pi_result piKernelCreate(pi_program program,
1261  const char *kernel_name,
1262  pi_kernel *ret_kernel);
1263 
1264 __SYCL_EXPORT pi_result piKernelSetArg(pi_kernel kernel, pi_uint32 arg_index,
1265  size_t arg_size, const void *arg_value);
1266 
1268  pi_kernel_info param_name,
1269  size_t param_value_size,
1270  void *param_value,
1271  size_t *param_value_size_ret);
1272 
1274  pi_kernel_group_info param_name,
1275  size_t param_value_size,
1276  void *param_value,
1277  size_t *param_value_size_ret);
1278 
1297 __SYCL_EXPORT pi_result piKernelGetSubGroupInfo(
1299  size_t input_value_size, const void *input_value, size_t param_value_size,
1300  void *param_value, size_t *param_value_size_ret);
1301 
1302 __SYCL_EXPORT pi_result piKernelRetain(pi_kernel kernel);
1303 
1304 __SYCL_EXPORT pi_result piKernelRelease(pi_kernel kernel);
1305 
1314  pi_uint32 arg_index,
1315  size_t arg_size,
1316  const void *arg_value);
1317 
1330  pi_kernel_exec_info value_name,
1331  size_t param_value_size,
1332  const void *param_value);
1333 
1344  pi_native_handle nativeHandle, pi_context context, pi_program program,
1345  bool pluginOwnsNativeHandle, pi_kernel *kernel);
1346 
1351 __SYCL_EXPORT pi_result
1353 
1354 //
1355 // Events
1356 //
1357 __SYCL_EXPORT pi_result piEventCreate(pi_context context, pi_event *ret_event);
1358 
1359 __SYCL_EXPORT pi_result piEventGetInfo(pi_event event, pi_event_info param_name,
1360  size_t param_value_size,
1361  void *param_value,
1362  size_t *param_value_size_ret);
1363 
1365  pi_profiling_info param_name,
1366  size_t param_value_size,
1367  void *param_value,
1368  size_t *param_value_size_ret);
1369 
1370 __SYCL_EXPORT pi_result piEventsWait(pi_uint32 num_events,
1371  const pi_event *event_list);
1372 
1373 __SYCL_EXPORT pi_result piEventSetCallback(
1374  pi_event event, pi_int32 command_exec_callback_type,
1376  void *user_data),
1377  void *user_data);
1378 
1380  pi_int32 execution_status);
1381 
1382 __SYCL_EXPORT pi_result piEventRetain(pi_event event);
1383 
1384 __SYCL_EXPORT pi_result piEventRelease(pi_event event);
1385 
1390 __SYCL_EXPORT pi_result
1392 
1402  pi_native_handle nativeHandle, pi_context context, bool ownNativeHandle,
1403  pi_event *event);
1404 
1405 //
1406 // Sampler
1407 //
1408 __SYCL_EXPORT pi_result piSamplerCreate(
1409  pi_context context, const pi_sampler_properties *sampler_properties,
1410  pi_sampler *result_sampler);
1411 
1412 __SYCL_EXPORT pi_result piSamplerGetInfo(pi_sampler sampler,
1413  pi_sampler_info param_name,
1414  size_t param_value_size,
1415  void *param_value,
1416  size_t *param_value_size_ret);
1417 
1418 __SYCL_EXPORT pi_result piSamplerRetain(pi_sampler sampler);
1419 
1420 __SYCL_EXPORT pi_result piSamplerRelease(pi_sampler sampler);
1421 
1422 //
1423 // Queue Commands
1424 //
1425 __SYCL_EXPORT pi_result piEnqueueKernelLaunch(
1427  const size_t *global_work_offset, const size_t *global_work_size,
1428  const size_t *local_work_size, pi_uint32 num_events_in_wait_list,
1429  const pi_event *event_wait_list, pi_event *event);
1430 
1431 __SYCL_EXPORT pi_result piEnqueueNativeKernel(
1432  pi_queue queue, void (*user_func)(void *), void *args, size_t cb_args,
1433  pi_uint32 num_mem_objects, const pi_mem *mem_list,
1434  const void **args_mem_loc, pi_uint32 num_events_in_wait_list,
1435  const pi_event *event_wait_list, pi_event *event);
1436 
1437 __SYCL_EXPORT pi_result piEnqueueEventsWait(pi_queue command_queue,
1438  pi_uint32 num_events_in_wait_list,
1439  const pi_event *event_wait_list,
1440  pi_event *event);
1441 
1443  pi_queue command_queue, pi_uint32 num_events_in_wait_list,
1444  const pi_event *event_wait_list, pi_event *event);
1445 
1446 __SYCL_EXPORT pi_result piEnqueueMemBufferRead(
1447  pi_queue queue, pi_mem buffer, pi_bool blocking_read, size_t offset,
1448  size_t size, void *ptr, pi_uint32 num_events_in_wait_list,
1449  const pi_event *event_wait_list, pi_event *event);
1450 
1452  pi_queue command_queue, pi_mem buffer, pi_bool blocking_read,
1453  pi_buff_rect_offset buffer_offset, pi_buff_rect_offset host_offset,
1454  pi_buff_rect_region region, size_t buffer_row_pitch,
1455  size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch,
1456  void *ptr, pi_uint32 num_events_in_wait_list,
1457  const pi_event *event_wait_list, pi_event *event);
1458 
1459 __SYCL_EXPORT pi_result
1460 piEnqueueMemBufferWrite(pi_queue command_queue, pi_mem buffer,
1461  pi_bool blocking_write, size_t offset, size_t size,
1462  const void *ptr, pi_uint32 num_events_in_wait_list,
1463  const pi_event *event_wait_list, pi_event *event);
1464 
1466  pi_queue command_queue, pi_mem buffer, pi_bool blocking_write,
1467  pi_buff_rect_offset buffer_offset, pi_buff_rect_offset host_offset,
1468  pi_buff_rect_region region, size_t buffer_row_pitch,
1469  size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch,
1470  const void *ptr, pi_uint32 num_events_in_wait_list,
1471  const pi_event *event_wait_list, pi_event *event);
1472 
1473 __SYCL_EXPORT pi_result
1474 piEnqueueMemBufferCopy(pi_queue command_queue, pi_mem src_buffer,
1475  pi_mem dst_buffer, size_t src_offset, size_t dst_offset,
1476  size_t size, pi_uint32 num_events_in_wait_list,
1477  const pi_event *event_wait_list, pi_event *event);
1478 
1480  pi_queue command_queue, pi_mem src_buffer, pi_mem dst_buffer,
1481  pi_buff_rect_offset src_origin, pi_buff_rect_offset dst_origin,
1482  pi_buff_rect_region region, size_t src_row_pitch, size_t src_slice_pitch,
1483  size_t dst_row_pitch, size_t dst_slice_pitch,
1484  pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
1485  pi_event *event);
1486 
1487 __SYCL_EXPORT pi_result
1488 piEnqueueMemBufferFill(pi_queue command_queue, pi_mem buffer,
1489  const void *pattern, size_t pattern_size, size_t offset,
1490  size_t size, pi_uint32 num_events_in_wait_list,
1491  const pi_event *event_wait_list, pi_event *event);
1492 
1493 __SYCL_EXPORT pi_result piEnqueueMemImageRead(
1494  pi_queue command_queue, pi_mem image, pi_bool blocking_read,
1495  pi_image_offset origin, pi_image_region region, size_t row_pitch,
1496  size_t slice_pitch, void *ptr, pi_uint32 num_events_in_wait_list,
1497  const pi_event *event_wait_list, pi_event *event);
1498 
1499 __SYCL_EXPORT pi_result piEnqueueMemImageWrite(
1500  pi_queue command_queue, pi_mem image, pi_bool blocking_write,
1501  pi_image_offset origin, pi_image_region region, size_t input_row_pitch,
1502  size_t input_slice_pitch, const void *ptr,
1503  pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
1504  pi_event *event);
1505 
1506 __SYCL_EXPORT pi_result piEnqueueMemImageCopy(
1507  pi_queue command_queue, pi_mem src_image, pi_mem dst_image,
1508  pi_image_offset src_origin, pi_image_offset dst_origin,
1509  pi_image_region region, pi_uint32 num_events_in_wait_list,
1510  const pi_event *event_wait_list, pi_event *event);
1511 
1512 __SYCL_EXPORT pi_result
1513 piEnqueueMemImageFill(pi_queue command_queue, pi_mem image,
1514  const void *fill_color, const size_t *origin,
1515  const size_t *region, pi_uint32 num_events_in_wait_list,
1516  const pi_event *event_wait_list, pi_event *event);
1517 
1518 __SYCL_EXPORT pi_result piEnqueueMemBufferMap(
1519  pi_queue command_queue, pi_mem buffer, pi_bool blocking_map,
1520  pi_map_flags map_flags, size_t offset, size_t size,
1521  pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
1522  pi_event *event, void **ret_map);
1523 
1524 __SYCL_EXPORT pi_result piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj,
1525  void *mapped_ptr,
1526  pi_uint32 num_events_in_wait_list,
1527  const pi_event *event_wait_list,
1528  pi_event *event);
1529 
1530 // Extension to allow backends to process a PI memory object before adding it
1531 // as an argument for a kernel.
1532 // Note: This is needed by the CUDA backend to extract the device pointer to
1533 // the memory as the kernels uses it rather than the PI object itself.
1535  pi_uint32 arg_index,
1536  const pi_mem *arg_value);
1537 
1538 // Extension to allow backends to process a PI sampler object before adding it
1539 // as an argument for a kernel.
1540 // Note: This is needed by the CUDA backend to extract the properties of the
1541 // sampler as the kernels uses it rather than the PI object itself.
1543  pi_uint32 arg_index,
1544  const pi_sampler *arg_value);
1545 
1547 // USM
1549 typedef enum {
1550  PI_USM_HOST_SUPPORT = CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL,
1551  PI_USM_DEVICE_SUPPORT = CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL,
1553  CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL,
1555  CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL,
1556  PI_USM_SYSTEM_SHARED_SUPPORT = CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL
1558 
1559 typedef enum : pi_bitfield {
1560  PI_USM_ACCESS = CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL,
1561  PI_USM_ATOMIC_ACCESS = CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL,
1562  PI_USM_CONCURRENT_ACCESS = CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL,
1564  CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL
1566 
1567 typedef enum {
1568  PI_MEM_ALLOC_TYPE = CL_MEM_ALLOC_TYPE_INTEL,
1569  PI_MEM_ALLOC_BASE_PTR = CL_MEM_ALLOC_BASE_PTR_INTEL,
1570  PI_MEM_ALLOC_SIZE = CL_MEM_ALLOC_SIZE_INTEL,
1571  PI_MEM_ALLOC_DEVICE = CL_MEM_ALLOC_DEVICE_INTEL,
1572 } _pi_mem_info;
1573 
1574 typedef enum {
1575  PI_MEM_TYPE_UNKNOWN = CL_MEM_TYPE_UNKNOWN_INTEL,
1576  PI_MEM_TYPE_HOST = CL_MEM_TYPE_HOST_INTEL,
1577  PI_MEM_TYPE_DEVICE = CL_MEM_TYPE_DEVICE_INTEL,
1578  PI_MEM_TYPE_SHARED = CL_MEM_TYPE_SHARED_INTEL
1579 } _pi_usm_type;
1580 
1581 typedef enum : pi_bitfield {
1582  PI_MEM_ALLOC_FLAGS = CL_MEM_ALLOC_FLAGS_INTEL
1584 
1585 // Flag is used for piProgramUSMEnqueuePrefetch. PI_USM_MIGRATION_TBD0 is a
1586 // placeholder for future developments and should not change the behaviour of
1587 // piProgramUSMEnqueuePrefetch
1588 typedef enum : pi_bitfield {
1591 
1598 
1606 __SYCL_EXPORT pi_result piextUSMHostAlloc(void **result_ptr, pi_context context,
1607  pi_usm_mem_properties *properties,
1608  size_t size, pi_uint32 alignment);
1609 
1618 __SYCL_EXPORT pi_result piextUSMDeviceAlloc(void **result_ptr,
1620  pi_device device,
1621  pi_usm_mem_properties *properties,
1622  size_t size, pi_uint32 alignment);
1623 
1632 __SYCL_EXPORT pi_result piextUSMSharedAlloc(void **result_ptr,
1634  pi_device device,
1635  pi_usm_mem_properties *properties,
1636  size_t size, pi_uint32 alignment);
1637 
1642 __SYCL_EXPORT pi_result piextUSMFree(pi_context context, void *ptr);
1643 
1655 __SYCL_EXPORT pi_result piextUSMEnqueueMemset(pi_queue queue, void *ptr,
1656  pi_int32 value, size_t count,
1657  pi_uint32 num_events_in_waitlist,
1658  const pi_event *events_waitlist,
1659  pi_event *event);
1660 
1671 __SYCL_EXPORT pi_result piextUSMEnqueueMemcpy(pi_queue queue, pi_bool blocking,
1672  void *dst_ptr,
1673  const void *src_ptr, size_t size,
1674  pi_uint32 num_events_in_waitlist,
1675  const pi_event *events_waitlist,
1676  pi_event *event);
1677 
1687 __SYCL_EXPORT pi_result piextUSMEnqueuePrefetch(
1688  pi_queue queue, const void *ptr, size_t size, pi_usm_migration_flags flags,
1689  pi_uint32 num_events_in_waitlist, const pi_event *events_waitlist,
1690  pi_event *event);
1691 
1699 // USM memadvise API to govern behavior of automatic migration mechanisms
1701  const void *ptr, size_t length,
1702  pi_mem_advice advice,
1703  pi_event *event);
1704 
1721 __SYCL_EXPORT pi_result piextUSMGetMemAllocInfo(
1722  pi_context context, const void *ptr, pi_mem_info param_name,
1723  size_t param_value_size, void *param_value, size_t *param_value_size_ret);
1724 
1731 __SYCL_EXPORT pi_result piextPluginGetOpaqueData(void *opaque_data_param,
1732  void **opaque_data_return);
1733 
1737 __SYCL_EXPORT pi_result piTearDown(void *PluginParameter);
1738 
1739 struct _pi_plugin {
1740  // PI version supported by host passed to the plugin. The Plugin
1741  // checks and writes the appropriate Function Pointers in
1742  // PiFunctionTable.
1743  // TODO: Work on version fields and their handshaking mechanism.
1744  // Some choices are:
1745  // - Use of integers to keep major and minor version.
1746  // - Keeping char* Versions.
1747  char PiVersion[4];
1748  // Plugin edits this.
1749  char PluginVersion[4];
1750  char *Targets;
1752 #define _PI_API(api) decltype(::api) *api;
1753 #include <CL/sycl/detail/pi.def>
1754  } PiFunctionTable;
1755 };
1756 
1757 #ifdef __cplusplus
1758 } // extern "C"
1759 #endif // __cplusplus
1760 
1761 #endif // _PI_H_
PI_COMMAND_TYPE_USER
@ PI_COMMAND_TYPE_USER
Definition: pi.h:409
PI_IMAGE_FORMAT_NOT_SUPPORTED
@ PI_IMAGE_FORMAT_NOT_SUPPORTED
Definition: pi.h:113
PI_PROFILING_INFO_COMMAND_START
@ PI_PROFILING_INFO_COMMAND_START
Definition: pi.h:539
piEventGetProfilingInfo
pi_result piEventGetProfilingInfo(pi_event event, pi_profiling_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1077
PI_DEVICE_INFO_HOST_UNIFIED_MEMORY
@ PI_DEVICE_INFO_HOST_UNIFIED_MEMORY
Definition: pi.h:247
_pi_image_desc::num_samples
pi_uint32 num_samples
Definition: pi.h:890
PI_IMAGE_INFO_ROW_PITCH
@ PI_IMAGE_INFO_ROW_PITCH
Definition: pi.h:376
PI_DEVICE_BINARY_TYPE_NONE
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_NONE
Definition: pi.h:669
piKernelCreate
pi_result piKernelCreate(pi_program program, const char *kernel_name, pi_kernel *ret_kernel)
Definition: pi_esimd_emulator.cpp:1035
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR
Definition: pi.h:197
PI_FP_ROUND_TO_ZERO
@ PI_FP_ROUND_TO_ZERO
Definition: pi.h:366
PI_DEVICE_INFO_OPENCL_C_VERSION
@ PI_DEVICE_INFO_OPENCL_C_VERSION
Definition: pi.h:267
pi_image_region_struct::height
size_t height
Definition: pi.h:829
_pi_mem
PI Mem mapping to CUDA memory allocations, both data and texture/surface.
Definition: pi_cuda.hpp:208
PI_DEVICE_PARTITION_EQUALLY
static constexpr pi_device_partition_property PI_DEVICE_PARTITION_EQUALLY
Definition: pi.h:611
PI_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT
@ PI_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT
Definition: pi.h:501
pi_buff_rect_region_struct::depth_scalar
size_t depth_scalar
Definition: pi.h:812
piEventRelease
pi_result piEventRelease(pi_event event)
Definition: pi_esimd_emulator.cpp:1122
PI_MAP_WRITE
constexpr pi_map_flags PI_MAP_WRITE
Definition: pi.h:559
_pi_fp_capabilities
_pi_fp_capabilities
Definition: pi.h:363
PI_USM_ACCESS
@ PI_USM_ACCESS
Definition: pi.h:1560
PI_DEVICE_INFO_PROFILE
@ PI_DEVICE_INFO_PROFILE
Definition: pi.h:265
PI_INVALID_KERNEL
@ PI_INVALID_KERNEL
Definition: pi.h:85
piEnqueueKernelLaunch
pi_result piEnqueueKernelLaunch(pi_queue queue, pi_kernel kernel, pi_uint32 work_dim, const size_t *global_work_offset, const size_t *global_work_size, const size_t *local_work_size, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1329
_pi_mem_type
_pi_mem_type
Definition: pi.h:431
_pi_image_desc::image_array_size
size_t image_array_size
Definition: pi.h:886
_pi_offload_entry_struct
Definition: pi.h:626
PI_KERNEL_INFO_REFERENCE_COUNT
@ PI_KERNEL_INFO_REFERENCE_COUNT
Definition: pi.h:344
PI_DEVICE_INFO_IMAGE3D_MAX_WIDTH
@ PI_DEVICE_INFO_IMAGE3D_MAX_WIDTH
Definition: pi.h:229
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR
Definition: pi.h:211
PI_SUCCESS
@ PI_SUCCESS
Definition: pi.h:82
PI_DEVICE_INFO_DOUBLE_FP_CONFIG
@ PI_DEVICE_INFO_DOUBLE_FP_CONFIG
Definition: pi.h:195
_pi_context_info
_pi_context_info
Definition: pi.h:323
pi_buff_rect_region_struct::height_scalar
size_t height_scalar
Definition: pi.h:811
PI_MEM_TYPE_IMAGE1D
@ PI_MEM_TYPE_IMAGE1D
Definition: pi.h:436
pi_buff_rect_offset_struct
Definition: pi.h:800
_pi_offload_entry_struct::reserved
int32_t reserved
Definition: pi.h:631
piextUSMFree
pi_result piextUSMFree(pi_context context, void *ptr)
Frees allocated USM memory.
Definition: pi_esimd_emulator.cpp:1448
piKernelSetArg
pi_result piKernelSetArg(pi_kernel kernel, pi_uint32 arg_index, size_t arg_size, const void *arg_value)
Definition: pi_esimd_emulator.cpp:1039
PI_KERNEL_INFO_ATTRIBUTES
@ PI_KERNEL_INFO_ATTRIBUTES
Definition: pi.h:347
PI_DEVICE_BINARY_VERSION
static const uint16_t PI_DEVICE_BINARY_VERSION
Definition: pi.h:679
PI_DEVICE_INFO_DRIVER_VERSION
@ PI_DEVICE_INFO_DRIVER_VERSION
Definition: pi.h:264
_pi_usm_capabilities
_pi_usm_capabilities
Definition: pi.h:1559
PI_DEVICE_INFO_GPU_EU_COUNT
@ PI_DEVICE_INFO_GPU_EU_COUNT
Definition: pi.h:295
PI_IMAGE_CHANNEL_ORDER_A
@ PI_IMAGE_CHANNEL_ORDER_A
Definition: pi.h:447
_pi_device_binary_property_struct::Name
char * Name
Definition: pi.h:649
pi_bool
pi_uint32 pi_bool
Definition: pi.h:70
PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565
@ PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565
Definition: pi.h:469
PI_IMAGE_CHANNEL_TYPE_HALF_FLOAT
@ PI_IMAGE_CHANNEL_TYPE_HALF_FLOAT
Definition: pi.h:478
PI_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC
@ PI_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC
Definition: pi.h:270
_pi_image_format::image_channel_data_type
pi_image_channel_type image_channel_data_type
Definition: pi.h:878
cl::sycl::info::device
device
Definition: info_desc.hpp:49
PI_QUEUE_INFO_CONTEXT
@ PI_QUEUE_INFO_CONTEXT
Definition: pi.h:333
pi_device_binaries_struct::DeviceBinaries
pi_device_binary DeviceBinaries
Device binaries data.
Definition: pi.h:848
PI_MEM_ALLOC_FLAGS
@ PI_MEM_ALLOC_FLAGS
Definition: pi.h:1582
PI_INVALID_OPERATION
@ PI_INVALID_OPERATION
Definition: pi.h:84
PI_DEVICE_BINARY_TYPE_SPIRV
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_SPIRV
Definition: pi.h:674
PI_DEVICE_INFO_NAME
@ PI_DEVICE_INFO_NAME
Definition: pi.h:262
pi_device_binaries_struct::Version
uint16_t Version
version of this structure - for backward compatibility; all modifications which change order/type/off...
Definition: pi.h:844
_pi_device_binary_property_set_struct
Definition: pi.h:658
piextKernelGetNativeHandle
pi_result piextKernelGetNativeHandle(pi_kernel kernel, pi_native_handle *nativeHandle)
Gets the native handle of a PI kernel object.
Definition: pi_esimd_emulator.cpp:1394
PI_DEVICE_INFO_IL_VERSION
@ PI_DEVICE_INFO_IL_VERSION
Definition: pi.h:261
PI_DEVICE_EXEC_CAPABILITIES_NATIVE_KERNEL
constexpr pi_device_exec_capabilities PI_DEVICE_EXEC_CAPABILITIES_NATIVE_KERNEL
Definition: pi.h:519
pi_device_binary_struct::DeviceTargetSpec
const char * DeviceTargetSpec
null-terminated string representation of the device's target architecture which holds one of: __SYCL_...
Definition: pi.h:763
PI_FP_ROUND_TO_NEAREST
@ PI_FP_ROUND_TO_NEAREST
Definition: pi.h:365
piProgramLink
pi_result piProgramLink(pi_context context, pi_uint32 num_devices, const pi_device *device_list, const char *options, pi_uint32 num_input_programs, const pi_program *input_programs, void(*pfn_notify)(pi_program program, void *user_data), void *user_data, pi_program *ret_program)
Definition: pi_opencl.cpp:742
PI_IMAGE_CHANNEL_TYPE_UNORM_INT8
@ PI_IMAGE_CHANNEL_TYPE_UNORM_INT8
Definition: pi.h:467
PI_COMPILER_NOT_AVAILABLE
@ PI_COMPILER_NOT_AVAILABLE
Definition: pi.h:105
PI_PROFILING_INFO_COMMAND_SUBMIT
@ PI_PROFILING_INFO_COMMAND_SUBMIT
Definition: pi.h:538
PI_MEMORY_ORDER_ACQUIRE
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_ACQUIRE
Definition: pi.h:531
PI_PROGRAM_INFO_BINARY_SIZES
@ PI_PROGRAM_INFO_BINARY_SIZES
Definition: pi.h:317
PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE
Definition: pi.h:676
PI_INVALID_BUFFER_SIZE
@ PI_INVALID_BUFFER_SIZE
Definition: pi.h:97
_pi_plugin::FunctionPointers
Definition: pi.h:1751
PI_IMAGE_CHANNEL_ORDER_INTENSITY
@ PI_IMAGE_CHANNEL_ORDER_INTENSITY
Definition: pi.h:456
PI_MEM_FLAGS_HOST_PTR_COPY
constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_COPY
Definition: pi.h:553
PI_SAMPLER_ADDRESSING_MODE_REPEAT
@ PI_SAMPLER_ADDRESSING_MODE_REPEAT
Definition: pi.h:502
_pi_usm_type
_pi_usm_type
Definition: pi.h:1574
PI_SAMPLER_INFO_LOD_MIN
@ PI_SAMPLER_INFO_LOD_MIN
Definition: pi.h:496
_pi_image_format::image_channel_order
pi_image_channel_order image_channel_order
Definition: pi.h:877
PI_PROPERTY_TYPE_STRING
@ PI_PROPERTY_TYPE_STRING
Definition: pi.h:641
PI_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN
@ PI_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN
Definition: pi.h:276
piextProgramGetNativeHandle
pi_result piextProgramGetNativeHandle(pi_program program, pi_native_handle *nativeHandle)
Gets the native handle of a PI program object.
Definition: pi_esimd_emulator.cpp:1026
PI_DEVICE_INFO_IMAGE_SRGB
@ PI_DEVICE_INFO_IMAGE_SRGB
Definition: pi.h:301
_pi_image_desc::image_type
pi_mem_type image_type
Definition: pi.h:882
piProgramRetain
pi_result piProgramRetain(pi_program program)
Definition: pi_esimd_emulator.cpp:1022
_pi_plugin
Definition: pi.h:1739
_pi_offload_entry_struct::addr
void * addr
Definition: pi.h:627
PI_PROGRAM_INFO_SOURCE
@ PI_PROGRAM_INFO_SOURCE
Definition: pi.h:316
PI_IMAGE_INFO_FORMAT
@ PI_IMAGE_INFO_FORMAT
Definition: pi.h:374
PI_INVALID_MEM_OBJECT
@ PI_INVALID_MEM_OBJECT
Definition: pi.h:98
_pi_device_local_mem_type
_pi_device_local_mem_type
Definition: pi.h:181
PI_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE
@ PI_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE
Definition: pi.h:237
piDevicePartition
pi_result piDevicePartition(pi_device device, const pi_device_partition_property *properties, pi_uint32 num_devices, pi_device *out_devices, pi_uint32 *out_num_devices)
Definition: pi_esimd_emulator.cpp:604
PI_KERNEL_COMPILE_NUM_SUB_GROUPS
@ PI_KERNEL_COMPILE_NUM_SUB_GROUPS
Definition: pi.h:386
_pi_device_mem_cache_type
_pi_device_mem_cache_type
Definition: pi.h:175
_pi_mem_advice
_pi_mem_advice
Definition: pi.h:441
PI_COMMAND_TYPE_SVM_UNMAP
@ PI_COMMAND_TYPE_SVM_UNMAP
Definition: pi.h:428
PI_DEVICE_INFO_MAX_WORK_ITEM_SIZES
@ PI_DEVICE_INFO_MAX_WORK_ITEM_SIZES
Definition: pi.h:191
piEnqueueMemBufferCopy
pi_result piEnqueueMemBufferCopy(pi_queue command_queue, pi_mem src_buffer, pi_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t size, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1236
_pi_device_binary_property_set_struct::Name
char * Name
Definition: pi.h:659
PI_DEVICE_INFO_MAX_COMPUTE_UNITS
@ PI_DEVICE_INFO_MAX_COMPUTE_UNITS
Definition: pi.h:189
_pi_device_binary_property_struct::Type
uint32_t Type
Definition: pi.h:651
_pi_usm_mem_properties
_pi_usm_mem_properties
Definition: pi.h:1581
pi_device_binary_struct::PropertySetsEnd
pi_device_binary_property_set PropertySetsEnd
Definition: pi.h:784
PI_EVENT_INFO_CONTEXT
@ PI_EVENT_INFO_CONTEXT
Definition: pi.h:393
pi_device_binary_struct::BinaryStart
const unsigned char * BinaryStart
Pointer to the target code start.
Definition: pi.h:775
_pi_result
_pi_result
Definition: pi.h:81
PI_PROFILING_INFO_COMMAND_QUEUED
@ PI_PROFILING_INFO_COMMAND_QUEUED
Definition: pi.h:537
pi_device_binary_struct::ManifestStart
const char * ManifestStart
Pointer to the manifest data start.
Definition: pi.h:771
piextQueueGetNativeHandle
pi_result piextQueueGetNativeHandle(pi_queue queue, pi_native_handle *nativeHandle)
Gets the native handle of a PI queue object.
Definition: pi_esimd_emulator.cpp:749
piTearDown
pi_result piTearDown(void *PluginParameter)
API to notify that the plugin should clean up its resources.
Definition: pi_esimd_emulator.cpp:1532
pi_context_properties
intptr_t pi_context_properties
Definition: pi.h:513
piEnqueueMemUnmap
pi_result piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj, void *mapped_ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1262
PI_PROGRAM_BUILD_STATUS_IN_PROGRESS
@ PI_PROGRAM_BUILD_STATUS_IN_PROGRESS
Definition: pi.h:148
PI_SAMPLER_INFO_FILTER_MODE
@ PI_SAMPLER_INFO_FILTER_MODE
Definition: pi.h:494
PI_KERNEL_GROUP_INFO_WORK_GROUP_SIZE
@ PI_KERNEL_GROUP_INFO_WORK_GROUP_SIZE
Definition: pi.h:352
PI_IMAGE_CHANNEL_TYPE_SIGNED_INT8
@ PI_IMAGE_CHANNEL_TYPE_SIGNED_INT8
Definition: pi.h:472
PI_FP_INF_NAN
@ PI_FP_INF_NAN
Definition: pi.h:368
PI_PROFILING_INFO_NOT_AVAILABLE
@ PI_PROFILING_INFO_NOT_AVAILABLE
Definition: pi.h:106
piPluginInit
pi_result piPluginInit(pi_plugin *plugin_info)
Definition: pi_cuda.cpp:4833
piSamplerGetInfo
pi_result piSamplerGetInfo(pi_sampler sampler, pi_sampler_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1156
PI_INVALID_EVENT_WAIT_LIST
@ PI_INVALID_EVENT_WAIT_LIST
Definition: pi.h:101
PI_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
@ PI_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
Definition: pi.h:329
piPlatformGetInfo
pi_result piPlatformGetInfo(pi_platform platform, pi_platform_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:385
PI_DEVICE_INFO_GPU_SLICES
@ PI_DEVICE_INFO_GPU_SLICES
Definition: pi.h:297
PI_IMAGE_CHANNEL_ORDER_RG
@ PI_IMAGE_CHANNEL_ORDER_RG
Definition: pi.h:449
piDeviceRetain
pi_result piDeviceRetain(pi_device device)
Definition: pi_esimd_emulator.cpp:465
PI_IMAGE_INFO_SLICE_PITCH
@ PI_IMAGE_INFO_SLICE_PITCH
Definition: pi.h:377
PI_DEVICE_INFO_MAX_MEM_ALLOC_SIZE
@ PI_DEVICE_INFO_MAX_MEM_ALLOC_SIZE
Definition: pi.h:223
piProgramCompile
pi_result piProgramCompile(pi_program program, pi_uint32 num_devices, const pi_device *device_list, const char *options, pi_uint32 num_input_headers, const pi_program *input_headers, const char **header_include_names, void(*pfn_notify)(pi_program program, void *user_data), void *user_data)
_pi_device_type
_pi_device_type
Definition: pi.h:162
cl::sycl::info::device_type
device_type
Definition: info_desc.hpp:170
piContextGetInfo
pi_result piContextGetInfo(pi_context context, pi_context_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:645
piQueueRelease
pi_result piQueueRelease(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:728
_pi_plugin::PiVersion
char PiVersion[4]
Definition: pi.h:1747
cl::sycl::info::kernel
kernel
Definition: info_desc.hpp:226
PI_DEVICE_INFO_REFERENCE_COUNT
@ PI_DEVICE_INFO_REFERENCE_COUNT
Definition: pi.h:260
PI_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT
@ PI_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT
Definition: pi.h:287
pi_device_binaries_struct
This struct is a record of all the device code that may be offloaded.
Definition: pi.h:840
pi_device_binary_struct::BinaryEnd
const unsigned char * BinaryEnd
Pointer to the target code end.
Definition: pi.h:777
PI_DEVICE_INFO_PLATFORM
@ PI_DEVICE_INFO_PLATFORM
Definition: pi.h:259
PI_COMMAND_TYPE_SVM_MAP
@ PI_COMMAND_TYPE_SVM_MAP
Definition: pi.h:427
PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE
@ PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE
Definition: pi.h:299
PI_MEM_ADVISE_UNKNOWN
@ PI_MEM_ADVISE_UNKNOWN
Definition: pi.h:443
PI_PROPERTY_TYPE_UNKNOWN
@ PI_PROPERTY_TYPE_UNKNOWN
Definition: pi.h:638
PI_IMAGE_CHANNEL_ORDER_RGBx
@ PI_IMAGE_CHANNEL_ORDER_RGBx
Definition: pi.h:460
PI_DEVICE_LOCAL_MEM_TYPE_LOCAL
@ PI_DEVICE_LOCAL_MEM_TYPE_LOCAL
Definition: pi.h:182
PI_PROGRAM_BUILD_INFO_OPTIONS
@ PI_PROGRAM_BUILD_INFO_OPTIONS
Definition: pi.h:139
PI_PROGRAM_BUILD_STATUS_SUCCESS
@ PI_PROGRAM_BUILD_STATUS_SUCCESS
Definition: pi.h:147
PI_COMMAND_TYPE_NATIVE_KERNEL
@ PI_COMMAND_TYPE_NATIVE_KERNEL
Definition: pi.h:414
piextDeviceCreateWithNativeHandle
pi_result piextDeviceCreateWithNativeHandle(pi_native_handle nativeHandle, pi_platform platform, pi_device *device)
Creates PI device object from a native handle.
Definition: pi_esimd_emulator.cpp:613
piKernelGetSubGroupInfo
pi_result piKernelGetSubGroupInfo(pi_kernel kernel, pi_device device, pi_kernel_sub_group_info param_name, size_t input_value_size, const void *input_value, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
API to query information from the sub-group from a kernel.
Definition: pi_esimd_emulator.cpp:1061
PI_USM_INDIRECT_ACCESS
@ PI_USM_INDIRECT_ACCESS
indicates that the kernel might access data through USM ptrs
Definition: pi.h:1253
PI_IMAGE_CHANNEL_TYPE_SNORM_INT16
@ PI_IMAGE_CHANNEL_TYPE_SNORM_INT16
Definition: pi.h:466
PI_DEVICE_INFO_ADDRESS_BITS
@ PI_DEVICE_INFO_ADDRESS_BITS
Definition: pi.h:222
PI_EVENT_RUNNING
@ PI_EVENT_RUNNING
Definition: pi.h:124
PI_INVALID_PROGRAM_EXECUTABLE
@ PI_INVALID_PROGRAM_EXECUTABLE
Definition: pi.h:95
_pi_image_desc::image_height
size_t image_height
Definition: pi.h:884
_pi_platform
A PI platform stores all known PI devices, in the CUDA plugin this is just a vector of available devi...
Definition: pi_cuda.hpp:62
PI_CONTEXT_INFO_NUM_DEVICES
@ PI_CONTEXT_INFO_NUM_DEVICES
Definition: pi.h:325
PI_DEVICE_TYPE_DEFAULT
@ PI_DEVICE_TYPE_DEFAULT
The default device available in the PI plugin.
Definition: pi.h:163
PI_IMAGE_CHANNEL_ORDER_BGRA
@ PI_IMAGE_CHANNEL_ORDER_BGRA
Definition: pi.h:453
PI_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE
@ PI_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE
Definition: pi.h:356
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE
Definition: pi.h:207
PI_DEVICE_INFO_MAX_SAMPLERS
@ PI_DEVICE_INFO_MAX_SAMPLERS
Definition: pi.h:234
pi_image_offset_struct::y
size_t y
Definition: pi.h:820
PI_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE
@ PI_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE
Definition: pi.h:355
piEnqueueMemImageFill
pi_result piEnqueueMemImageFill(pi_queue command_queue, pi_mem image, const void *fill_color, const size_t *origin, const size_t *region, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1317
PI_DEVICE_INFO_MAX_NUM_SUB_GROUPS
@ PI_DEVICE_INFO_MAX_NUM_SUB_GROUPS
Definition: pi.h:279
_pi_usm_capability_query
_pi_usm_capability_query
Definition: pi.h:1549
PI_DEVICE_INFO_MEM_BASE_ADDR_ALIGN
@ PI_DEVICE_INFO_MEM_BASE_ADDR_ALIGN
Definition: pi.h:236
piSamplerCreate
pi_result piSamplerCreate(pi_context context, const pi_sampler_properties *sampler_properties, pi_sampler *result_sampler)
Definition: pi_esimd_emulator.cpp:1151
PI_QUEUE_ON_DEVICE_DEFAULT
constexpr pi_queue_properties PI_QUEUE_ON_DEVICE_DEFAULT
Definition: pi.h:576
piextEventCreateWithNativeHandle
pi_result piextEventCreateWithNativeHandle(pi_native_handle nativeHandle, pi_context context, bool ownNativeHandle, pi_event *event)
Creates PI event object from a native handle.
Definition: pi_esimd_emulator.cpp:1147
PI_DEVICE_INFO_BUILT_IN_KERNELS
@ PI_DEVICE_INFO_BUILT_IN_KERNELS
Definition: pi.h:258
_pi_offload_entry_struct::size
size_t size
Definition: pi.h:629
_pi_sampler_addressing_mode
_pi_sampler_addressing_mode
Definition: pi.h:500
piKernelRelease
pi_result piKernelRelease(pi_kernel kernel)
Definition: pi_esimd_emulator.cpp:1069
PI_DEVICE_INFO_USM_DEVICE_SUPPORT
@ PI_DEVICE_INFO_USM_DEVICE_SUPPORT
Definition: pi.h:284
PI_KERNEL_INFO_PROGRAM
@ PI_KERNEL_INFO_PROGRAM
Definition: pi.h:346
PI_COMMAND_TYPE_MAP_IMAGE
@ PI_COMMAND_TYPE_MAP_IMAGE
Definition: pi.h:417
PI_PLATFORM_INFO_NAME
@ PI_PLATFORM_INFO_NAME
Definition: pi.h:131
piextUSMSharedAlloc
pi_result piextUSMSharedAlloc(void **result_ptr, pi_context context, pi_device device, pi_usm_mem_properties *properties, size_t size, pi_uint32 alignment)
Allocates memory accessible on both host and device.
Definition: pi_esimd_emulator.cpp:1419
PI_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE
@ PI_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE
Definition: pi.h:233
_pi_image_desc::image_slice_pitch
size_t image_slice_pitch
Definition: pi.h:888
PI_FP_ROUND_TO_INF
@ PI_FP_ROUND_TO_INF
Definition: pi.h:367
_pi_device_info
_pi_device_info
Definition: pi.h:186
PI_MEM_TYPE_DEVICE
@ PI_MEM_TYPE_DEVICE
Definition: pi.h:1577
PI_USM_ATOMIC_ACCESS
@ PI_USM_ATOMIC_ACCESS
Definition: pi.h:1561
pi_image_region_struct::width
size_t width
Definition: pi.h:828
PI_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE
@ PI_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE
Definition: pi.h:242
pi_image_offset_struct::x
size_t x
Definition: pi.h:819
_pi_image_info
_pi_image_info
Definition: pi.h:373
cl::sycl::info::queue
queue
Definition: info_desc.hpp:219
piEventSetStatus
pi_result piEventSetStatus(pi_event event, pi_int32 execution_status)
Definition: pi_esimd_emulator.cpp:1110
piextUSMDeviceAlloc
pi_result piextUSMDeviceAlloc(void **result_ptr, pi_context context, pi_device device, pi_usm_mem_properties *properties, size_t size, pi_uint32 alignment)
Allocates device memory.
Definition: pi_esimd_emulator.cpp:1414
PI_SAMPLER_PROPERTIES_ADDRESSING_MODE
constexpr pi_sampler_properties PI_SAMPLER_PROPERTIES_ADDRESSING_MODE
Definition: pi.h:524
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT
Definition: pi.h:201
PI_SAMPLER_FILTER_MODE_NEAREST
@ PI_SAMPLER_FILTER_MODE_NEAREST
Definition: pi.h:509
_pi_kernel
Implementation of a PI Kernel for CUDA.
Definition: pi_cuda.hpp:578
PI_DEVICE_INFO_ERROR_CORRECTION_SUPPORT
@ PI_DEVICE_INFO_ERROR_CORRECTION_SUPPORT
Definition: pi.h:246
PI_DEVICE_MEM_CACHE_TYPE_NONE
@ PI_DEVICE_MEM_CACHE_TYPE_NONE
Definition: pi.h:176
piextDeviceGetNativeHandle
pi_result piextDeviceGetNativeHandle(pi_device device, pi_native_handle *nativeHandle)
Gets the native handle of a PI device object.
Definition: pi_esimd_emulator.cpp:609
PI_DEVICE_INFO_IMAGE2D_MAX_HEIGHT
@ PI_DEVICE_INFO_IMAGE2D_MAX_HEIGHT
Definition: pi.h:228
PI_INVALID_EVENT
@ PI_INVALID_EVENT
Definition: pi.h:100
PI_PROGRAM_BINARY_TYPE_NONE
@ PI_PROGRAM_BINARY_TYPE_NONE
Definition: pi.h:152
pi_buff_rect_offset_struct::y_scalar
size_t y_scalar
Definition: pi.h:802
PI_EVENT_INFO_COMMAND_TYPE
@ PI_EVENT_INFO_COMMAND_TYPE
Definition: pi.h:394
PI_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
constexpr pi_queue_properties PI_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
Definition: pi.h:571
piextContextCreateWithNativeHandle
pi_result piextContextCreateWithNativeHandle(pi_native_handle nativeHandle, pi_uint32 numDevices, const pi_device *devices, bool pluginOwnsNativeHandle, pi_context *context)
Creates PI context object from a native handle.
Definition: pi_esimd_emulator.cpp:659
piProgramGetInfo
pi_result piProgramGetInfo(pi_program program, pi_program_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:994
PI_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE
@ PI_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE
Definition: pi.h:240
PI_DEVICE_EXEC_CAPABILITIES_KERNEL
constexpr pi_device_exec_capabilities PI_DEVICE_EXEC_CAPABILITIES_KERNEL
Definition: pi.h:516
PI_COMMAND_TYPE_BARRIER
@ PI_COMMAND_TYPE_BARRIER
Definition: pi.h:421
PI_CONTEXT_INFO_DEVICES
@ PI_CONTEXT_INFO_DEVICES
Definition: pi.h:324
_pi_device_binary_property_set_struct::PropertiesBegin
pi_device_binary_property PropertiesBegin
Definition: pi.h:660
_pi_sampler_filter_mode
_pi_sampler_filter_mode
Definition: pi.h:508
_pi_queue_info
_pi_queue_info
Definition: pi.h:332
pi_buff_rect_region_struct::width_bytes
size_t width_bytes
Definition: pi.h:810
_pi_buffer_create_type
_pi_buffer_create_type
Definition: pi.h:482
PI_MEM_ALLOC_BASE_PTR
@ PI_MEM_ALLOC_BASE_PTR
Definition: pi.h:1569
PI_ERROR_UNKNOWN
@ PI_ERROR_UNKNOWN
Definition: pi.h:119
PI_MEM_ACCESS_READ_ONLY
constexpr pi_mem_flags PI_MEM_ACCESS_READ_ONLY
Definition: pi.h:550
piextUSMEnqueueMemcpy
pi_result piextUSMEnqueueMemcpy(pi_queue queue, pi_bool blocking, void *dst_ptr, const void *src_ptr, size_t size, pi_uint32 num_events_in_waitlist, const pi_event *events_waitlist, pi_event *event)
USM Memcpy API.
Definition: pi_esimd_emulator.cpp:1480
piMemBufferPartition
pi_result piMemBufferPartition(pi_mem buffer, pi_mem_flags flags, pi_buffer_create_type buffer_create_type, void *buffer_create_info, pi_mem *ret_mem)
Definition: pi_esimd_emulator.cpp:1323
PI_PROGRAM_BINARY_TYPE_EXECUTABLE
@ PI_PROGRAM_BINARY_TYPE_EXECUTABLE
Definition: pi.h:156
export.hpp
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF
Definition: pi.h:220
piextUSMEnqueueMemAdvise
pi_result piextUSMEnqueueMemAdvise(pi_queue queue, const void *ptr, size_t length, pi_mem_advice advice, pi_event *event)
USM Memadvise API.
Definition: pi_esimd_emulator.cpp:1485
pi_device_binary_type
uint8_t pi_device_binary_type
Types of device binary.
Definition: pi.h:667
PI_DEVICE_BINARY_OFFLOAD_KIND_SYCL
static const uint8_t PI_DEVICE_BINARY_OFFLOAD_KIND_SYCL
Definition: pi.h:682
piQueueCreate
pi_result piQueueCreate(pi_context context, pi_device device, pi_queue_properties properties, pi_queue *queue)
Definition: pi_esimd_emulator.cpp:690
PI_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE
@ PI_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE
Definition: pi.h:232
PI_DEVICE_INFO_LOCAL_MEM_SIZE
@ PI_DEVICE_INFO_LOCAL_MEM_SIZE
Definition: pi.h:245
PI_MEMORY_ORDER_RELAXED
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_RELAXED
Definition: pi.h:530
PI_IMAGE_CHANNEL_ORDER_LUMINANCE
@ PI_IMAGE_CHANNEL_ORDER_LUMINANCE
Definition: pi.h:457
piextProgramCreateWithNativeHandle
pi_result piextProgramCreateWithNativeHandle(pi_native_handle nativeHandle, pi_context context, bool pluginOwnsNativeHandle, pi_program *program)
Creates PI program object from a native handle.
Definition: pi_esimd_emulator.cpp:1030
PI_DEVICE_LOCAL_MEM_TYPE_GLOBAL
@ PI_DEVICE_LOCAL_MEM_TYPE_GLOBAL
Definition: pi.h:183
cl::sycl::length
float length(T p) __NOEXC
Definition: builtins.hpp:1017
piEventsWait
pi_result piEventsWait(pi_uint32 num_events, const pi_event *event_list)
Definition: pi_esimd_emulator.cpp:1087
piextUSMGetMemAllocInfo
pi_result piextUSMGetMemAllocInfo(pi_context context, const void *ptr, pi_mem_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
API to query information about USM allocated pointers Valid Queries: PI_MEM_ALLOC_TYPE returns host/d...
Definition: pi_esimd_emulator.cpp:1490
piContextRelease
pi_result piContextRelease(pi_context context)
Definition: pi_esimd_emulator.cpp:675
PI_USM_MIGRATION_TBD0
@ PI_USM_MIGRATION_TBD0
Definition: pi.h:1589
_pi_queue
PI queue mapping on to CUstream objects.
Definition: pi_cuda.hpp:379
PI_BUILD_PROGRAM_FAILURE
@ PI_BUILD_PROGRAM_FAILURE
Definition: pi.h:103
piProgramRelease
pi_result piProgramRelease(pi_program program)
Definition: pi_esimd_emulator.cpp:1024
PI_IMAGE_CHANNEL_TYPE_SIGNED_INT16
@ PI_IMAGE_CHANNEL_TYPE_SIGNED_INT16
Definition: pi.h:473
_pi_device_binary_property_struct::ValAddr
void * ValAddr
Definition: pi.h:650
PI_IMAGE_CHANNEL_TYPE_SIGNED_INT32
@ PI_IMAGE_CHANNEL_TYPE_SIGNED_INT32
Definition: pi.h:474
pi_image_region_struct::depth
size_t depth
Definition: pi.h:830
pi_device_binaries_struct::HostEntriesBegin
_pi_offload_entry * HostEntriesBegin
the offload entry table (not used, for compatibility with OpenMP)
Definition: pi.h:850
PI_FALSE
const pi_bool PI_FALSE
Definition: pi.h:487
PI_MAP_READ
constexpr pi_map_flags PI_MAP_READ
Definition: pi.h:558
PI_DEVICE_TYPE_GPU
@ PI_DEVICE_TYPE_GPU
A PI device that is a GPU.
Definition: pi.h:170
pi_uint32
uint32_t pi_uint32
Definition: pi.h:68
_pi_image_desc::image_depth
size_t image_depth
Definition: pi.h:885
PI_COMMAND_TYPE_MEM_BUFFER_READ_RECT
@ PI_COMMAND_TYPE_MEM_BUFFER_READ_RECT
Definition: pi.h:406
piEnqueueMemBufferReadRect
pi_result piEnqueueMemBufferReadRect(pi_queue command_queue, pi_mem buffer, pi_bool blocking_read, pi_buff_rect_offset buffer_offset, pi_buff_rect_offset host_offset, pi_buff_rect_region region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, void *ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1214
cl::sycl::info::event_command_status
event_command_status
Definition: info_desc.hpp:284
pi_buff_rect_region_struct
Definition: pi.h:809
piMemRelease
pi_result piMemRelease(pi_mem mem)
Definition: pi_esimd_emulator.cpp:825
pi_device_binary_struct
This struct is a record of the device binary information.
Definition: pi.h:743
piEnqueueMemBufferCopyRect
pi_result piEnqueueMemBufferCopyRect(pi_queue command_queue, pi_mem src_buffer, pi_mem dst_buffer, pi_buff_rect_offset src_origin, pi_buff_rect_offset dst_origin, pi_buff_rect_region region, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1242
piextContextSetExtendedDeleter
pi_result piextContextSetExtendedDeleter(pi_context context, pi_context_extended_deleter func, void *user_data)
Definition: pi_esimd_emulator.cpp:650
PI_DEVICE_INFO_LINKER_AVAILABLE
@ PI_DEVICE_INFO_LINKER_AVAILABLE
Definition: pi.h:253
_pi_plugin::PluginVersion
char PluginVersion[4]
Definition: pi.h:1749
piProgramGetBuildInfo
pi_result piProgramGetBuildInfo(pi_program program, pi_device device, cl_program_build_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1017
PI_DEVICE_INFO_EXECUTION_CAPABILITIES
@ PI_DEVICE_INFO_EXECUTION_CAPABILITIES
Definition: pi.h:254
cl.h
PI_DEVICE_INFO_PROFILING_TIMER_RESOLUTION
@ PI_DEVICE_INFO_PROFILING_TIMER_RESOLUTION
Definition: pi.h:248
pi_device_binary_struct::LinkOptions
const char * LinkOptions
a null-terminated string; target- and compiler-specific options which are suggested to use to "link" ...
Definition: pi.h:769
_pi_kernel_exec_info
_pi_kernel_exec_info
Definition: pi.h:1251
piclProgramCreateWithSource
pi_result piclProgramCreateWithSource(pi_context context, pi_uint32 count, const char **strings, const size_t *lengths, pi_program *ret_program)
Definition: pi_esimd_emulator.cpp:989
PI_MEM_TYPE_IMAGE2D
@ PI_MEM_TYPE_IMAGE2D
Definition: pi.h:433
PI_COMMAND_TYPE_IMAGE_COPY
@ PI_COMMAND_TYPE_IMAGE_COPY
Definition: pi.h:413
PI_KERNEL_INFO_CONTEXT
@ PI_KERNEL_INFO_CONTEXT
Definition: pi.h:345
piEnqueueMemBufferWrite
pi_result piEnqueueMemBufferWrite(pi_queue command_queue, pi_mem buffer, pi_bool blocking_write, size_t offset, size_t size, const void *ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1222
PI_PROGRAM_BUILD_INFO_STATUS
@ PI_PROGRAM_BUILD_INFO_STATUS
Definition: pi.h:138
PI_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE
@ PI_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE
Definition: pi.h:177
pi_device_binaries_struct::NumDeviceBinaries
uint16_t NumDeviceBinaries
Number of device binaries in this descriptor.
Definition: pi.h:846
piProgramCreateWithBinary
pi_result piProgramCreateWithBinary(pi_context context, pi_uint32 num_devices, const pi_device *device_list, const size_t *lengths, const unsigned char **binaries, size_t num_metadata_entries, const pi_device_binary_property *metadata, pi_int32 *binary_status, pi_program *ret_program)
Creates a PI program for a context and loads the given binary into it.
Definition: pi_esimd_emulator.cpp:976
piKernelSetExecInfo
pi_result piKernelSetExecInfo(pi_kernel kernel, pi_kernel_exec_info value_name, size_t param_value_size, const void *param_value)
API to set attributes controlling kernel execution.
Definition: pi_esimd_emulator.cpp:1495
PI_DEVICE_INFO_HALF_FP_CONFIG
@ PI_DEVICE_INFO_HALF_FP_CONFIG
Definition: pi.h:194
PI_MISALIGNED_SUB_BUFFER_OFFSET
@ PI_MISALIGNED_SUB_BUFFER_OFFSET
Definition: pi.h:102
PI_DEVICE_BINARY_TYPE_NATIVE
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_NATIVE
Definition: pi.h:671
PI_IMAGE_CHANNEL_ORDER_R
@ PI_IMAGE_CHANNEL_ORDER_R
Definition: pi.h:448
pi_mem_flags
pi_bitfield pi_mem_flags
Definition: pi.h:547
_pi_event_status
_pi_event_status
Definition: pi.h:122
piKernelGetGroupInfo
pi_result piKernelGetGroupInfo(pi_kernel kernel, pi_device device, pi_kernel_group_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1056
_pi_image_channel_order
_pi_image_channel_order
Definition: pi.h:446
PI_IMAGE_CHANNEL_TYPE_FLOAT
@ PI_IMAGE_CHANNEL_TYPE_FLOAT
Definition: pi.h:479
piEnqueueMemImageRead
pi_result piEnqueueMemImageRead(pi_queue command_queue, pi_mem image, pi_bool blocking_read, pi_image_offset origin, pi_image_region region, size_t row_pitch, size_t slice_pitch, void *ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1271
PI_USM_CONCURRENT_ACCESS
@ PI_USM_CONCURRENT_ACCESS
Definition: pi.h:1562
PI_COMMAND_TYPE_SVM_MEMCPY
@ PI_COMMAND_TYPE_SVM_MEMCPY
Definition: pi.h:425
pi_property_type
pi_property_type
Definition: pi.h:637
PI_MEM_TYPE_SHARED
@ PI_MEM_TYPE_SHARED
Definition: pi.h:1578
PI_DEVICE_INFO_VENDOR
@ PI_DEVICE_INFO_VENDOR
Definition: pi.h:263
pi_context_extended_deleter
void(* pi_context_extended_deleter)(void *user_data)
Definition: pi.h:1028
PI_MEM_TYPE_IMAGE1D_ARRAY
@ PI_MEM_TYPE_IMAGE1D_ARRAY
Definition: pi.h:437
PI_INVALID_QUEUE_PROPERTIES
@ PI_INVALID_QUEUE_PROPERTIES
Definition: pi.h:86
pi_device_binary_struct::Format
uint8_t Format
format of the binary data - SPIR-V, LLVM IR bitcode,...
Definition: pi.h:751
PI_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES
@ PI_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES
Definition: pi.h:255
PI_PROPERTY_TYPE_BYTE_ARRAY
@ PI_PROPERTY_TYPE_BYTE_ARRAY
Definition: pi.h:640
cl::sycl::host_ptr
multi_ptr< ElementType, access::address_space::global_host_space > host_ptr
Definition: pointers.hpp:28
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
PI_KERNEL_MAX_SUB_GROUP_SIZE
@ PI_KERNEL_MAX_SUB_GROUP_SIZE
Definition: pi.h:384
PI_IMAGE_INFO_DEPTH
@ PI_IMAGE_INFO_DEPTH
Definition: pi.h:380
piQueueRetain
pi_result piQueueRetain(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:720
PI_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT
@ PI_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT
Definition: pi.h:289
PI_DEVICE_NOT_FOUND
@ PI_DEVICE_NOT_FOUND
Definition: pi.h:107
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT
Definition: pi.h:199
PI_MEMORY_ORDER_SEQ_CST
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_SEQ_CST
Definition: pi.h:534
PI_MEM_TYPE_BUFFER
@ PI_MEM_TYPE_BUFFER
Definition: pi.h:432
piEnqueueEventsWaitWithBarrier
pi_result piEnqueueEventsWaitWithBarrier(pi_queue command_queue, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1170
PI_SAMPLER_INFO_CONTEXT
@ PI_SAMPLER_INFO_CONTEXT
Definition: pi.h:491
_pi_program_binary_type
_pi_program_binary_type
Definition: pi.h:151
piKernelRetain
pi_result piKernelRetain(pi_kernel kernel)
Definition: pi_esimd_emulator.cpp:1067
piDeviceGetInfo
pi_result piDeviceGetInfo(pi_device device, pi_device_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Returns requested info for provided native device Return PI_DEVICE_INFO_EXTENSION_DEVICELIB_ASSERT fo...
Definition: pi_esimd_emulator.cpp:485
piEventSetCallback
pi_result piEventSetCallback(pi_event event, pi_int32 command_exec_callback_type, void(*pfn_notify)(pi_event event, pi_int32 event_command_status, void *user_data), void *user_data)
PI_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE
@ PI_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE
Definition: pi.h:238
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG
Definition: pi.h:215
pi_device_binary_struct::Kind
uint8_t Kind
the type of offload model the binary employs; must be 4 for SYCL
Definition: pi.h:749
PI_MEMORY_ORDER_RELEASE
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_RELEASE
Definition: pi.h:532
piEnqueueMemBufferFill
pi_result piEnqueueMemBufferFill(pi_queue command_queue, pi_mem buffer, const void *pattern, size_t pattern_size, size_t offset, size_t size, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1250
PI_DEVICE_INFO_USM_HOST_SUPPORT
@ PI_DEVICE_INFO_USM_HOST_SUPPORT
Definition: pi.h:283
piSamplerRetain
pi_result piSamplerRetain(pi_sampler sampler)
Definition: pi_esimd_emulator.cpp:1161
PI_INVALID_QUEUE
@ PI_INVALID_QUEUE
Definition: pi.h:92
piextPluginGetOpaqueData
pi_result piextPluginGetOpaqueData(void *opaque_data_param, void **opaque_data_return)
API to get Plugin internal data, opaque to SYCL RT.
Definition: pi_esimd_emulator.cpp:1527
piMemImageGetInfo
pi_result piMemImageGetInfo(pi_mem image, pi_image_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1267
pi_device_binary_property_set
_pi_device_binary_property_set_struct * pi_device_binary_property_set
Definition: pi.h:664
PI_MEM_FLAGS_HOST_PTR_USE
constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_USE
Definition: pi.h:552
piextEventGetNativeHandle
pi_result piextEventGetNativeHandle(pi_event event, pi_native_handle *nativeHandle)
Gets the native handle of a PI event object.
Definition: pi_esimd_emulator.cpp:1143
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT
Definition: pi.h:216
PI_PROGRAM_INFO_REFERENCE_COUNT
@ PI_PROGRAM_INFO_REFERENCE_COUNT
Definition: pi.h:312
PI_IMAGE_CHANNEL_ORDER_sRGBA
@ PI_IMAGE_CHANNEL_ORDER_sRGBA
Definition: pi.h:461
PI_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
static constexpr pi_device_partition_property PI_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
Definition: pi.h:614
piextPlatformCreateWithNativeHandle
pi_result piextPlatformCreateWithNativeHandle(pi_native_handle nativeHandle, pi_platform *platform)
Creates PI platform object from a native handle.
Definition: pi_esimd_emulator.cpp:421
PI_MEM_TYPE_UNKNOWN
@ PI_MEM_TYPE_UNKNOWN
Definition: pi.h:1575
PI_DEVICE_INFO_PARENT_DEVICE
@ PI_DEVICE_INFO_PARENT_DEVICE
Definition: pi.h:272
PI_PLATFORM_INFO_VERSION
@ PI_PLATFORM_INFO_VERSION
Definition: pi.h:134
_pi_image_desc::buffer
pi_mem buffer
Definition: pi.h:891
PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16
@ PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16
Definition: pi.h:476
pi_uint64
uint64_t pi_uint64
Definition: pi.h:69
PI_COMMAND_TYPE_MEM_BUFFER_WRITE
@ PI_COMMAND_TYPE_MEM_BUFFER_WRITE
Definition: pi.h:402
PI_DEVICE_INFO_PARTITION_TYPE
@ PI_DEVICE_INFO_PARTITION_TYPE
Definition: pi.h:278
PI_COMMAND_TYPE_MEM_BUFFER_COPY
@ PI_COMMAND_TYPE_MEM_BUFFER_COPY
Definition: pi.h:403
_pi_event_info
_pi_event_info
Definition: pi.h:391
piextUSMHostAlloc
pi_result piextUSMHostAlloc(void **result_ptr, pi_context context, pi_usm_mem_properties *properties, size_t size, pi_uint32 alignment)
Allocates host memory accessible by the device.
Definition: pi_esimd_emulator.cpp:1409
PI_IMAGE_INFO_WIDTH
@ PI_IMAGE_INFO_WIDTH
Definition: pi.h:378
_pi_sampler_info
_pi_sampler_info
Definition: pi.h:489
_pi_device_binary_property_struct
Definition: pi.h:648
pi_mem_properties
pi_bitfield pi_mem_properties
Definition: pi.h:565
_pi_program
Implementation of PI Program on CUDA Module object.
Definition: pi_cuda.hpp:523
PI_INVALID_KERNEL_NAME
@ PI_INVALID_KERNEL_NAME
Definition: pi.h:83
PI_QUEUE_INFO_DEVICE
@ PI_QUEUE_INFO_DEVICE
Definition: pi.h:334
PI_FP_DENORM
@ PI_FP_DENORM
Definition: pi.h:369
PI_PROGRAM_BUILD_STATUS_ERROR
@ PI_PROGRAM_BUILD_STATUS_ERROR
Definition: pi.h:146
_pi_sampler
Implementation of samplers for CUDA.
Definition: pi_cuda.hpp:744
PI_DEVICE_INFO_PRINTF_BUFFER_SIZE
@ PI_DEVICE_INFO_PRINTF_BUFFER_SIZE
Definition: pi.h:269
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE
Definition: pi.h:218
PI_INVALID_IMAGE_SIZE
@ PI_INVALID_IMAGE_SIZE
Definition: pi.h:111
PI_COMMAND_TYPE_IMAGE_READ
@ PI_COMMAND_TYPE_IMAGE_READ
Definition: pi.h:411
pi_device_binary_struct::CompileOptions
const char * CompileOptions
a null-terminated string; target- and compiler-specific options which are suggested to use to "compil...
Definition: pi.h:766
PI_USM_PTRS
@ PI_USM_PTRS
provides an explicit list of pointers that the kernel will access
Definition: pi.h:1255
piDeviceRelease
pi_result piDeviceRelease(pi_device device)
Definition: pi_esimd_emulator.cpp:475
pi_device_exec_capabilities
pi_bitfield pi_device_exec_capabilities
Definition: pi.h:515
PI_DEVICE_INFO_UUID
@ PI_DEVICE_INFO_UUID
Definition: pi.h:292
PI_PLATFORM_INFO_PROFILE
@ PI_PLATFORM_INFO_PROFILE
Definition: pi.h:132
PI_KERNEL_MAX_NUM_SUB_GROUPS
@ PI_KERNEL_MAX_NUM_SUB_GROUPS
Definition: pi.h:385
piextUSMEnqueueMemset
pi_result piextUSMEnqueueMemset(pi_queue queue, void *ptr, pi_int32 value, size_t count, pi_uint32 num_events_in_waitlist, const pi_event *events_waitlist, pi_event *event)
USM Memset API.
Definition: pi_esimd_emulator.cpp:1475
_pi_device_binary_property_struct::ValSize
uint64_t ValSize
Definition: pi.h:652
PI_DEVICE_INFO_MAX_CONSTANT_ARGS
@ PI_DEVICE_INFO_MAX_CONSTANT_ARGS
Definition: pi.h:243
PI_DEVICE_INFO_PCI_ADDRESS
@ PI_DEVICE_INFO_PCI_ADDRESS
Definition: pi.h:294
PI_PROPERTY_TYPE_UINT32
@ PI_PROPERTY_TYPE_UINT32
Definition: pi.h:639
pi_native_handle
uintptr_t pi_native_handle
Definition: pi.h:72
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT
Definition: pi.h:212
PI_DEVICE_INFO_GLOBAL_MEM_SIZE
@ PI_DEVICE_INFO_GLOBAL_MEM_SIZE
Definition: pi.h:241
piQueueFinish
pi_result piQueueFinish(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:742
piContextRetain
pi_result piContextRetain(pi_context context)
Definition: pi_esimd_emulator.cpp:665
pi_sampler_properties
pi_bitfield pi_sampler_properties
Definition: pi.h:521
piextKernelSetArgSampler
pi_result piextKernelSetArgSampler(pi_kernel kernel, pi_uint32 arg_index, const pi_sampler *arg_value)
Definition: pi_esimd_emulator.cpp:1048
PI_KERNEL_INFO_FUNCTION_NAME
@ PI_KERNEL_INFO_FUNCTION_NAME
Definition: pi.h:342
PI_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE
@ PI_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE
Definition: pi.h:178
PI_MEM_FLAGS_ACCESS_RW
constexpr pi_mem_flags PI_MEM_FLAGS_ACCESS_RW
Definition: pi.h:549
piextKernelSetArgMemObj
pi_result piextKernelSetArgMemObj(pi_kernel kernel, pi_uint32 arg_index, const pi_mem *arg_value)
Definition: pi_esimd_emulator.cpp:1043
PI_IMAGE_CHANNEL_ORDER_RGx
@ PI_IMAGE_CHANNEL_ORDER_RGx
Definition: pi.h:459
PI_QUEUE_INFO_DEVICE_DEFAULT
@ PI_QUEUE_INFO_DEVICE_DEFAULT
Definition: pi.h:335
piMemImageCreate
pi_result piMemImageCreate(pi_context context, pi_mem_flags flags, const pi_image_format *image_format, const pi_image_desc *image_desc, void *host_ptr, pi_mem *ret_mem)
Definition: pi_esimd_emulator.cpp:883
_pi_image_format
Definition: pi.h:876
PI_EVENT_COMPLETE
@ PI_EVENT_COMPLETE
Definition: pi.h:123
PI_IMAGE_CHANNEL_TYPE_UNORM_INT_101010
@ PI_IMAGE_CHANNEL_TYPE_UNORM_INT_101010
Definition: pi.h:471
PI_COMMAND_TYPE_NDRANGE_KERNEL
@ PI_COMMAND_TYPE_NDRANGE_KERNEL
Definition: pi.h:400
_pi_plugin::Targets
char * Targets
Definition: pi.h:1750
PI_PLATFORM_INFO_VENDOR
@ PI_PLATFORM_INFO_VENDOR
Definition: pi.h:133
_pi_kernel_info
_pi_kernel_info
Definition: pi.h:341
PI_INVALID_CONTEXT
@ PI_INVALID_CONTEXT
Definition: pi.h:88
PI_FUNCTION_ADDRESS_IS_NOT_AVAILABLE
@ PI_FUNCTION_ADDRESS_IS_NOT_AVAILABLE
PI_FUNCTION_ADDRESS_IS_NOT_AVAILABLE indicates a fallback method determines the function exists but i...
Definition: pi.h:115
PI_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT
@ PI_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT
Definition: pi.h:285
piPlatformsGet
pi_result piPlatformsGet(pi_uint32 num_entries, pi_platform *platforms, pi_uint32 *num_platforms)
Definition: pi_esimd_emulator.cpp:357
PI_IMAGE_CHANNEL_ORDER_RGBA
@ PI_IMAGE_CHANNEL_ORDER_RGBA
Definition: pi.h:452
PI_DEVICE_TYPE_CPU
@ PI_DEVICE_TYPE_CPU
A PI device that is the host processor.
Definition: pi.h:168
PI_DEVICE_INFO_QUEUE_PROPERTIES
@ PI_DEVICE_INFO_QUEUE_PROPERTIES
Definition: pi.h:196
PI_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES
@ PI_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES
Definition: pi.h:274
PI_SAMPLER_INFO_MIP_FILTER_MODE
@ PI_SAMPLER_INFO_MIP_FILTER_MODE
Definition: pi.h:495
PI_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE
@ PI_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE
Definition: pi.h:503
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D
Definition: pi.h:307
PI_PROGRAM_INFO_KERNEL_NAMES
@ PI_PROGRAM_INFO_KERNEL_NAMES
Definition: pi.h:320
PI_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE
@ PI_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE
Definition: pi.h:351
PI_QUEUE_INFO_SIZE
@ PI_QUEUE_INFO_SIZE
Definition: pi.h:338
PI_MEM_TYPE_IMAGE1D_BUFFER
@ PI_MEM_TYPE_IMAGE1D_BUFFER
Definition: pi.h:438
PI_INVALID_IMAGE_FORMAT_DESCRIPTOR
@ PI_INVALID_IMAGE_FORMAT_DESCRIPTOR
Definition: pi.h:112
piEnqueueMemBufferMap
pi_result piEnqueueMemBufferMap(pi_queue command_queue, pi_mem buffer, pi_bool blocking_map, pi_map_flags map_flags, size_t offset, size_t size, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event, void **ret_map)
Definition: pi_esimd_emulator.cpp:1256
PI_SAMPLER_ADDRESSING_MODE_NONE
@ PI_SAMPLER_ADDRESSING_MODE_NONE
Definition: pi.h:505
PI_IMAGE_CHANNEL_ORDER_ABGR
@ PI_IMAGE_CHANNEL_ORDER_ABGR
Definition: pi.h:455
PI_EVENT_QUEUED
@ PI_EVENT_QUEUED
Definition: pi.h:126
PI_PROGRAM_BINARY_TYPE_COMPILED_OBJECT
@ PI_PROGRAM_BINARY_TYPE_COMPILED_OBJECT
Definition: pi.h:153
piextMemGetNativeHandle
pi_result piextMemGetNativeHandle(pi_mem mem, pi_native_handle *nativeHandle)
Gets the native handle of a PI mem object.
Definition: pi_esimd_emulator.cpp:964
pi_buffer_region_struct::size
size_t size
Definition: pi.h:794
_pi_image_desc::image_width
size_t image_width
Definition: pi.h:883
PI_DEVICE_INFO_SINGLE_FP_CONFIG
@ PI_DEVICE_INFO_SINGLE_FP_CONFIG
Definition: pi.h:193
PI_COMMAND_TYPE_MEM_BUFFER_WRITE_RECT
@ PI_COMMAND_TYPE_MEM_BUFFER_WRITE_RECT
Definition: pi.h:407
PI_INVALID_KERNEL_ARGS
@ PI_INVALID_KERNEL_ARGS
Definition: pi.h:110
piEnqueueMemBufferRead
pi_result piEnqueueMemBufferRead(pi_queue queue, pi_mem buffer, pi_bool blocking_read, size_t offset, size_t size, void *ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1175
PI_INVALID_VALUE
@ PI_INVALID_VALUE
Definition: pi.h:87
_pi_image_channel_type
_pi_image_channel_type
Definition: pi.h:464
PI_USM_SYSTEM_SHARED_SUPPORT
@ PI_USM_SYSTEM_SHARED_SUPPORT
Definition: pi.h:1556
PI_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS
@ PI_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS
Definition: pi.h:190
piKernelGetInfo
pi_result piKernelGetInfo(pi_kernel kernel, pi_kernel_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1052
PI_DEVICE_INFO_LOCAL_MEM_TYPE
@ PI_DEVICE_INFO_LOCAL_MEM_TYPE
Definition: pi.h:244
PI_DEVICE_INFO_IMAGE3D_MAX_DEPTH
@ PI_DEVICE_INFO_IMAGE3D_MAX_DEPTH
Definition: pi.h:231
PI_DEVICE_INFO_COMPILER_AVAILABLE
@ PI_DEVICE_INFO_COMPILER_AVAILABLE
Definition: pi.h:252
piEventGetInfo
pi_result piEventGetInfo(pi_event event, pi_event_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1073
piEnqueueEventsWait
pi_result piEnqueueEventsWait(pi_queue command_queue, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1165
piMemRetain
pi_result piMemRetain(pi_mem mem)
Definition: pi_esimd_emulator.cpp:817
pi_image_offset_struct::z
size_t z
Definition: pi.h:821
PI_DEVICE_INFO_VERSION
@ PI_DEVICE_INFO_VERSION
Definition: pi.h:266
pi_buffer_region_struct::origin
size_t origin
Definition: pi.h:793
cl::sycl::info::event
event
Definition: info_desc.hpp:279
PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
@ PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
Definition: pi.h:300
PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8
@ PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8
Definition: pi.h:475
piextUSMEnqueuePrefetch
pi_result piextUSMEnqueuePrefetch(pi_queue queue, const void *ptr, size_t size, pi_usm_migration_flags flags, pi_uint32 num_events_in_waitlist, const pi_event *events_waitlist, pi_event *event)
Hint to migrate memory to the device.
Definition: pi_esimd_emulator.cpp:1521
PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32
@ PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32
Definition: pi.h:477
PI_MEMORY_ORDER_ACQ_REL
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_ACQ_REL
Definition: pi.h:533
piextMemCreateWithNativeHandle
pi_result piextMemCreateWithNativeHandle(pi_native_handle nativeHandle, pi_mem *mem)
Creates PI mem object from a native handle.
Definition: pi_esimd_emulator.cpp:968
pi_queue_properties
pi_bitfield pi_queue_properties
Definition: pi.h:570
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
_pi_image_desc::image_row_pitch
size_t image_row_pitch
Definition: pi.h:887
PI_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS
@ PI_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS
Definition: pi.h:226
_pi_platform_info
_pi_platform_info
Definition: pi.h:129
PI_DEVICE_AFFINITY_DOMAIN_NUMA
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_NUMA
Definition: pi.h:619
PI_MEM_FLAGS_HOST_PTR_ALLOC
constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_ALLOC
Definition: pi.h:554
piEventCreate
pi_result piEventCreate(pi_context context, pi_event *ret_event)
Definition: pi_esimd_emulator.cpp:1071
PI_INVALID_WORK_GROUP_SIZE
@ PI_INVALID_WORK_GROUP_SIZE
Definition: pi.h:104
PI_MEM_PROPERTIES_CHANNEL
constexpr pi_mem_properties PI_MEM_PROPERTIES_CHANNEL
Definition: pi.h:566
pi_buffer_region_struct
Definition: pi.h:792
PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555
@ PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555
Definition: pi.h:470
piContextCreate
pi_result piContextCreate(const pi_context_properties *properties, pi_uint32 num_devices, const pi_device *devices, void(*pfn_notify)(const char *errinfo, const void *private_info, size_t cb, void *user_data), void *user_data, pi_context *ret_context)
PI_IMAGE_CHANNEL_ORDER_ARGB
@ PI_IMAGE_CHANNEL_ORDER_ARGB
Definition: pi.h:454
piEventRetain
pi_result piEventRetain(pi_event event)
Definition: pi_esimd_emulator.cpp:1112
_pi_image_desc
Definition: pi.h:881
PI_COMMAND_TYPE_MEM_BUFFER_FILL
@ PI_COMMAND_TYPE_MEM_BUFFER_FILL
Definition: pi.h:410
piextPlatformGetNativeHandle
pi_result piextPlatformGetNativeHandle(pi_platform platform, pi_native_handle *nativeHandle)
Gets the native handle of a PI platform object.
Definition: pi_esimd_emulator.cpp:417
PI_DEVICE_INFO_ENDIAN_LITTLE
@ PI_DEVICE_INFO_ENDIAN_LITTLE
Definition: pi.h:250
PI_PROGRAM_BUILD_STATUS_NONE
@ PI_PROGRAM_BUILD_STATUS_NONE
Definition: pi.h:145
piextQueueCreateWithNativeHandle
pi_result piextQueueCreateWithNativeHandle(pi_native_handle nativeHandle, pi_context context, pi_queue *queue, bool pluginOwnsNativeHandle)
Creates PI queue object from a native handle.
Definition: pi_esimd_emulator.cpp:753
piQueueGetInfo
pi_result piQueueGetInfo(pi_queue command_queue, pi_queue_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:716
PI_USM_DEVICE_SUPPORT
@ PI_USM_DEVICE_SUPPORT
Definition: pi.h:1551
PI_INVALID_WORK_ITEM_SIZE
@ PI_INVALID_WORK_ITEM_SIZE
Definition: pi.h:108
_pi_event
PI Event mapping to CUevent.
Definition: pi_cuda.hpp:419
uint16_t
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT
Definition: pi.h:214
PI_DEVICE_INFO_MAX_READ_IMAGE_ARGS
@ PI_DEVICE_INFO_MAX_READ_IMAGE_ARGS
Definition: pi.h:225
pi_device_binary_property
_pi_device_binary_property_struct * pi_device_binary_property
Definition: pi.h:655
PI_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE
@ PI_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE
Definition: pi.h:298
PI_COMMAND_TYPE_MIGRATE_MEM_OBJECTS
@ PI_COMMAND_TYPE_MIGRATE_MEM_OBJECTS
Definition: pi.h:422
PI_OUT_OF_RESOURCES
@ PI_OUT_OF_RESOURCES
Definition: pi.h:99
piMemBufferCreate
pi_result piMemBufferCreate(pi_context context, pi_mem_flags flags, size_t size, void *host_ptr, pi_mem *ret_mem, const pi_mem_properties *properties=nullptr)
Definition: pi_esimd_emulator.cpp:758
PI_COMMAND_TYPE_RELEASE_GL_OBJECTS
@ PI_COMMAND_TYPE_RELEASE_GL_OBJECTS
Definition: pi.h:420
PI_MAP_WRITE_INVALIDATE_REGION
constexpr pi_map_flags PI_MAP_WRITE_INVALIDATE_REGION
Definition: pi.h:560
PI_SAMPLER_INFO_REFERENCE_COUNT
@ PI_SAMPLER_INFO_REFERENCE_COUNT
Definition: pi.h:490
PI_MEM_TYPE_IMAGE2D_ARRAY
@ PI_MEM_TYPE_IMAGE2D_ARRAY
Definition: pi.h:435
PI_BUFFER_CREATE_TYPE_REGION
@ PI_BUFFER_CREATE_TYPE_REGION
Definition: pi.h:483
piEnqueueMemBufferWriteRect
pi_result piEnqueueMemBufferWriteRect(pi_queue command_queue, pi_mem buffer, pi_bool blocking_write, pi_buff_rect_offset buffer_offset, pi_buff_rect_offset host_offset, pi_buff_rect_region region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, const void *ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1228
piextGetDeviceFunctionPointer
pi_result piextGetDeviceFunctionPointer(pi_device device, pi_program program, const char *function_name, pi_uint64 *function_pointer_ret)
Retrieves a device function pointer to a user-defined function.
Definition: pi_esimd_emulator.cpp:1404
PI_MEM_ALLOC_DEVICE
@ PI_MEM_ALLOC_DEVICE
Definition: pi.h:1571
PI_EVENT_INFO_COMMAND_QUEUE
@ PI_EVENT_INFO_COMMAND_QUEUE
Definition: pi.h:392
piDevicesGet
pi_result piDevicesGet(pi_platform platform, pi_device_type device_type, pi_uint32 num_entries, pi_device *devices, pi_uint32 *num_devices)
Definition: pi_esimd_emulator.cpp:425
pi_device_binary_struct::Version
uint16_t Version
version of this structure - for backward compatibility; all modifications which change order/type/off...
Definition: pi.h:747
PI_IMAGE_CHANNEL_ORDER_RA
@ PI_IMAGE_CHANNEL_ORDER_RA
Definition: pi.h:450
PI_IMAGE_INFO_ELEMENT_SIZE
@ PI_IMAGE_INFO_ELEMENT_SIZE
Definition: pi.h:375
piProgramCreate
pi_result piProgramCreate(pi_context context, const void *il, size_t length, pi_program *res_program)
Definition: pi_esimd_emulator.cpp:972
_pi_mem_info
_pi_mem_info
Definition: pi.h:1567
pi_image_offset_struct
Definition: pi.h:818
PI_USM_CROSS_SHARED_SUPPORT
@ PI_USM_CROSS_SHARED_SUPPORT
Definition: pi.h:1554
pi_buff_rect_offset_struct::z_scalar
size_t z_scalar
Definition: pi.h:803
PI_INVALID_PLATFORM
@ PI_INVALID_PLATFORM
Definition: pi.h:89
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D
Definition: pi.h:305
PI_OUT_OF_HOST_MEMORY
@ PI_OUT_OF_HOST_MEMORY
Definition: pi.h:93
PI_COMMAND_TYPE_SVM_MEMFILL
@ PI_COMMAND_TYPE_SVM_MEMFILL
Definition: pi.h:426
PI_SAMPLER_PROPERTIES_FILTER_MODE
constexpr pi_sampler_properties PI_SAMPLER_PROPERTIES_FILTER_MODE
Definition: pi.h:526
PI_DEVICE_INFO_VENDOR_ID
@ PI_DEVICE_INFO_VENDOR_ID
Definition: pi.h:188
piextKernelSetArgPointer
pi_result piextKernelSetArgPointer(pi_kernel kernel, pi_uint32 arg_index, size_t arg_size, const void *arg_value)
Sets up pointer arguments for CL kernels.
Definition: pi_esimd_emulator.cpp:1471
PI_COMMAND_TYPE_MARKER
@ PI_COMMAND_TYPE_MARKER
Definition: pi.h:418
PI_COMMAND_TYPE_MEM_BUFFER_READ
@ PI_COMMAND_TYPE_MEM_BUFFER_READ
Definition: pi.h:401
pi_image_region_struct
Definition: pi.h:827
piMemGetInfo
pi_result piMemGetInfo(pi_mem mem, cl_mem_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:813
PI_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
@ PI_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
Definition: pi.h:364
PI_DEVICE_INFO_EXTENSIONS
@ PI_DEVICE_INFO_EXTENSIONS
Definition: pi.h:268
PI_COMMAND_TYPE_SVM_FREE
@ PI_COMMAND_TYPE_SVM_FREE
Definition: pi.h:424
PI_COMMAND_TYPE_ACQUIRE_GL_OBJECTS
@ PI_COMMAND_TYPE_ACQUIRE_GL_OBJECTS
Definition: pi.h:419
PI_COMMAND_TYPE_COPY_BUFFER_TO_IMAGE
@ PI_COMMAND_TYPE_COPY_BUFFER_TO_IMAGE
Definition: pi.h:415
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT
Definition: pi.h:205
PI_DEVICE_TYPE_ALL
@ PI_DEVICE_TYPE_ALL
All devices available in the PI plugin.
Definition: pi.h:166
PI_SAMPLER_PROPERTIES_NORMALIZED_COORDS
constexpr pi_sampler_properties PI_SAMPLER_PROPERTIES_NORMALIZED_COORDS
Definition: pi.h:522
piextDeviceSelectBinary
pi_result piextDeviceSelectBinary(pi_device device, pi_device_binary *binaries, pi_uint32 num_binaries, pi_uint32 *selected_binary_ind)
Selects the most appropriate device binary based on runtime information and the IR characteristics.
Definition: pi_esimd_emulator.cpp:1505
PI_MEM_ALLOC_TYPE
@ PI_MEM_ALLOC_TYPE
Definition: pi.h:1568
_pi_usm_migration_flags
_pi_usm_migration_flags
Definition: pi.h:1588
PI_CONTEXT_INFO_PROPERTIES
@ PI_CONTEXT_INFO_PROPERTIES
Definition: pi.h:326
PI_FP_FMA
@ PI_FP_FMA
Definition: pi.h:370
PI_IMAGE_CHANNEL_ORDER_RGB
@ PI_IMAGE_CHANNEL_ORDER_RGB
Definition: pi.h:451
_pi_device_binary_property_set_struct::PropertiesEnd
pi_device_binary_property PropertiesEnd
Definition: pi.h:661
_pi_program_build_status
_pi_program_build_status
Definition: pi.h:144
PI_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES
@ PI_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES
Definition: pi.h:257
piEnqueueNativeKernel
pi_result piEnqueueNativeKernel(pi_queue queue, void(*user_func)(void *), void *args, size_t cb_args, pi_uint32 num_mem_objects, const pi_mem *mem_list, const void **args_mem_loc, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1398
_pi_offload_entry_struct::flags
int32_t flags
Definition: pi.h:630
PI_PROGRAM_INFO_NUM_KERNELS
@ PI_PROGRAM_INFO_NUM_KERNELS
Definition: pi.h:319
cl::sycl::info::platform
platform
Definition: info_desc.hpp:29
piextContextGetNativeHandle
pi_result piextContextGetNativeHandle(pi_context context, pi_native_handle *nativeHandle)
Gets the native handle of a PI context object.
Definition: pi_esimd_emulator.cpp:655
PI_DEVICE_INFO_TYPE
@ PI_DEVICE_INFO_TYPE
Definition: pi.h:187
PI_DEVICE_INFO_MAX_WORK_GROUP_SIZE
@ PI_DEVICE_INFO_MAX_WORK_GROUP_SIZE
Definition: pi.h:192
PI_CONTEXT_INFO_REFERENCE_COUNT
@ PI_CONTEXT_INFO_REFERENCE_COUNT
Definition: pi.h:327
_pi_program_info
_pi_program_info
Definition: pi.h:311
_pi_profiling_info
_pi_profiling_info
Definition: pi.h:536
_pi_plugin::PiFunctionTable
struct _pi_plugin::FunctionPointers PiFunctionTable
pi_device_affinity_domain
pi_bitfield pi_device_affinity_domain
Definition: pi.h:618
cl::sycl::info::context
context
Definition: info_desc.hpp:40
PI_DEVICE_INFO_IMAGE_SUPPORT
@ PI_DEVICE_INFO_IMAGE_SUPPORT
Definition: pi.h:224
PI_COMMAND_TYPE_COPY_IMAGE_TO_BUFFER
@ PI_COMMAND_TYPE_COPY_IMAGE_TO_BUFFER
Definition: pi.h:416
pi_device_binary_struct::EntriesEnd
_pi_offload_entry EntriesEnd
Definition: pi.h:780
PI_QUEUE_ON_DEVICE
constexpr pi_queue_properties PI_QUEUE_ON_DEVICE
Definition: pi.h:575
PI_DEVICE_INFO_MAX_PARAMETER_SIZE
@ PI_DEVICE_INFO_MAX_PARAMETER_SIZE
Definition: pi.h:235
PI_EVENT_INFO_COMMAND_EXECUTION_STATUS
@ PI_EVENT_INFO_COMMAND_EXECUTION_STATUS
Definition: pi.h:395
PI_MEM_OBJECT_ALLOCATION_FAILURE
@ PI_MEM_OBJECT_ALLOCATION_FAILURE
Definition: pi.h:114
PI_INVALID_SAMPLER
@ PI_INVALID_SAMPLER
Definition: pi.h:96
PI_PROGRAM_INFO_DEVICES
@ PI_PROGRAM_INFO_DEVICES
Definition: pi.h:315
PI_SAMPLER_FILTER_MODE_LINEAR
@ PI_SAMPLER_FILTER_MODE_LINEAR
Definition: pi.h:510
piEnqueueMemImageCopy
pi_result piEnqueueMemImageCopy(pi_queue command_queue, pi_mem src_image, pi_mem dst_image, pi_image_offset src_origin, pi_image_offset dst_origin, pi_image_region region, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1311
PI_MEM_ALLOC_SIZE
@ PI_MEM_ALLOC_SIZE
Definition: pi.h:1570
_pi_kernel_group_info
_pi_kernel_group_info
Definition: pi.h:350
PI_DEVICE_INFO_SUB_GROUP_SIZES_INTEL
@ PI_DEVICE_INFO_SUB_GROUP_SIZES_INTEL
Definition: pi.h:282
PI_QUEUE_INFO_REFERENCE_COUNT
@ PI_QUEUE_INFO_REFERENCE_COUNT
Definition: pi.h:337
PI_PROGRAM_INFO_NUM_DEVICES
@ PI_PROGRAM_INFO_NUM_DEVICES
Definition: pi.h:314
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF
Definition: pi.h:209
pfn_notify
void(* pfn_notify)(pi_event event, pi_int32 eventCommandStatus, void *userData)
Definition: pi_cuda.hpp:415
piextProgramSetSpecializationConstant
pi_result piextProgramSetSpecializationConstant(pi_program prog, pi_uint32 spec_id, size_t spec_size, const void *spec_value)
Sets a specialization constant to a specific value.
Definition: pi_esimd_emulator.cpp:1500
pi_buff_rect_offset_struct::x_bytes
size_t x_bytes
Definition: pi.h:801
pi_device_binary_struct::ManifestEnd
const char * ManifestEnd
Pointer to the manifest data end.
Definition: pi.h:773
PI_PROGRAM_BINARY_TYPE_LIBRARY
@ PI_PROGRAM_BINARY_TYPE_LIBRARY
Definition: pi.h:155
PI_IMAGE_INFO_HEIGHT
@ PI_IMAGE_INFO_HEIGHT
Definition: pi.h:379
PI_MEM_TYPE_HOST
@ PI_MEM_TYPE_HOST
Definition: pi.h:1576
_pi_command_type
_pi_command_type
Definition: pi.h:399
piSamplerRelease
pi_result piSamplerRelease(pi_sampler sampler)
Definition: pi_esimd_emulator.cpp:1163
PI_INVALID_WORK_DIMENSION
@ PI_INVALID_WORK_DIMENSION
Definition: pi.h:109
piextKernelCreateWithNativeHandle
pi_result piextKernelCreateWithNativeHandle(pi_native_handle nativeHandle, pi_context context, pi_program program, bool pluginOwnsNativeHandle, pi_kernel *kernel)
Creates PI kernel object from a native handle.
Definition: pi_esimd_emulator.cpp:1389
pi_memory_order_capabilities
pi_bitfield pi_memory_order_capabilities
Definition: pi.h:529
_pi_offload_entry_struct::name
char * name
Definition: pi.h:628
PI_PROFILING_INFO_COMMAND_END
@ PI_PROFILING_INFO_COMMAND_END
Definition: pi.h:540
PI_SAMPLER_INFO_NORMALIZED_COORDS
@ PI_SAMPLER_INFO_NORMALIZED_COORDS
Definition: pi.h:492
PI_DEVICE_INFO_MAX_CLOCK_FREQUENCY
@ PI_DEVICE_INFO_MAX_CLOCK_FREQUENCY
Definition: pi.h:221
PI_DEVICE_INFO_IMAGE2D_MAX_WIDTH
@ PI_DEVICE_INFO_IMAGE2D_MAX_WIDTH
Definition: pi.h:227
PI_TRUE
const pi_bool PI_TRUE
Definition: pi.h:486
PI_DEVICE_INFO_AVAILABLE
@ PI_DEVICE_INFO_AVAILABLE
Definition: pi.h:251
piEnqueueMemImageWrite
pi_result piEnqueueMemImageWrite(pi_queue command_queue, pi_mem image, pi_bool blocking_write, pi_image_offset origin, pi_image_region region, size_t input_row_pitch, size_t input_slice_pitch, const void *ptr, pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, pi_event *event)
Definition: pi_esimd_emulator.cpp:1305
_pi_image_desc::num_mip_levels
pi_uint32 num_mip_levels
Definition: pi.h:889
PI_PROGRAM_INFO_CONTEXT
@ PI_PROGRAM_INFO_CONTEXT
Definition: pi.h:313
pi_map_flags
pi_bitfield pi_map_flags
Definition: pi.h:557
piProgramBuild
pi_result piProgramBuild(pi_program program, pi_uint32 num_devices, const pi_device *device_list, const char *options, void(*pfn_notify)(pi_program program, void *user_data), void *user_data)
pi_device_binaries_struct::HostEntriesEnd
_pi_offload_entry * HostEntriesEnd
Definition: pi.h:851
PI_DEVICE_INFO_IMAGE3D_MAX_HEIGHT
@ PI_DEVICE_INFO_IMAGE3D_MAX_HEIGHT
Definition: pi.h:230
PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH
@ PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH
Definition: pi.h:296
_pi_program_build_info
_pi_program_build_info
Definition: pi.h:137
PI_COMMAND_TYPE_FILL_IMAGE
@ PI_COMMAND_TYPE_FILL_IMAGE
Definition: pi.h:423
PI_MEM_TYPE_IMAGE3D
@ PI_MEM_TYPE_IMAGE3D
Definition: pi.h:434
pi_bitfield
pi_uint64 pi_bitfield
Definition: pi.h:71
PI_PROGRAM_BUILD_INFO_BINARY_TYPE
@ PI_PROGRAM_BUILD_INFO_BINARY_TYPE
Definition: pi.h:141
PI_USM_CONCURRENT_ATOMIC_ACCESS
@ PI_USM_CONCURRENT_ATOMIC_ACCESS
Definition: pi.h:1563
PI_EVENT_INFO_REFERENCE_COUNT
@ PI_EVENT_INFO_REFERENCE_COUNT
Definition: pi.h:396
PI_IMAGE_CHANNEL_TYPE_SNORM_INT8
@ PI_IMAGE_CHANNEL_TYPE_SNORM_INT8
Definition: pi.h:465
PI_INVALID_BINARY
@ PI_INVALID_BINARY
Definition: pi.h:91
PI_COMMAND_TYPE_MEM_BUFFER_MAP
@ PI_COMMAND_TYPE_MEM_BUFFER_MAP
Definition: pi.h:404
pi_device_partition_property
intptr_t pi_device_partition_property
Definition: pi.h:610
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG
Definition: pi.h:203
PI_PROGRAM_BUILD_INFO_LOG
@ PI_PROGRAM_BUILD_INFO_LOG
Definition: pi.h:140
PI_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
@ PI_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
Definition: pi.h:387
PI_INVALID_PROGRAM
@ PI_INVALID_PROGRAM
Definition: pi.h:94
PI_INVALID_DEVICE
@ PI_INVALID_DEVICE
Definition: pi.h:90
PI_COMMAND_TYPE_MEM_BUFFER_COPY_RECT
@ PI_COMMAND_TYPE_MEM_BUFFER_COPY_RECT
Definition: pi.h:408
PI_COMMAND_TYPE_IMAGE_WRITE
@ PI_COMMAND_TYPE_IMAGE_WRITE
Definition: pi.h:412
PI_QUEUE_PROFILING_ENABLE
constexpr pi_queue_properties PI_QUEUE_PROFILING_ENABLE
Definition: pi.h:573
PI_SAMPLER_INFO_LOD_MAX
@ PI_SAMPLER_INFO_LOD_MAX
Definition: pi.h:497
PI_EVENT_SUBMITTED
@ PI_EVENT_SUBMITTED
Definition: pi.h:125
PI_PROGRAM_INFO_BINARIES
@ PI_PROGRAM_INFO_BINARIES
Definition: pi.h:318
PI_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE
@ PI_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE
Definition: pi.h:358
PI_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE
@ PI_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE
Definition: pi.h:353
PI_USM_HOST_SUPPORT
@ PI_USM_HOST_SUPPORT
Definition: pi.h:1550
pi_int32
int32_t pi_int32
Definition: pi.h:67
_pi_context
PI context mapping to a CUDA context object.
Definition: pi_cuda.hpp:148
PI_DEVICE_BINARIES_VERSION
static const uint16_t PI_DEVICE_BINARIES_VERSION
Definition: pi.h:835
PI_IMAGE_CHANNEL_TYPE_UNORM_INT16
@ PI_IMAGE_CHANNEL_TYPE_UNORM_INT16
Definition: pi.h:468
PI_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
Definition: pi.h:622
PI_QUEUE_INFO_PROPERTIES
@ PI_QUEUE_INFO_PROPERTIES
Definition: pi.h:336
_pi_device
PI device mapping to a CUdevice.
Definition: pi_cuda.hpp:71
PI_DEVICE_INFO_PARTITION_PROPERTIES
@ PI_DEVICE_INFO_PARTITION_PROPERTIES
Definition: pi.h:273
PI_IMAGE_CHANNEL_ORDER_Rx
@ PI_IMAGE_CHANNEL_ORDER_Rx
Definition: pi.h:458
PI_USM_SINGLE_SHARED_SUPPORT
@ PI_USM_SINGLE_SHARED_SUPPORT
Definition: pi.h:1552
_pi_kernel_sub_group_info
_pi_kernel_sub_group_info
Definition: pi.h:383
PI_PLATFORM_INFO_EXTENSIONS
@ PI_PLATFORM_INFO_EXTENSIONS
Definition: pi.h:130
PI_COMMAND_TYPE_MEM_BUFFER_UNMAP
@ PI_COMMAND_TYPE_MEM_BUFFER_UNMAP
Definition: pi.h:405
PI_KERNEL_INFO_NUM_ARGS
@ PI_KERNEL_INFO_NUM_ARGS
Definition: pi.h:343
PI_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS
@ PI_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS
Definition: pi.h:280
PI_SAMPLER_INFO_ADDRESSING_MODE
@ PI_SAMPLER_INFO_ADDRESSING_MODE
Definition: pi.h:493
PI_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
@ PI_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
Definition: pi.h:303
PI_SAMPLER_ADDRESSING_MODE_CLAMP
@ PI_SAMPLER_ADDRESSING_MODE_CLAMP
Definition: pi.h:504
pi_device_binary_struct::PropertySetsBegin
pi_device_binary_property_set PropertySetsBegin
Definition: pi.h:783
PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
Definition: pi.h:304
pi_device_binary_struct::EntriesBegin
_pi_offload_entry EntriesBegin
the offload entry table
Definition: pi.h:779