DPC++ Runtime
Runtime libraries for oneAPI DPC++
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. Added
44 // piQueueFlush function.
45 // 7.9 Added new context and ownership arguments to
46 // piextMemCreateWithNativeHandle.
47 // 8.10 Added new optional device argument to piextQueueCreateWithNativeHandle
48 // 9.11 Use values of OpenCL enums directly, rather than including `<CL/cl.h>`;
49 // NOTE that this results in a changed API for `piProgramGetBuildInfo`.
50 // 10.12 Change enum value PI_MEM_ADVICE_UNKNOWN from 0 to 999, and set enum
51 // PI_MEM_ADVISE_RESET to 0.
52 // 10.13 Added new PI_EXT_ONEAPI_QUEUE_DISCARD_EVENTS queue property.
53 // 10.14 Add PI_EXT_INTEL_DEVICE_INFO_FREE_MEMORY as an extension for
54 // piDeviceGetInfo.
55 
56 #define _PI_H_VERSION_MAJOR 10
57 #define _PI_H_VERSION_MINOR 14
58 
59 #define _PI_STRING_HELPER(a) #a
60 #define _PI_CONCAT(a, b) _PI_STRING_HELPER(a.b)
61 #define _PI_TRIPLE_CONCAT(a, b, c) _PI_STRING_HELPER(a.b.c)
62 
63 // This is the macro that plugins should all use to define their version.
64 // _PI_PLUGIN_VERSION_STRING will be printed when environment variable
65 // SYCL_PI_TRACE is set to 1. PluginVersion should be defined for each plugin
66 // in plugins/*/pi_*.hpp. PluginVersion should be incremented with each change
67 // to the plugin.
68 #define _PI_PLUGIN_VERSION_STRING(PluginVersion) \
69  _PI_TRIPLE_CONCAT(_PI_H_VERSION_MAJOR, _PI_H_VERSION_MINOR, PluginVersion)
70 
71 #define _PI_H_VERSION_STRING \
72  _PI_CONCAT(_PI_H_VERSION_MAJOR, _PI_H_VERSION_MINOR)
73 
74 // This will be used to check the major versions of plugins versus the major
75 // versions of PI.
76 #define _PI_STRING_SUBSTITUTE(X) _PI_STRING_HELPER(X)
77 #define _PI_PLUGIN_VERSION_CHECK(PI_API_VERSION, PI_PLUGIN_VERSION) \
78  if (strncmp(PI_API_VERSION, PI_PLUGIN_VERSION, \
79  sizeof(_PI_STRING_SUBSTITUTE(_PI_H_VERSION_MAJOR))) < 0) { \
80  return PI_ERROR_INVALID_OPERATION; \
81  }
82 
83 // NOTE: This file presents a maping of OpenCL to PI enums, constants and
84 // typedefs. The general approach taken was to replace `CL_` prefix with `PI_`.
85 // Please consider this when adding or modifying values, as the strict value
86 // match is required.
87 // TODO: We should consider re-implementing PI enums and constants and only
88 // perform a mapping of PI to OpenCL in the pi_opencl backend.
89 #include <sycl/detail/export.hpp>
90 
91 #include <cstddef>
92 #include <cstdint>
93 
94 #ifdef __cplusplus
95 extern "C" {
96 #endif // __cplusplus
97 
98 using pi_int32 = int32_t;
99 using pi_uint32 = uint32_t;
100 using pi_uint64 = uint64_t;
103 using pi_native_handle = uintptr_t;
104 
105 //
106 // NOTE: prefer to map 1:1 to OpenCL so that no translation is needed
107 // for PI <-> OpenCL ways. The PI <-> to other BE translation is almost
108 // always needed anyway.
109 //
110 typedef enum {
111 #define _PI_ERRC(NAME, VAL) NAME = VAL,
112 #define _PI_ERRC_WITH_MSG(NAME, VAL, MSG) NAME = VAL,
113 #include <sycl/detail/pi_error.def>
114 #undef _PI_ERRC
115 #undef _PI_ERRC_WITH_MSG
116 } _pi_result;
117 
118 typedef enum {
124 
125 typedef enum {
132 
133 typedef enum {
139 
140 typedef enum {
146 
147 typedef enum {
153 
154 // NOTE: this is made 64-bit to match the size of cl_device_type to
155 // make the translation to OpenCL transparent.
156 //
157 typedef enum : pi_uint64 {
159  (1 << 0),
160  PI_DEVICE_TYPE_ALL = 0xFFFFFFFF,
161  PI_DEVICE_TYPE_CPU = (1 << 1),
162  PI_DEVICE_TYPE_GPU = (1 << 2),
163  PI_DEVICE_TYPE_ACC = (1 << 3),
164  PI_DEVICE_TYPE_CUSTOM = (1 << 4)
167 
168 typedef enum {
173 
174 typedef enum {
178 
179 typedef enum {
264  // Intel UUID extension.
266  // These are Intel-specific extensions.
275  // Return true if sub-device should do its own program build
283  // Return true if bfloat16 data type is supported by device
291 
292 typedef enum {
303 
304 typedef enum {
310  // Atomics capabilities extensions
314 
315 typedef enum {
323 
324 typedef enum {
332 
333 typedef enum {
340  // The number of registers used by the compiled kernel (device specific)
343 
344 typedef enum {
353 
354 typedef enum {
360 
361 typedef enum {
368 
369 typedef enum {
400 
401 typedef enum {
409 } _pi_mem_type;
410 
411 typedef enum {
412  // Device-specific value opaque in PI API.
426 
427 typedef enum {
444 
445 typedef enum {
462 
464 
465 const pi_bool PI_TRUE = 1;
466 const pi_bool PI_FALSE = 0;
467 
468 typedef enum {
478 
479 typedef enum {
486 
487 typedef enum {
491 
492 using pi_context_properties = intptr_t;
493 
496  (1 << 0);
499 
502  0x1152;
505 
512 
519 
520 typedef enum {
526 
527 // NOTE: this is made 64-bit to match the size of cl_mem_flags to
528 // make the translation to OpenCL transparent.
529 // TODO: populate
530 //
532 // Access
535 // Host pointer
539 
540 // flags passed to Map operations
542 constexpr pi_map_flags PI_MAP_READ = (1 << 0);
543 constexpr pi_map_flags PI_MAP_WRITE = (1 << 1);
545 // NOTE: this is made 64-bit to match the size of cl_mem_properties_intel to
546 // make the translation to OpenCL transparent.
550 
551 // NOTE: this is made 64-bit to match the size of cl_mem_properties_intel to
552 // make the translation to OpenCL transparent.
557  (1 << 1);
559 // Hints that the device/shared allocation will not be written on device.
561 
563 
564 // NOTE: queue properties are implemented this way to better support bit
565 // manipulations
572 
602 
603 // For compatibility with OpenCL define this not as enum.
606  0x1086;
608  0x1087;
609 static constexpr pi_device_partition_property
611 static constexpr pi_device_partition_property
613 
614 // For compatibility with OpenCL define this not as enum.
617  (1 << 0);
619  (1 << 1);
621  (1 << 2);
623  (1 << 3);
625  (1 << 4);
626 static constexpr pi_device_affinity_domain
628 
629 // For compatibility with OpenCL define this not as enum.
631 static constexpr pi_device_fp_config PI_FP_DENORM = (1 << 0);
632 static constexpr pi_device_fp_config PI_FP_INF_NAN = (1 << 1);
633 static constexpr pi_device_fp_config PI_FP_ROUND_TO_NEAREST = (1 << 2);
634 static constexpr pi_device_fp_config PI_FP_ROUND_TO_ZERO = (1 << 3);
635 static constexpr pi_device_fp_config PI_FP_ROUND_TO_INF = (1 << 4);
636 static constexpr pi_device_fp_config PI_FP_FMA = (1 << 5);
637 static constexpr pi_device_fp_config PI_FP_SOFT_FLOAT = (1 << 6);
639  (1 << 7);
640 
641 // For compatibility with OpenCL define this not as enum.
643 static constexpr pi_device_exec_capabilities PI_EXEC_KERNEL = (1 << 0);
645 
646 // Entry type, matches OpenMP for compatibility
648  void *addr;
649  char *name;
650  size_t size;
651  int32_t flags;
652  int32_t reserved;
653 };
654 
656 
657 // A type of a binary image property.
658 typedef enum {
660  PI_PROPERTY_TYPE_UINT32, // 32-bit integer
662  PI_PROPERTY_TYPE_STRING // null-terminated string
664 
665 // Device binary image property.
666 // If the type size of the property value is fixed and is no greater than
667 // 64 bits, then ValAddr is 0 and the value is stored in the ValSize field.
668 // Example - PI_PROPERTY_TYPE_UINT32, which is 32-bit
670  char *Name; // null-terminated property name
671  void *ValAddr; // address of property value
672  uint32_t Type; // _pi_property_type
673  uint64_t ValSize; // size of property value in bytes
674 };
675 
677 
678 // Named array of properties.
680  char *Name; // the name
683 };
684 
686 
688 using pi_device_binary_type = uint8_t;
689 // format is not determined
691 // specific to a device
693 // portable binary types go next
694 // SPIR-V
696 // LLVM bitcode
698 
699 // Device binary descriptor version supported by this library.
700 static const uint16_t PI_DEVICE_BINARY_VERSION = 1;
701 
702 // The kind of offload model the binary employs; must be 4 for SYCL
703 static const uint8_t PI_DEVICE_BINARY_OFFLOAD_KIND_SYCL = 4;
704 
712 #define __SYCL_PI_DEVICE_BINARY_TARGET_UNKNOWN "<unknown>"
713 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV32 "spir"
715 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64 "spir64"
717 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_X86_64 "spir64_x86_64"
720 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_GEN "spir64_gen"
721 #define __SYCL_PI_DEVICE_BINARY_TARGET_SPIRV64_FPGA "spir64_fpga"
722 #define __SYCL_PI_DEVICE_BINARY_TARGET_NVPTX64 "nvptx64"
724 #define __SYCL_PI_DEVICE_BINARY_TARGET_AMDGCN "amdgcn"
725 
729 #define PI_DEVICE_INFO_EXTENSION_DEVICELIB_ASSERT \
730  "pi_ext_intel_devicelib_assert"
731 
736 #define __SYCL_PI_PROPERTY_SET_SPEC_CONST_MAP "SYCL/specialization constants"
737 #define __SYCL_PI_PROPERTY_SET_SPEC_CONST_DEFAULT_VALUES_MAP \
740  "SYCL/specialization constants default values"
741 #define __SYCL_PI_PROPERTY_SET_DEVICELIB_REQ_MASK "SYCL/devicelib req mask"
743 #define __SYCL_PI_PROPERTY_SET_KERNEL_PARAM_OPT_INFO "SYCL/kernel param opt"
745 #define __SYCL_PI_PROPERTY_SET_PROGRAM_METADATA "SYCL/program metadata"
747 #define __SYCL_PI_PROPERTY_SET_SYCL_MISC_PROP "SYCL/misc properties"
749 #define __SYCL_PI_PROPERTY_SET_SYCL_ASSERT_USED "SYCL/assert used"
751 #define __SYCL_PI_PROPERTY_SET_SYCL_EXPORTED_SYMBOLS "SYCL/exported symbols"
753 #define __SYCL_PI_PROPERTY_SET_SYCL_DEVICE_GLOBALS "SYCL/device globals"
755 
758 #define __SYCL_PI_PROGRAM_METADATA_TAG_REQD_WORK_GROUP_SIZE \
759  "@reqd_work_group_size"
760 
770  uint16_t Version;
772  uint8_t Kind;
774  uint8_t Format;
786  const char *DeviceTargetSpec;
789  const char *CompileOptions;
792  const char *LinkOptions;
794  const char *ManifestStart;
796  const char *ManifestEnd;
798  const unsigned char *BinaryStart;
800  const unsigned char *BinaryEnd;
804  // Array of preperty sets; e.g. specialization constants symbol-int ID map is
805  // propagated to runtime with this mechanism.
808  // TODO Other fields like entries, link options can be propagated using
809  // the property set infrastructure. This will improve binary compatibility and
810  // add flexibility.
811 };
813 
814 // pi_buffer_region structure repeats cl_buffer_region, used for sub buffers.
816  size_t origin;
817  size_t size;
818 };
820 
821 // pi_buff_rect_offset structure is 3D offset argument passed to buffer rect
822 // operations (piEnqueueMemBufferCopyRect, etc).
824  size_t x_bytes;
825  size_t y_scalar;
826  size_t z_scalar;
827 };
829 
830 // pi_buff_rect_region structure represents size of 3D region passed to buffer
831 // rect operations (piEnqueueMemBufferCopyRect, etc).
833  size_t width_bytes;
835  size_t depth_scalar;
836 };
838 
839 // pi_image_offset structure is 3D offset argument passed to image operations
840 // (piEnqueueMemImageRead, etc).
842  size_t x;
843  size_t y;
844  size_t z;
845 };
847 
848 // pi_image_region structure represents size of 3D region passed to image
849 // operations (piEnqueueMemImageRead, etc).
851  size_t width;
852  size_t height;
853  size_t depth;
854 };
856 
857 // Offload binaries descriptor version supported by this library.
858 static const uint16_t PI_DEVICE_BINARIES_VERSION = 1;
859 
867  uint16_t Version;
875 };
877 
878 // Opaque types that make reading build log errors easier.
879 struct _pi_platform;
880 struct _pi_device;
881 struct _pi_context;
882 struct _pi_queue;
883 struct _pi_mem;
884 struct _pi_program;
885 struct _pi_kernel;
886 struct _pi_event;
887 struct _pi_sampler;
888 
892 using pi_queue = _pi_queue *;
893 using pi_mem = _pi_mem *;
896 using pi_event = _pi_event *;
898 
899 typedef struct {
903 
904 typedef struct {
906  size_t image_width;
907  size_t image_height;
908  size_t image_depth;
916 
919 
920 typedef enum { PI_MEM_CONTEXT = 0x1106, PI_MEM_SIZE = 0x1102 } _pi_mem_info;
921 
923 
924 //
925 // Following section contains SYCL RT Plugin Interface (PI) functions.
926 // They are 3 distinct categories:
927 //
928 // 1) Ones having direct analogy in OpenCL and needed for the core SYCL
929 // functionality are started with just "pi" prefix in their names.
930 // 2) Those having direct analogy in OpenCL but only needed for SYCL
931 // interoperability with OpenCL are started with "picl" prefix.
932 // 3) Functions having no direct analogy in OpenCL, started with "piext".
933 //
934 // TODO: describe interfaces in Doxygen format
935 //
936 
937 struct _pi_plugin;
939 
940 // PI Plugin Initialise.
941 // Plugin will check the PI version of Plugin Interface,
942 // populate the PI Version it supports, update targets field and populate
943 // PiFunctionTable with Supported APIs. The pointers are in a predetermined
944 // order in pi.def file.
945 __SYCL_EXPORT pi_result piPluginInit(pi_plugin *plugin_info);
946 
947 //
948 // Platform
949 //
950 __SYCL_EXPORT pi_result piPlatformsGet(pi_uint32 num_entries,
951  pi_platform *platforms,
952  pi_uint32 *num_platforms);
953 
954 __SYCL_EXPORT pi_result piPlatformGetInfo(pi_platform platform,
955  pi_platform_info param_name,
956  size_t param_value_size,
957  void *param_value,
958  size_t *param_value_size_ret);
959 
965  pi_platform platform, pi_native_handle *nativeHandle);
966 
973  pi_native_handle nativeHandle, pi_platform *platform);
974 
975 __SYCL_EXPORT pi_result piDevicesGet(pi_platform platform,
977  pi_uint32 num_entries, pi_device *devices,
978  pi_uint32 *num_devices);
979 
983 __SYCL_EXPORT pi_result piDeviceGetInfo(pi_device device,
984  pi_device_info param_name,
985  size_t param_value_size,
986  void *param_value,
987  size_t *param_value_size_ret);
988 
989 __SYCL_EXPORT pi_result piDeviceRetain(pi_device device);
990 
991 __SYCL_EXPORT pi_result piDeviceRelease(pi_device device);
992 
993 __SYCL_EXPORT pi_result piDevicePartition(
994  pi_device device, const pi_device_partition_property *properties,
995  pi_uint32 num_devices, pi_device *out_devices, pi_uint32 *out_num_devices);
996 
1001 __SYCL_EXPORT pi_result
1003 
1011  pi_native_handle nativeHandle, pi_platform platform, pi_device *device);
1012 
1016 __SYCL_EXPORT pi_result piextDeviceSelectBinary(pi_device device,
1017  pi_device_binary *binaries,
1018  pi_uint32 num_binaries,
1019  pi_uint32 *selected_binary_ind);
1020 
1033  pi_device device, pi_program program, const char *function_name,
1034  pi_uint64 *function_pointer_ret);
1035 
1036 //
1037 // Context
1038 //
1039 __SYCL_EXPORT pi_result piContextCreate(
1040  const pi_context_properties *properties, pi_uint32 num_devices,
1041  const pi_device *devices,
1042  void (*pfn_notify)(const char *errinfo, const void *private_info, size_t cb,
1043  void *user_data),
1044  void *user_data, pi_context *ret_context);
1045 
1046 __SYCL_EXPORT pi_result piContextGetInfo(pi_context context,
1047  pi_context_info param_name,
1048  size_t param_value_size,
1049  void *param_value,
1050  size_t *param_value_size_ret);
1051 
1052 __SYCL_EXPORT pi_result piContextRetain(pi_context context);
1053 
1054 __SYCL_EXPORT pi_result piContextRelease(pi_context context);
1055 
1056 typedef void (*pi_context_extended_deleter)(void *user_data);
1057 
1059  pi_context context, pi_context_extended_deleter func, void *user_data);
1060 
1065 __SYCL_EXPORT pi_result
1067 
1092  pi_native_handle nativeHandle, pi_uint32 numDevices,
1093  const pi_device *devices, bool pluginOwnsNativeHandle, pi_context *context);
1094 
1095 //
1096 // Queue
1097 //
1098 __SYCL_EXPORT pi_result piQueueCreate(pi_context context, pi_device device,
1099  pi_queue_properties properties,
1100  pi_queue *queue);
1101 
1102 __SYCL_EXPORT pi_result piQueueGetInfo(pi_queue command_queue,
1103  pi_queue_info param_name,
1104  size_t param_value_size,
1105  void *param_value,
1106  size_t *param_value_size_ret);
1107 
1108 __SYCL_EXPORT pi_result piQueueRetain(pi_queue command_queue);
1109 
1110 __SYCL_EXPORT pi_result piQueueRelease(pi_queue command_queue);
1111 
1112 __SYCL_EXPORT pi_result piQueueFinish(pi_queue command_queue);
1113 
1114 __SYCL_EXPORT pi_result piQueueFlush(pi_queue command_queue);
1115 
1120 __SYCL_EXPORT pi_result
1122 
1135  pi_native_handle nativeHandle, pi_context context, pi_device device,
1136  bool pluginOwnsNativeHandle, pi_queue *queue);
1137 
1138 //
1139 // Memory
1140 //
1141 __SYCL_EXPORT pi_result piMemBufferCreate(
1142  pi_context context, pi_mem_flags flags, size_t size, void *host_ptr,
1143  pi_mem *ret_mem, const pi_mem_properties *properties = nullptr);
1144 
1145 __SYCL_EXPORT pi_result piMemImageCreate(pi_context context, pi_mem_flags flags,
1146  const pi_image_format *image_format,
1147  const pi_image_desc *image_desc,
1148  void *host_ptr, pi_mem *ret_mem);
1149 
1150 __SYCL_EXPORT pi_result piMemGetInfo(pi_mem mem, pi_mem_info param_name,
1151  size_t param_value_size, void *param_value,
1152  size_t *param_value_size_ret);
1153 
1154 __SYCL_EXPORT pi_result piMemImageGetInfo(pi_mem image,
1155  pi_image_info param_name,
1156  size_t param_value_size,
1157  void *param_value,
1158  size_t *param_value_size_ret);
1159 
1160 __SYCL_EXPORT pi_result piMemRetain(pi_mem mem);
1161 
1162 __SYCL_EXPORT pi_result piMemRelease(pi_mem mem);
1163 
1164 __SYCL_EXPORT pi_result piMemBufferPartition(
1165  pi_mem buffer, pi_mem_flags flags, pi_buffer_create_type buffer_create_type,
1166  void *buffer_create_info, pi_mem *ret_mem);
1167 
1172 __SYCL_EXPORT pi_result piextMemGetNativeHandle(pi_mem mem,
1173  pi_native_handle *nativeHandle);
1174 
1184  pi_native_handle nativeHandle, pi_context context, bool ownNativeHandle,
1185  pi_mem *mem);
1186 
1187 //
1188 // Program
1189 //
1190 
1191 __SYCL_EXPORT pi_result piProgramCreate(pi_context context, const void *il,
1192  size_t length, pi_program *res_program);
1193 
1194 __SYCL_EXPORT pi_result piclProgramCreateWithSource(pi_context context,
1195  pi_uint32 count,
1196  const char **strings,
1197  const size_t *lengths,
1198  pi_program *ret_program);
1199 
1216 __SYCL_EXPORT pi_result piProgramCreateWithBinary(
1217  pi_context context, pi_uint32 num_devices, const pi_device *device_list,
1218  const size_t *lengths, const unsigned char **binaries,
1219  size_t num_metadata_entries, const pi_device_binary_property *metadata,
1220  pi_int32 *binary_status, pi_program *ret_program);
1221 
1222 __SYCL_EXPORT pi_result piProgramGetInfo(pi_program program,
1223  pi_program_info param_name,
1224  size_t param_value_size,
1225  void *param_value,
1226  size_t *param_value_size_ret);
1227 
1228 __SYCL_EXPORT pi_result
1229 piProgramLink(pi_context context, pi_uint32 num_devices,
1230  const pi_device *device_list, const char *options,
1231  pi_uint32 num_input_programs, const pi_program *input_programs,
1232  void (*pfn_notify)(pi_program program, void *user_data),
1233  void *user_data, pi_program *ret_program);
1234 
1235 __SYCL_EXPORT pi_result piProgramCompile(
1236  pi_program program, pi_uint32 num_devices, const pi_device *device_list,
1237  const char *options, pi_uint32 num_input_headers,
1238  const pi_program *input_headers, const char **header_include_names,
1239  void (*pfn_notify)(pi_program program, void *user_data), void *user_data);
1240 
1241 __SYCL_EXPORT pi_result piProgramBuild(
1242  pi_program program, pi_uint32 num_devices, const pi_device *device_list,
1243  const char *options,
1244  void (*pfn_notify)(pi_program program, void *user_data), void *user_data);
1245 
1246 __SYCL_EXPORT pi_result piProgramGetBuildInfo(
1247  pi_program program, pi_device device, _pi_program_build_info param_name,
1248  size_t param_value_size, void *param_value, size_t *param_value_size_ret);
1249 
1250 __SYCL_EXPORT pi_result piProgramRetain(pi_program program);
1251 
1252 __SYCL_EXPORT pi_result piProgramRelease(pi_program program);
1253 
1263 __SYCL_EXPORT pi_result
1265  size_t spec_size, const void *spec_value);
1266 
1271 __SYCL_EXPORT pi_result
1273 
1283  pi_native_handle nativeHandle, pi_context context,
1284  bool pluginOwnsNativeHandle, pi_program *program);
1285 
1286 //
1287 // Kernel
1288 //
1289 
1290 typedef enum {
1294  PI_USM_PTRS = 0x4203
1296 
1298 
1299 __SYCL_EXPORT pi_result piKernelCreate(pi_program program,
1300  const char *kernel_name,
1301  pi_kernel *ret_kernel);
1302 
1303 __SYCL_EXPORT pi_result piKernelSetArg(pi_kernel kernel, pi_uint32 arg_index,
1304  size_t arg_size, const void *arg_value);
1305 
1306 __SYCL_EXPORT pi_result piKernelGetInfo(pi_kernel kernel,
1307  pi_kernel_info param_name,
1308  size_t param_value_size,
1309  void *param_value,
1310  size_t *param_value_size_ret);
1311 
1312 __SYCL_EXPORT pi_result piKernelGetGroupInfo(pi_kernel kernel, pi_device device,
1313  pi_kernel_group_info param_name,
1314  size_t param_value_size,
1315  void *param_value,
1316  size_t *param_value_size_ret);
1317 
1336 __SYCL_EXPORT pi_result piKernelGetSubGroupInfo(
1337  pi_kernel kernel, pi_device device, pi_kernel_sub_group_info param_name,
1338  size_t input_value_size, const void *input_value, size_t param_value_size,
1339  void *param_value, size_t *param_value_size_ret);
1340 
1341 __SYCL_EXPORT pi_result piKernelRetain(pi_kernel kernel);
1342 
1343 __SYCL_EXPORT pi_result piKernelRelease(pi_kernel kernel);
1344 
1352 __SYCL_EXPORT pi_result piextKernelSetArgPointer(pi_kernel kernel,
1353  pi_uint32 arg_index,
1354  size_t arg_size,
1355  const void *arg_value);
1356 
1368 __SYCL_EXPORT pi_result piKernelSetExecInfo(pi_kernel kernel,
1369  pi_kernel_exec_info value_name,
1370  size_t param_value_size,
1371  const void *param_value);
1372 
1383  pi_native_handle nativeHandle, pi_context context, pi_program program,
1384  bool pluginOwnsNativeHandle, pi_kernel *kernel);
1385 
1390 __SYCL_EXPORT pi_result
1392 
1393 //
1394 // Events
1395 //
1396 __SYCL_EXPORT pi_result piEventCreate(pi_context context, pi_event *ret_event);
1397 
1398 __SYCL_EXPORT pi_result piEventGetInfo(pi_event event, pi_event_info param_name,
1399  size_t param_value_size,
1400  void *param_value,
1401  size_t *param_value_size_ret);
1402 
1403 __SYCL_EXPORT pi_result piEventGetProfilingInfo(pi_event event,
1404  pi_profiling_info param_name,
1405  size_t param_value_size,
1406  void *param_value,
1407  size_t *param_value_size_ret);
1408 
1409 __SYCL_EXPORT pi_result piEventsWait(pi_uint32 num_events,
1410  const pi_event *event_list);
1411 
1412 __SYCL_EXPORT pi_result piEventSetCallback(
1413  pi_event event, pi_int32 command_exec_callback_type,
1415  void *user_data),
1416  void *user_data);
1417 
1418 __SYCL_EXPORT pi_result piEventSetStatus(pi_event event,
1419  pi_int32 execution_status);
1420 
1421 __SYCL_EXPORT pi_result piEventRetain(pi_event event);
1422 
1423 __SYCL_EXPORT pi_result piEventRelease(pi_event event);
1424 
1429 __SYCL_EXPORT pi_result
1431 
1441  pi_native_handle nativeHandle, pi_context context, bool ownNativeHandle,
1442  pi_event *event);
1443 
1444 //
1445 // Sampler
1446 //
1447 __SYCL_EXPORT pi_result piSamplerCreate(
1448  pi_context context, const pi_sampler_properties *sampler_properties,
1449  pi_sampler *result_sampler);
1450 
1451 __SYCL_EXPORT pi_result piSamplerGetInfo(pi_sampler sampler,
1452  pi_sampler_info param_name,
1453  size_t param_value_size,
1454  void *param_value,
1455  size_t *param_value_size_ret);
1456 
1457 __SYCL_EXPORT pi_result piSamplerRetain(pi_sampler sampler);
1458 
1459 __SYCL_EXPORT pi_result piSamplerRelease(pi_sampler sampler);
1460 
1461 //
1462 // Queue Commands
1463 //
1464 __SYCL_EXPORT pi_result piEnqueueKernelLaunch(
1465  pi_queue queue, pi_kernel kernel, pi_uint32 work_dim,
1466  const size_t *global_work_offset, const size_t *global_work_size,
1467  const size_t *local_work_size, pi_uint32 num_events_in_wait_list,
1468  const pi_event *event_wait_list, pi_event *event);
1469 
1470 __SYCL_EXPORT pi_result piEnqueueNativeKernel(
1471  pi_queue queue, void (*user_func)(void *), void *args, size_t cb_args,
1472  pi_uint32 num_mem_objects, const pi_mem *mem_list,
1473  const void **args_mem_loc, pi_uint32 num_events_in_wait_list,
1474  const pi_event *event_wait_list, pi_event *event);
1475 
1476 __SYCL_EXPORT pi_result piEnqueueEventsWait(pi_queue command_queue,
1477  pi_uint32 num_events_in_wait_list,
1478  const pi_event *event_wait_list,
1479  pi_event *event);
1480 
1482  pi_queue command_queue, pi_uint32 num_events_in_wait_list,
1483  const pi_event *event_wait_list, pi_event *event);
1484 
1485 __SYCL_EXPORT pi_result piEnqueueMemBufferRead(
1486  pi_queue queue, pi_mem buffer, pi_bool blocking_read, size_t offset,
1487  size_t size, void *ptr, pi_uint32 num_events_in_wait_list,
1488  const pi_event *event_wait_list, pi_event *event);
1489 
1491  pi_queue command_queue, pi_mem buffer, pi_bool blocking_read,
1492  pi_buff_rect_offset buffer_offset, pi_buff_rect_offset host_offset,
1493  pi_buff_rect_region region, size_t buffer_row_pitch,
1494  size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch,
1495  void *ptr, pi_uint32 num_events_in_wait_list,
1496  const pi_event *event_wait_list, pi_event *event);
1497 
1498 __SYCL_EXPORT pi_result
1499 piEnqueueMemBufferWrite(pi_queue command_queue, pi_mem buffer,
1500  pi_bool blocking_write, size_t offset, size_t size,
1501  const void *ptr, pi_uint32 num_events_in_wait_list,
1502  const pi_event *event_wait_list, pi_event *event);
1503 
1505  pi_queue command_queue, pi_mem buffer, pi_bool blocking_write,
1506  pi_buff_rect_offset buffer_offset, pi_buff_rect_offset host_offset,
1507  pi_buff_rect_region region, size_t buffer_row_pitch,
1508  size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch,
1509  const void *ptr, pi_uint32 num_events_in_wait_list,
1510  const pi_event *event_wait_list, pi_event *event);
1511 
1512 __SYCL_EXPORT pi_result
1513 piEnqueueMemBufferCopy(pi_queue command_queue, pi_mem src_buffer,
1514  pi_mem dst_buffer, size_t src_offset, size_t dst_offset,
1515  size_t size, pi_uint32 num_events_in_wait_list,
1516  const pi_event *event_wait_list, pi_event *event);
1517 
1519  pi_queue command_queue, pi_mem src_buffer, pi_mem dst_buffer,
1520  pi_buff_rect_offset src_origin, pi_buff_rect_offset dst_origin,
1521  pi_buff_rect_region region, size_t src_row_pitch, size_t src_slice_pitch,
1522  size_t dst_row_pitch, size_t dst_slice_pitch,
1523  pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
1524  pi_event *event);
1525 
1526 __SYCL_EXPORT pi_result
1527 piEnqueueMemBufferFill(pi_queue command_queue, pi_mem buffer,
1528  const void *pattern, size_t pattern_size, size_t offset,
1529  size_t size, pi_uint32 num_events_in_wait_list,
1530  const pi_event *event_wait_list, pi_event *event);
1531 
1532 __SYCL_EXPORT pi_result piEnqueueMemImageRead(
1533  pi_queue command_queue, pi_mem image, pi_bool blocking_read,
1534  pi_image_offset origin, pi_image_region region, size_t row_pitch,
1535  size_t slice_pitch, void *ptr, pi_uint32 num_events_in_wait_list,
1536  const pi_event *event_wait_list, pi_event *event);
1537 
1538 __SYCL_EXPORT pi_result piEnqueueMemImageWrite(
1539  pi_queue command_queue, pi_mem image, pi_bool blocking_write,
1540  pi_image_offset origin, pi_image_region region, size_t input_row_pitch,
1541  size_t input_slice_pitch, const void *ptr,
1542  pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
1543  pi_event *event);
1544 
1545 __SYCL_EXPORT pi_result piEnqueueMemImageCopy(
1546  pi_queue command_queue, pi_mem src_image, pi_mem dst_image,
1547  pi_image_offset src_origin, pi_image_offset dst_origin,
1548  pi_image_region region, pi_uint32 num_events_in_wait_list,
1549  const pi_event *event_wait_list, pi_event *event);
1550 
1551 __SYCL_EXPORT pi_result
1552 piEnqueueMemImageFill(pi_queue command_queue, pi_mem image,
1553  const void *fill_color, const size_t *origin,
1554  const size_t *region, pi_uint32 num_events_in_wait_list,
1555  const pi_event *event_wait_list, pi_event *event);
1556 
1557 __SYCL_EXPORT pi_result piEnqueueMemBufferMap(
1558  pi_queue command_queue, pi_mem buffer, pi_bool blocking_map,
1559  pi_map_flags map_flags, size_t offset, size_t size,
1560  pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list,
1561  pi_event *event, void **ret_map);
1562 
1563 __SYCL_EXPORT pi_result piEnqueueMemUnmap(pi_queue command_queue, pi_mem memobj,
1564  void *mapped_ptr,
1565  pi_uint32 num_events_in_wait_list,
1566  const pi_event *event_wait_list,
1567  pi_event *event);
1568 
1569 // Extension to allow backends to process a PI memory object before adding it
1570 // as an argument for a kernel.
1571 // Note: This is needed by the CUDA backend to extract the device pointer to
1572 // the memory as the kernels uses it rather than the PI object itself.
1573 __SYCL_EXPORT pi_result piextKernelSetArgMemObj(pi_kernel kernel,
1574  pi_uint32 arg_index,
1575  const pi_mem *arg_value);
1576 
1577 // Extension to allow backends to process a PI sampler object before adding it
1578 // as an argument for a kernel.
1579 // Note: This is needed by the CUDA backend to extract the properties of the
1580 // sampler as the kernels uses it rather than the PI object itself.
1581 __SYCL_EXPORT pi_result piextKernelSetArgSampler(pi_kernel kernel,
1582  pi_uint32 arg_index,
1583  const pi_sampler *arg_value);
1584 
1586 // USM
1588 typedef enum {
1595 
1596 typedef enum : pi_bitfield {
1597  PI_USM_ACCESS = (1 << 0),
1602 
1603 typedef enum {
1609 
1610 typedef enum {
1615 } _pi_usm_type;
1616 
1617 // Flag is used for piProgramUSMEnqueuePrefetch. PI_USM_MIGRATION_TBD0 is a
1618 // placeholder for future developments and should not change the behaviour of
1619 // piProgramUSMEnqueuePrefetch
1620 typedef enum : pi_bitfield {
1623 
1629 
1637 __SYCL_EXPORT pi_result piextUSMHostAlloc(void **result_ptr, pi_context context,
1638  pi_usm_mem_properties *properties,
1639  size_t size, pi_uint32 alignment);
1640 
1649 __SYCL_EXPORT pi_result piextUSMDeviceAlloc(void **result_ptr,
1650  pi_context context,
1651  pi_device device,
1652  pi_usm_mem_properties *properties,
1653  size_t size, pi_uint32 alignment);
1654 
1663 __SYCL_EXPORT pi_result piextUSMSharedAlloc(void **result_ptr,
1664  pi_context context,
1665  pi_device device,
1666  pi_usm_mem_properties *properties,
1667  size_t size, pi_uint32 alignment);
1668 
1675 __SYCL_EXPORT pi_result piextUSMFree(pi_context context, void *ptr);
1676 
1688 __SYCL_EXPORT pi_result piextUSMEnqueueMemset(pi_queue queue, void *ptr,
1689  pi_int32 value, size_t count,
1690  pi_uint32 num_events_in_waitlist,
1691  const pi_event *events_waitlist,
1692  pi_event *event);
1693 
1704 __SYCL_EXPORT pi_result piextUSMEnqueueMemcpy(pi_queue queue, pi_bool blocking,
1705  void *dst_ptr,
1706  const void *src_ptr, size_t size,
1707  pi_uint32 num_events_in_waitlist,
1708  const pi_event *events_waitlist,
1709  pi_event *event);
1710 
1720 __SYCL_EXPORT pi_result piextUSMEnqueuePrefetch(
1721  pi_queue queue, const void *ptr, size_t size, pi_usm_migration_flags flags,
1722  pi_uint32 num_events_in_waitlist, const pi_event *events_waitlist,
1723  pi_event *event);
1724 
1732 // USM memadvise API to govern behavior of automatic migration mechanisms
1733 __SYCL_EXPORT pi_result piextUSMEnqueueMemAdvise(pi_queue queue,
1734  const void *ptr, size_t length,
1735  pi_mem_advice advice,
1736  pi_event *event);
1737 
1754 __SYCL_EXPORT pi_result piextUSMGetMemAllocInfo(
1755  pi_context context, const void *ptr, pi_mem_alloc_info param_name,
1756  size_t param_value_size, void *param_value, size_t *param_value_size_ret);
1757 
1764 __SYCL_EXPORT pi_result piextPluginGetOpaqueData(void *opaque_data_param,
1765  void **opaque_data_return);
1766 
1770 __SYCL_EXPORT pi_result piTearDown(void *PluginParameter);
1771 
1782 __SYCL_EXPORT pi_result piPluginGetLastError(char **message);
1783 
1784 struct _pi_plugin {
1785  // PI version supported by host passed to the plugin. The Plugin
1786  // checks and writes the appropriate Function Pointers in
1787  // PiFunctionTable.
1788  // TODO: Work on version fields and their handshaking mechanism.
1789  // Some choices are:
1790  // - Use of integers to keep major and minor version.
1791  // - Keeping char* Versions.
1792  char PiVersion[20];
1793  // Plugin edits this.
1794  char PluginVersion[20];
1795  char *Targets;
1797 #define _PI_API(api) decltype(::api) *api;
1798 #include <sycl/detail/pi.def>
1799  } PiFunctionTable;
1800 };
1801 
1802 #ifdef __cplusplus
1803 } // extern "C"
1804 #endif // __cplusplus
1805 
1806 #endif // _PI_H_
PI_COMMAND_TYPE_USER
@ PI_COMMAND_TYPE_USER
Definition: pi.h:379
PI_PROFILING_INFO_COMMAND_START
@ PI_PROFILING_INFO_COMMAND_START
Definition: pi.h:523
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:1386
PI_DEVICE_INFO_HOST_UNIFIED_MEMORY
@ PI_DEVICE_INFO_HOST_UNIFIED_MEMORY
Definition: pi.h:229
_pi_image_desc::num_samples
pi_uint32 num_samples
Definition: pi.h:913
PI_IMAGE_INFO_ROW_PITCH
@ PI_IMAGE_INFO_ROW_PITCH
Definition: pi.h:347
PI_DEVICE_BINARY_TYPE_NONE
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_NONE
Definition: pi.h:690
sycl::_V1::host_ptr
multi_ptr< ElementType, access::address_space::ext_intel_global_host_space > host_ptr
Definition: pointers.hpp:32
piKernelCreate
pi_result piKernelCreate(pi_program program, const char *kernel_name, pi_kernel *ret_kernel)
Definition: pi_esimd_emulator.cpp:1344
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR
Definition: pi.h:190
PI_DEVICE_INFO_OPENCL_C_VERSION
@ PI_DEVICE_INFO_OPENCL_C_VERSION
Definition: pi.h:247
pi_image_region_struct::height
size_t height
Definition: pi.h:852
_pi_mem
PI Mem mapping to CUDA memory allocations, both data and texture/surface.
Definition: pi_cuda.hpp:222
PI_DEVICE_PARTITION_EQUALLY
static constexpr pi_device_partition_property PI_DEVICE_PARTITION_EQUALLY
Definition: pi.h:605
PI_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT
@ PI_SAMPLER_ADDRESSING_MODE_MIRRORED_REPEAT
Definition: pi.h:480
pi_buff_rect_region_struct::depth_scalar
size_t depth_scalar
Definition: pi.h:835
piEventRelease
pi_result piEventRelease(pi_event event)
Definition: pi_esimd_emulator.cpp:1434
PI_MAP_WRITE
constexpr pi_map_flags PI_MAP_WRITE
Definition: pi.h:543
PI_EXT_INTEL_DEVICE_INFO_FREE_MEMORY
@ PI_EXT_INTEL_DEVICE_INFO_FREE_MEMORY
Definition: pi.h:277
PI_USM_ACCESS
@ PI_USM_ACCESS
Definition: pi.h:1597
PI_DEVICE_INFO_PROFILE
@ PI_DEVICE_INFO_PROFILE
Definition: pi.h:245
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:1759
PI_EXT_ONEAPI_QUEUE_DISCARD_EVENTS
constexpr pi_queue_properties PI_EXT_ONEAPI_QUEUE_DISCARD_EVENTS
Definition: pi.h:571
piMemGetInfo
pi_result piMemGetInfo(pi_mem mem, pi_mem_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1074
_pi_mem_type
_pi_mem_type
Definition: pi.h:401
_pi_image_desc::image_array_size
size_t image_array_size
Definition: pi.h:909
_pi_offload_entry_struct
Definition: pi.h:647
PI_KERNEL_INFO_REFERENCE_COUNT
@ PI_KERNEL_INFO_REFERENCE_COUNT
Definition: pi.h:327
PI_DEVICE_INFO_IMAGE3D_MAX_WIDTH
@ PI_DEVICE_INFO_IMAGE3D_MAX_WIDTH
Definition: pi.h:212
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR
Definition: pi.h:197
PI_DEVICE_AFFINITY_DOMAIN_L4_CACHE
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_L4_CACHE
Definition: pi.h:618
PI_DEVICE_INFO_DOUBLE_FP_CONFIG
@ PI_DEVICE_INFO_DOUBLE_FP_CONFIG
Definition: pi.h:188
_pi_context_info
_pi_context_info
Definition: pi.h:304
pi_buff_rect_region_struct::height_scalar
size_t height_scalar
Definition: pi.h:834
PI_MEM_TYPE_IMAGE1D
@ PI_MEM_TYPE_IMAGE1D
Definition: pi.h:406
pi_buff_rect_offset_struct
Definition: pi.h:823
_pi_offload_entry_struct::reserved
int32_t reserved
Definition: pi.h:652
piextUSMFree
pi_result piextUSMFree(pi_context context, void *ptr)
Indicates that the allocated USM memory is no longer needed on the runtime side.
Definition: pi_esimd_emulator.cpp:1889
piKernelSetArg
pi_result piKernelSetArg(pi_kernel kernel, pi_uint32 arg_index, size_t arg_size, const void *arg_value)
Definition: pi_esimd_emulator.cpp:1348
PI_KERNEL_INFO_ATTRIBUTES
@ PI_KERNEL_INFO_ATTRIBUTES
Definition: pi.h:330
PI_DEVICE_BINARY_VERSION
static const uint16_t PI_DEVICE_BINARY_VERSION
Definition: pi.h:700
PI_DEVICE_INFO_DRIVER_VERSION
@ PI_DEVICE_INFO_DRIVER_VERSION
Definition: pi.h:244
_pi_usm_capabilities
_pi_usm_capabilities
Definition: pi.h:1596
PI_DEVICE_INFO_GPU_EU_COUNT
@ PI_DEVICE_INFO_GPU_EU_COUNT
Definition: pi.h:268
PI_IMAGE_CHANNEL_ORDER_A
@ PI_IMAGE_CHANNEL_ORDER_A
Definition: pi.h:428
_pi_device_binary_property_struct::Name
char * Name
Definition: pi.h:670
pi_bool
pi_uint32 pi_bool
Definition: pi.h:101
PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565
@ PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_565
Definition: pi.h:450
PI_IMAGE_CHANNEL_TYPE_HALF_FLOAT
@ PI_IMAGE_CHANNEL_TYPE_HALF_FLOAT
Definition: pi.h:459
PI_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC
@ PI_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC
Definition: pi.h:250
_pi_image_format::image_channel_data_type
pi_image_channel_type image_channel_data_type
Definition: pi.h:901
piPluginGetLastError
pi_result piPluginGetLastError(char **message)
API to get Plugin specific warning and error messages.
Definition: pi_esimd_emulator.cpp:165
PI_QUEUE_INFO_CONTEXT
@ PI_QUEUE_INFO_CONTEXT
Definition: pi.h:316
pi_device_binaries_struct::DeviceBinaries
pi_device_binary DeviceBinaries
Device binaries data.
Definition: pi.h:871
PI_DEVICE_BINARY_TYPE_SPIRV
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_SPIRV
Definition: pi.h:695
PI_DEVICE_INFO_NAME
@ PI_DEVICE_INFO_NAME
Definition: pi.h:242
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:867
_pi_device_binary_property_set_struct
Definition: pi.h:679
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:1825
PI_DEVICE_INFO_IL_VERSION
@ PI_DEVICE_INFO_IL_VERSION
Definition: pi.h:241
PI_DEVICE_EXEC_CAPABILITIES_NATIVE_KERNEL
constexpr pi_device_exec_capabilities PI_DEVICE_EXEC_CAPABILITIES_NATIVE_KERNEL
Definition: pi.h:498
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:786
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:878
PI_IMAGE_CHANNEL_TYPE_UNORM_INT8
@ PI_IMAGE_CHANNEL_TYPE_UNORM_INT8
Definition: pi.h:448
PI_PROFILING_INFO_COMMAND_SUBMIT
@ PI_PROFILING_INFO_COMMAND_SUBMIT
Definition: pi.h:522
PI_MEMORY_ORDER_ACQUIRE
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_ACQUIRE
Definition: pi.h:508
PI_PROGRAM_INFO_BINARY_SIZES
@ PI_PROGRAM_INFO_BINARY_SIZES
Definition: pi.h:298
PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_LLVMIR_BITCODE
Definition: pi.h:697
_pi_plugin::FunctionPointers
Definition: pi.h:1796
PI_IMAGE_CHANNEL_ORDER_INTENSITY
@ PI_IMAGE_CHANNEL_ORDER_INTENSITY
Definition: pi.h:437
PI_MEM_FLAGS_HOST_PTR_COPY
constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_COPY
Definition: pi.h:537
PI_SAMPLER_ADDRESSING_MODE_REPEAT
@ PI_SAMPLER_ADDRESSING_MODE_REPEAT
Definition: pi.h:481
_pi_usm_type
_pi_usm_type
Definition: pi.h:1610
PI_SAMPLER_INFO_LOD_MIN
@ PI_SAMPLER_INFO_LOD_MIN
Definition: pi.h:475
_pi_image_format::image_channel_order
pi_image_channel_order image_channel_order
Definition: pi.h:900
PI_PROPERTY_TYPE_STRING
@ PI_PROPERTY_TYPE_STRING
Definition: pi.h:662
PI_MEM_ALLOC_SIZE
@ PI_MEM_ALLOC_SIZE
Definition: pi.h:1606
PI_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN
@ PI_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN
Definition: pi.h:254
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:1335
PI_DEVICE_INFO_IMAGE_SRGB
@ PI_DEVICE_INFO_IMAGE_SRGB
Definition: pi.h:274
_pi_image_desc::image_type
pi_mem_type image_type
Definition: pi.h:905
piProgramRetain
pi_result piProgramRetain(pi_program program)
Definition: pi_esimd_emulator.cpp:1331
_pi_plugin
Definition: pi.h:1784
_pi_offload_entry_struct::addr
void * addr
Definition: pi.h:648
PI_PROGRAM_INFO_SOURCE
@ PI_PROGRAM_INFO_SOURCE
Definition: pi.h:297
PI_IMAGE_INFO_FORMAT
@ PI_IMAGE_INFO_FORMAT
Definition: pi.h:345
_pi_device_local_mem_type
_pi_device_local_mem_type
Definition: pi.h:174
PI_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE
@ PI_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE
Definition: pi.h:220
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:814
PI_KERNEL_COMPILE_NUM_SUB_GROUPS
@ PI_KERNEL_COMPILE_NUM_SUB_GROUPS
Definition: pi.h:357
_pi_device_mem_cache_type
_pi_device_mem_cache_type
Definition: pi.h:168
_pi_mem_advice
_pi_mem_advice
Definition: pi.h:411
PI_COMMAND_TYPE_SVM_UNMAP
@ PI_COMMAND_TYPE_SVM_UNMAP
Definition: pi.h:398
PI_DEVICE_INFO_MAX_WORK_ITEM_SIZES
@ PI_DEVICE_INFO_MAX_WORK_ITEM_SIZES
Definition: pi.h:184
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:1567
_pi_device_binary_property_set_struct::Name
char * Name
Definition: pi.h:680
PI_DEVICE_INFO_MAX_COMPUTE_UNITS
@ PI_DEVICE_INFO_MAX_COMPUTE_UNITS
Definition: pi.h:182
_pi_device_binary_property_struct::Type
uint32_t Type
Definition: pi.h:672
sycl::_V1::info::event_command_status
event_command_status
Definition: info_desc.hpp:125
PI_MEM_ADVICE_CUDA_UNSET_PREFERRED_LOCATION
@ PI_MEM_ADVICE_CUDA_UNSET_PREFERRED_LOCATION
Definition: pi.h:417
pi_device_binary_struct::PropertySetsEnd
pi_device_binary_property_set PropertySetsEnd
Definition: pi.h:807
PI_EVENT_INFO_CONTEXT
@ PI_EVENT_INFO_CONTEXT
Definition: pi.h:363
_pi_plugin::PluginVersion
char PluginVersion[20]
Definition: pi.h:1794
PI_DEVICE_INFO_GPU_HW_THREADS_PER_EU
@ PI_DEVICE_INFO_GPU_HW_THREADS_PER_EU
Definition: pi.h:281
pi_device_binary_struct::BinaryStart
const unsigned char * BinaryStart
Pointer to the target code start.
Definition: pi.h:798
_pi_result
_pi_result
Definition: pi.h:110
PI_MEM_ADVICE_CUDA_UNSET_READ_MOSTLY
@ PI_MEM_ADVICE_CUDA_UNSET_READ_MOSTLY
Definition: pi.h:415
PI_PROFILING_INFO_COMMAND_QUEUED
@ PI_PROFILING_INFO_COMMAND_QUEUED
Definition: pi.h:521
pi_device_binary_struct::ManifestStart
const char * ManifestStart
Pointer to the manifest data start.
Definition: pi.h:794
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:992
piTearDown
pi_result piTearDown(void *PluginParameter)
API to notify that the plugin should clean up its resources.
Definition: pi_esimd_emulator.cpp:1970
PI_MEM_ADVICE_CUDA_UNSET_ACCESSED_BY_HOST
@ PI_MEM_ADVICE_CUDA_UNSET_ACCESSED_BY_HOST
Definition: pi.h:423
PI_MEM_ALLOC_INITIAL_PLACEMENT_DEVICE
constexpr pi_usm_mem_properties PI_MEM_ALLOC_INITIAL_PLACEMENT_DEVICE
Definition: pi.h:556
pi_context_properties
intptr_t pi_context_properties
Definition: pi.h:492
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:1630
PI_PROGRAM_BUILD_STATUS_IN_PROGRESS
@ PI_PROGRAM_BUILD_STATUS_IN_PROGRESS
Definition: pi.h:144
PI_SAMPLER_INFO_FILTER_MODE
@ PI_SAMPLER_INFO_FILTER_MODE
Definition: pi.h:473
PI_KERNEL_GROUP_INFO_WORK_GROUP_SIZE
@ PI_KERNEL_GROUP_INFO_WORK_GROUP_SIZE
Definition: pi.h:335
PI_IMAGE_CHANNEL_TYPE_SIGNED_INT8
@ PI_IMAGE_CHANNEL_TYPE_SIGNED_INT8
Definition: pi.h:453
piPluginInit
pi_result piPluginInit(pi_plugin *plugin_info)
Definition: pi_cuda.cpp:5323
PI_MEM_ADVICE_CUDA_SET_PREFERRED_LOCATION_HOST
@ PI_MEM_ADVICE_CUDA_SET_PREFERRED_LOCATION_HOST
Definition: pi.h:420
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:1468
PI_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
@ PI_CONTEXT_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
Definition: pi.h:311
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:444
PI_DEVICE_INFO_GPU_SLICES
@ PI_DEVICE_INFO_GPU_SLICES
Definition: pi.h:270
PI_IMAGE_CHANNEL_ORDER_RG
@ PI_IMAGE_CHANNEL_ORDER_RG
Definition: pi.h:430
piDeviceRetain
pi_result piDeviceRetain(pi_device device)
Definition: pi_esimd_emulator.cpp:572
PI_IMAGE_INFO_SLICE_PITCH
@ PI_IMAGE_INFO_SLICE_PITCH
Definition: pi.h:348
PI_DEVICE_INFO_MAX_MEM_ALLOC_SIZE
@ PI_DEVICE_INFO_MAX_MEM_ALLOC_SIZE
Definition: pi.h:206
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:157
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:859
piQueueRelease
pi_result piQueueRelease(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:964
PI_DEVICE_INFO_REFERENCE_COUNT
@ PI_DEVICE_INFO_REFERENCE_COUNT
Definition: pi.h:240
PI_MEMORY_SCOPE_WORK_ITEM
constexpr pi_memory_scope_capabilities PI_MEMORY_SCOPE_WORK_ITEM
Definition: pi.h:514
PI_MEM_ADVICE_UNKNOWN
@ PI_MEM_ADVICE_UNKNOWN
Definition: pi.h:424
PI_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT
@ PI_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT
Definition: pi.h:262
pi_device_binaries_struct
This struct is a record of all the device code that may be offloaded.
Definition: pi.h:863
pi_device_binary_struct::BinaryEnd
const unsigned char * BinaryEnd
Pointer to the target code end.
Definition: pi.h:800
PI_DEVICE_INFO_PLATFORM
@ PI_DEVICE_INFO_PLATFORM
Definition: pi.h:239
PI_COMMAND_TYPE_SVM_MAP
@ PI_COMMAND_TYPE_SVM_MAP
Definition: pi.h:397
PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE
@ PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE
Definition: pi.h:272
PI_MEM_SIZE
@ PI_MEM_SIZE
Definition: pi.h:920
PI_PROPERTY_TYPE_UNKNOWN
@ PI_PROPERTY_TYPE_UNKNOWN
Definition: pi.h:659
PI_IMAGE_CHANNEL_ORDER_RGBx
@ PI_IMAGE_CHANNEL_ORDER_RGBx
Definition: pi.h:441
PI_DEVICE_LOCAL_MEM_TYPE_LOCAL
@ PI_DEVICE_LOCAL_MEM_TYPE_LOCAL
Definition: pi.h:175
PI_PROGRAM_BUILD_INFO_OPTIONS
@ PI_PROGRAM_BUILD_INFO_OPTIONS
Definition: pi.h:135
PI_PROGRAM_BUILD_STATUS_SUCCESS
@ PI_PROGRAM_BUILD_STATUS_SUCCESS
Definition: pi.h:143
PI_COMMAND_TYPE_NATIVE_KERNEL
@ PI_COMMAND_TYPE_NATIVE_KERNEL
Definition: pi.h:384
sycl::_V1::length
float length(T p) __NOEXC
Definition: builtins.hpp:1032
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:823
PI_CONTEXT_INFO_PLATFORM
@ PI_CONTEXT_INFO_PLATFORM
Definition: pi.h:306
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:1370
PI_USM_INDIRECT_ACCESS
@ PI_USM_INDIRECT_ACCESS
indicates that the kernel might access data through USM ptrs
Definition: pi.h:1292
PI_IMAGE_CHANNEL_TYPE_SNORM_INT16
@ PI_IMAGE_CHANNEL_TYPE_SNORM_INT16
Definition: pi.h:447
PI_DEVICE_INFO_ADDRESS_BITS
@ PI_DEVICE_INFO_ADDRESS_BITS
Definition: pi.h:205
PI_EVENT_RUNNING
@ PI_EVENT_RUNNING
Definition: pi.h:120
_pi_image_desc::image_height
size_t image_height
Definition: pi.h:907
_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:73
PI_CONTEXT_INFO_NUM_DEVICES
@ PI_CONTEXT_INFO_NUM_DEVICES
Definition: pi.h:307
PI_DEVICE_TYPE_DEFAULT
@ PI_DEVICE_TYPE_DEFAULT
The default device available in the PI plugin.
Definition: pi.h:158
PI_IMAGE_CHANNEL_ORDER_BGRA
@ PI_IMAGE_CHANNEL_ORDER_BGRA
Definition: pi.h:434
PI_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE
@ PI_KERNEL_GROUP_INFO_PREFERRED_WORK_GROUP_SIZE_MULTIPLE
Definition: pi.h:338
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE
Definition: pi.h:195
PI_DEVICE_INFO_MAX_SAMPLERS
@ PI_DEVICE_INFO_MAX_SAMPLERS
Definition: pi.h:217
pi_image_offset_struct::y
size_t y
Definition: pi.h:843
PI_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE
@ PI_KERNEL_GROUP_INFO_LOCAL_MEM_SIZE
Definition: pi.h:337
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:1747
PI_DEVICE_INFO_MAX_NUM_SUB_GROUPS
@ PI_DEVICE_INFO_MAX_NUM_SUB_GROUPS
Definition: pi.h:256
_pi_usm_capability_query
_pi_usm_capability_query
Definition: pi.h:1588
PI_DEVICE_INFO_MEM_BASE_ADDR_ALIGN
@ PI_DEVICE_INFO_MEM_BASE_ADDR_ALIGN
Definition: pi.h:219
piSamplerCreate
pi_result piSamplerCreate(pi_context context, const pi_sampler_properties *sampler_properties, pi_sampler *result_sampler)
Definition: pi_esimd_emulator.cpp:1463
PI_QUEUE_ON_DEVICE_DEFAULT
constexpr pi_queue_properties PI_QUEUE_ON_DEVICE_DEFAULT
Definition: pi.h:570
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:1459
PI_DEVICE_INFO_BUILT_IN_KERNELS
@ PI_DEVICE_INFO_BUILT_IN_KERNELS
Definition: pi.h:238
_pi_offload_entry_struct::size
size_t size
Definition: pi.h:650
_pi_sampler_addressing_mode
_pi_sampler_addressing_mode
Definition: pi.h:479
piKernelRelease
pi_result piKernelRelease(pi_kernel kernel)
Definition: pi_esimd_emulator.cpp:1378
PI_DEVICE_INFO_USM_DEVICE_SUPPORT
@ PI_DEVICE_INFO_USM_DEVICE_SUPPORT
Definition: pi.h:260
PI_KERNEL_INFO_PROGRAM
@ PI_KERNEL_INFO_PROGRAM
Definition: pi.h:329
PI_COMMAND_TYPE_MAP_IMAGE
@ PI_COMMAND_TYPE_MAP_IMAGE
Definition: pi.h:387
PI_PLATFORM_INFO_NAME
@ PI_PLATFORM_INFO_NAME
Definition: pi.h:127
PI_FP_ROUND_TO_NEAREST
static constexpr pi_device_fp_config PI_FP_ROUND_TO_NEAREST
Definition: pi.h:633
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:1850
PI_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE
@ PI_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE
Definition: pi.h:216
_pi_image_desc::image_slice_pitch
size_t image_slice_pitch
Definition: pi.h:911
_pi_device_info
_pi_device_info
Definition: pi.h:179
PI_MEM_TYPE_DEVICE
@ PI_MEM_TYPE_DEVICE
Definition: pi.h:1613
PI_USM_ATOMIC_ACCESS
@ PI_USM_ATOMIC_ACCESS
Definition: pi.h:1598
pi_image_region_struct::width
size_t width
Definition: pi.h:851
PI_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE
@ PI_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE
Definition: pi.h:224
pi_image_offset_struct::x
size_t x
Definition: pi.h:842
_pi_image_info
_pi_image_info
Definition: pi.h:344
piEventSetStatus
pi_result piEventSetStatus(pi_event event, pi_int32 execution_status)
Definition: pi_esimd_emulator.cpp:1422
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:1845
PI_SAMPLER_PROPERTIES_ADDRESSING_MODE
constexpr pi_sampler_properties PI_SAMPLER_PROPERTIES_ADDRESSING_MODE
Definition: pi.h:503
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT
Definition: pi.h:192
PI_SAMPLER_FILTER_MODE_NEAREST
@ PI_SAMPLER_FILTER_MODE_NEAREST
Definition: pi.h:488
_pi_kernel
Implementation of a PI Kernel for CUDA.
Definition: pi_cuda.hpp:774
PI_DEVICE_INFO_ERROR_CORRECTION_SUPPORT
@ PI_DEVICE_INFO_ERROR_CORRECTION_SUPPORT
Definition: pi.h:228
PI_DEVICE_MEM_CACHE_TYPE_NONE
@ PI_DEVICE_MEM_CACHE_TYPE_NONE
Definition: pi.h:169
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:819
PI_DEVICE_INFO_IMAGE2D_MAX_HEIGHT
@ PI_DEVICE_INFO_IMAGE2D_MAX_HEIGHT
Definition: pi.h:211
PI_PROGRAM_BINARY_TYPE_NONE
@ PI_PROGRAM_BINARY_TYPE_NONE
Definition: pi.h:148
pi_buff_rect_offset_struct::y_scalar
size_t y_scalar
Definition: pi.h:825
PI_EVENT_INFO_COMMAND_TYPE
@ PI_EVENT_INFO_COMMAND_TYPE
Definition: pi.h:364
PI_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
constexpr pi_queue_properties PI_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
Definition: pi.h:567
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:873
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:1303
_pi_plugin::PiVersion
char PiVersion[20]
Definition: pi.h:1792
PI_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE
@ PI_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE
Definition: pi.h:222
PI_DEVICE_EXEC_CAPABILITIES_KERNEL
constexpr pi_device_exec_capabilities PI_DEVICE_EXEC_CAPABILITIES_KERNEL
Definition: pi.h:495
PI_COMMAND_TYPE_BARRIER
@ PI_COMMAND_TYPE_BARRIER
Definition: pi.h:391
PI_CONTEXT_INFO_DEVICES
@ PI_CONTEXT_INFO_DEVICES
Definition: pi.h:305
_pi_device_binary_property_set_struct::PropertiesBegin
pi_device_binary_property PropertiesBegin
Definition: pi.h:681
_pi_sampler_filter_mode
_pi_sampler_filter_mode
Definition: pi.h:487
_pi_queue_info
_pi_queue_info
Definition: pi.h:315
pi_buff_rect_region_struct::width_bytes
size_t width_bytes
Definition: pi.h:833
_pi_buffer_create_type
_pi_buffer_create_type
Definition: pi.h:463
PI_MEM_ACCESS_READ_ONLY
constexpr pi_mem_flags PI_MEM_ACCESS_READ_ONLY
Definition: pi.h:534
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:1922
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:1753
PI_MEM_ALLOC_DEVICE_READ_ONLY
constexpr pi_usm_mem_properties PI_MEM_ALLOC_DEVICE_READ_ONLY
Definition: pi.h:560
PI_PROGRAM_BINARY_TYPE_EXECUTABLE
@ PI_PROGRAM_BINARY_TYPE_EXECUTABLE
Definition: pi.h:151
export.hpp
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF
Definition: pi.h:203
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:1927
pi_device_binary_type
uint8_t pi_device_binary_type
Types of device binary.
Definition: pi.h:688
PI_DEVICE_BINARY_OFFLOAD_KIND_SYCL
static const uint8_t PI_DEVICE_BINARY_OFFLOAD_KIND_SYCL
Definition: pi.h:703
piQueueCreate
pi_result piQueueCreate(pi_context context, pi_device device, pi_queue_properties properties, pi_queue *queue)
Definition: pi_esimd_emulator.cpp:924
PI_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE
@ PI_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE
Definition: pi.h:215
PI_DEVICE_INFO_LOCAL_MEM_SIZE
@ PI_DEVICE_INFO_LOCAL_MEM_SIZE
Definition: pi.h:227
PI_MEMORY_ORDER_RELAXED
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_RELAXED
Definition: pi.h:507
PI_DEVICE_AFFINITY_DOMAIN_L3_CACHE
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_L3_CACHE
Definition: pi.h:620
PI_IMAGE_CHANNEL_ORDER_LUMINANCE
@ PI_IMAGE_CHANNEL_ORDER_LUMINANCE
Definition: pi.h:438
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:1339
PI_DEVICE_LOCAL_MEM_TYPE_GLOBAL
@ PI_DEVICE_LOCAL_MEM_TYPE_GLOBAL
Definition: pi.h:176
piEventsWait
pi_result piEventsWait(pi_uint32 num_events, const pi_event *event_list)
Definition: pi_esimd_emulator.cpp:1399
piContextRelease
pi_result piContextRelease(pi_context context)
Definition: pi_esimd_emulator.cpp:889
PI_USM_MIGRATION_TBD0
@ PI_USM_MIGRATION_TBD0
Definition: pi.h:1621
_pi_queue
PI queue mapping on to CUstream objects.
Definition: pi_cuda.hpp:393
PI_MEM_ADVICE_CUDA_SET_ACCESSED_BY
@ PI_MEM_ADVICE_CUDA_SET_ACCESSED_BY
Definition: pi.h:418
PI_MEM_ALLOC_INITIAL_PLACEMENT_HOST
constexpr pi_usm_mem_properties PI_MEM_ALLOC_INITIAL_PLACEMENT_HOST
Definition: pi.h:558
piProgramRelease
pi_result piProgramRelease(pi_program program)
Definition: pi_esimd_emulator.cpp:1333
PI_MEM_ADVICE_CUDA_SET_PREFERRED_LOCATION
@ PI_MEM_ADVICE_CUDA_SET_PREFERRED_LOCATION
Definition: pi.h:416
PI_IMAGE_CHANNEL_TYPE_SIGNED_INT16
@ PI_IMAGE_CHANNEL_TYPE_SIGNED_INT16
Definition: pi.h:454
_pi_device_binary_property_struct::ValAddr
void * ValAddr
Definition: pi.h:671
PI_IMAGE_CHANNEL_TYPE_SIGNED_INT32
@ PI_IMAGE_CHANNEL_TYPE_SIGNED_INT32
Definition: pi.h:455
pi_image_region_struct::depth
size_t depth
Definition: pi.h:853
pi_device_binaries_struct::HostEntriesBegin
_pi_offload_entry * HostEntriesBegin
the offload entry table (not used, for compatibility with OpenMP)
Definition: pi.h:873
PI_EXEC_KERNEL
static constexpr pi_device_exec_capabilities PI_EXEC_KERNEL
Definition: pi.h:643
PI_FALSE
const pi_bool PI_FALSE
Definition: pi.h:466
PI_MAP_READ
constexpr pi_map_flags PI_MAP_READ
Definition: pi.h:542
PI_DEVICE_TYPE_GPU
@ PI_DEVICE_TYPE_GPU
A PI device that is a GPU.
Definition: pi.h:162
pi_uint32
uint32_t pi_uint32
Definition: pi.h:99
_pi_image_desc::image_depth
size_t image_depth
Definition: pi.h:908
PI_COMMAND_TYPE_MEM_BUFFER_READ_RECT
@ PI_COMMAND_TYPE_MEM_BUFFER_READ_RECT
Definition: pi.h:376
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:1545
pi_buff_rect_region_struct
Definition: pi.h:832
piMemRelease
pi_result piMemRelease(pi_mem mem)
Definition: pi_esimd_emulator.cpp:1086
pi_device_binary_struct
This struct is a record of the device binary information.
Definition: pi.h:766
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:1573
piextContextSetExtendedDeleter
pi_result piextContextSetExtendedDeleter(pi_context context, pi_context_extended_deleter func, void *user_data)
Definition: pi_esimd_emulator.cpp:864
PI_DEVICE_INFO_LINKER_AVAILABLE
@ PI_DEVICE_INFO_LINKER_AVAILABLE
Definition: pi.h:234
PI_DEVICE_INFO_EXECUTION_CAPABILITIES
@ PI_DEVICE_INFO_EXECUTION_CAPABILITIES
Definition: pi.h:235
PI_DEVICE_INFO_PROFILING_TIMER_RESOLUTION
@ PI_DEVICE_INFO_PROFILING_TIMER_RESOLUTION
Definition: pi.h:230
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:792
_pi_kernel_exec_info
_pi_kernel_exec_info
Definition: pi.h:1290
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:1298
PI_MEM_TYPE_IMAGE2D
@ PI_MEM_TYPE_IMAGE2D
Definition: pi.h:403
PI_COMMAND_TYPE_IMAGE_COPY
@ PI_COMMAND_TYPE_IMAGE_COPY
Definition: pi.h:383
PI_FP_SOFT_FLOAT
static constexpr pi_device_fp_config PI_FP_SOFT_FLOAT
Definition: pi.h:637
PI_KERNEL_INFO_CONTEXT
@ PI_KERNEL_INFO_CONTEXT
Definition: pi.h:328
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:1553
PI_PROGRAM_BUILD_INFO_STATUS
@ PI_PROGRAM_BUILD_INFO_STATUS
Definition: pi.h:134
PI_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE
@ PI_DEVICE_MEM_CACHE_TYPE_READ_ONLY_CACHE
Definition: pi.h:170
pi_device_binaries_struct::NumDeviceBinaries
uint16_t NumDeviceBinaries
Number of device binaries in this descriptor.
Definition: pi.h:869
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:1285
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:1937
PI_DEVICE_INFO_HALF_FP_CONFIG
@ PI_DEVICE_INFO_HALF_FP_CONFIG
Definition: pi.h:187
PI_MEMORY_SCOPE_DEVICE
constexpr pi_memory_scope_capabilities PI_MEMORY_SCOPE_DEVICE
Definition: pi.h:517
PI_DEVICE_BINARY_TYPE_NATIVE
static constexpr pi_device_binary_type PI_DEVICE_BINARY_TYPE_NATIVE
Definition: pi.h:692
PI_IMAGE_CHANNEL_ORDER_R
@ PI_IMAGE_CHANNEL_ORDER_R
Definition: pi.h:429
PI_FP_DENORM
static constexpr pi_device_fp_config PI_FP_DENORM
Definition: pi.h:631
pi_mem_flags
pi_bitfield pi_mem_flags
Definition: pi.h:531
PI_MEMORY_SCOPE_SYSTEM
constexpr pi_memory_scope_capabilities PI_MEMORY_SCOPE_SYSTEM
Definition: pi.h:518
_pi_event_status
_pi_event_status
Definition: pi.h:118
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:1365
_pi_image_channel_order
_pi_image_channel_order
Definition: pi.h:427
PI_IMAGE_CHANNEL_TYPE_FLOAT
@ PI_IMAGE_CHANNEL_TYPE_FLOAT
Definition: pi.h:460
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:1670
PI_USM_CONCURRENT_ACCESS
@ PI_USM_CONCURRENT_ACCESS
Definition: pi.h:1599
PI_COMMAND_TYPE_SVM_MEMCPY
@ PI_COMMAND_TYPE_SVM_MEMCPY
Definition: pi.h:395
pi_property_type
pi_property_type
Definition: pi.h:658
PI_MEM_TYPE_SHARED
@ PI_MEM_TYPE_SHARED
Definition: pi.h:1614
PI_DEVICE_INFO_VENDOR
@ PI_DEVICE_INFO_VENDOR
Definition: pi.h:243
pi_context_extended_deleter
void(* pi_context_extended_deleter)(void *user_data)
Definition: pi.h:1056
PI_MEM_TYPE_IMAGE1D_ARRAY
@ PI_MEM_TYPE_IMAGE1D_ARRAY
Definition: pi.h:407
pi_device_binary_struct::Format
uint8_t Format
format of the binary data - SPIR-V, LLVM IR bitcode,...
Definition: pi.h:774
PI_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES
@ PI_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES
Definition: pi.h:236
PI_PROPERTY_TYPE_BYTE_ARRAY
@ PI_PROPERTY_TYPE_BYTE_ARRAY
Definition: pi.h:661
PI_DEVICE_TYPE_ACC
@ PI_DEVICE_TYPE_ACC
A PI device that is a dedicated accelerator.
Definition: pi.h:163
PI_KERNEL_GROUP_INFO_NUM_REGS
@ PI_KERNEL_GROUP_INFO_NUM_REGS
Definition: pi.h:341
PI_MEMORY_SCOPE_SUB_GROUP
constexpr pi_memory_scope_capabilities PI_MEMORY_SCOPE_SUB_GROUP
Definition: pi.h:515
PI_KERNEL_MAX_SUB_GROUP_SIZE
@ PI_KERNEL_MAX_SUB_GROUP_SIZE
Definition: pi.h:355
PI_IMAGE_INFO_DEPTH
@ PI_IMAGE_INFO_DEPTH
Definition: pi.h:351
piQueueRetain
pi_result piQueueRetain(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:956
PI_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT
@ PI_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT
Definition: pi.h:263
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT
Definition: pi.h:191
PI_MEMORY_ORDER_SEQ_CST
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_SEQ_CST
Definition: pi.h:511
PI_MEM_TYPE_BUFFER
@ PI_MEM_TYPE_BUFFER
Definition: pi.h:402
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:1482
PI_SAMPLER_INFO_CONTEXT
@ PI_SAMPLER_INFO_CONTEXT
Definition: pi.h:470
_pi_program_binary_type
_pi_program_binary_type
Definition: pi.h:147
piKernelRetain
pi_result piKernelRetain(pi_kernel kernel)
Definition: pi_esimd_emulator.cpp:1376
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:592
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:221
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG
Definition: pi.h:200
pi_device_binary_struct::Kind
uint8_t Kind
the type of offload model the binary employs; must be 4 for SYCL
Definition: pi.h:772
PI_MEMORY_ORDER_RELEASE
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_RELEASE
Definition: pi.h:509
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:1581
PI_DEVICE_INFO_USM_HOST_SUPPORT
@ PI_DEVICE_INFO_USM_HOST_SUPPORT
Definition: pi.h:259
piSamplerRetain
pi_result piSamplerRetain(pi_sampler sampler)
Definition: pi_esimd_emulator.cpp:1473
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:1965
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:1666
pi_device_binary_property_set
_pi_device_binary_property_set_struct * pi_device_binary_property_set
Definition: pi.h:685
PI_MEM_ADVICE_CUDA_SET_READ_MOSTLY
@ PI_MEM_ADVICE_CUDA_SET_READ_MOSTLY
Definition: pi.h:414
PI_MEM_FLAGS_HOST_PTR_USE
constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_USE
Definition: pi.h:536
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:1455
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT
Definition: pi.h:201
PI_PROGRAM_INFO_REFERENCE_COUNT
@ PI_PROGRAM_INFO_REFERENCE_COUNT
Definition: pi.h:293
PI_IMAGE_CHANNEL_ORDER_sRGBA
@ PI_IMAGE_CHANNEL_ORDER_sRGBA
Definition: pi.h:442
PI_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
static constexpr pi_device_partition_property PI_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
Definition: pi.h:612
piextPlatformCreateWithNativeHandle
pi_result piextPlatformCreateWithNativeHandle(pi_native_handle nativeHandle, pi_platform *platform)
Creates PI platform object from a native handle.
Definition: pi_esimd_emulator.cpp:480
PI_EXT_ONEAPI_DEVICE_INFO_BFLOAT16
@ PI_EXT_ONEAPI_DEVICE_INFO_BFLOAT16
Definition: pi.h:284
PI_MEM_TYPE_UNKNOWN
@ PI_MEM_TYPE_UNKNOWN
Definition: pi.h:1611
PI_DEVICE_INFO_PARENT_DEVICE
@ PI_DEVICE_INFO_PARENT_DEVICE
Definition: pi.h:251
PI_PLATFORM_INFO_VERSION
@ PI_PLATFORM_INFO_VERSION
Definition: pi.h:130
_pi_image_desc::buffer
pi_mem buffer
Definition: pi.h:914
PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16
@ PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT16
Definition: pi.h:457
PI_FP_ROUND_TO_INF
static constexpr pi_device_fp_config PI_FP_ROUND_TO_INF
Definition: pi.h:635
pi_uint64
uint64_t pi_uint64
Definition: pi.h:100
PI_COMMAND_TYPE_MEM_BUFFER_WRITE
@ PI_COMMAND_TYPE_MEM_BUFFER_WRITE
Definition: pi.h:372
PI_DEVICE_INFO_PARTITION_TYPE
@ PI_DEVICE_INFO_PARTITION_TYPE
Definition: pi.h:255
PI_COMMAND_TYPE_MEM_BUFFER_COPY
@ PI_COMMAND_TYPE_MEM_BUFFER_COPY
Definition: pi.h:373
_pi_event_info
_pi_event_info
Definition: pi.h:361
PI_MEM_PROPERTIES_ALLOC_BUFFER_LOCATION
constexpr pi_mem_properties PI_MEM_PROPERTIES_ALLOC_BUFFER_LOCATION
Definition: pi.h:549
pi_memory_scope_capabilities
pi_bitfield pi_memory_scope_capabilities
Definition: pi.h:513
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:1840
PI_IMAGE_INFO_WIDTH
@ PI_IMAGE_INFO_WIDTH
Definition: pi.h:349
_pi_sampler_info
_pi_sampler_info
Definition: pi.h:468
_pi_device_binary_property_struct
Definition: pi.h:669
pi_mem_properties
pi_bitfield pi_mem_properties
Definition: pi.h:547
pi_device_exec_capabilities
pi_bitfield pi_device_exec_capabilities
Definition: pi.h:494
_pi_program
Implementation of PI Program on CUDA Module object.
Definition: pi_cuda.hpp:719
PI_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
@ PI_CONTEXT_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
Definition: pi.h:312
PI_QUEUE_INFO_DEVICE
@ PI_QUEUE_INFO_DEVICE
Definition: pi.h:317
PI_PROGRAM_BUILD_STATUS_ERROR
@ PI_PROGRAM_BUILD_STATUS_ERROR
Definition: pi.h:142
_pi_sampler
Implementation of samplers for CUDA.
Definition: pi_cuda.hpp:945
PI_DEVICE_INFO_PRINTF_BUFFER_SIZE
@ PI_DEVICE_INFO_PRINTF_BUFFER_SIZE
Definition: pi.h:249
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE
Definition: pi.h:202
PI_COMMAND_TYPE_IMAGE_READ
@ PI_COMMAND_TYPE_IMAGE_READ
Definition: pi.h:381
sycl::_V1::info::device_type
device_type
Definition: info_desc.hpp:43
piextUSMGetMemAllocInfo
pi_result piextUSMGetMemAllocInfo(pi_context context, const void *ptr, pi_mem_alloc_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:1932
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:789
PI_USM_PTRS
@ PI_USM_PTRS
provides an explicit list of pointers that the kernel will access
Definition: pi.h:1294
piDeviceRelease
pi_result piDeviceRelease(pi_device device)
Definition: pi_esimd_emulator.cpp:582
PI_DEVICE_INFO_UUID
@ PI_DEVICE_INFO_UUID
Definition: pi.h:265
PI_PLATFORM_INFO_PROFILE
@ PI_PLATFORM_INFO_PROFILE
Definition: pi.h:128
PI_MEM_ADVICE_CUDA_UNSET_PREFERRED_LOCATION_HOST
@ PI_MEM_ADVICE_CUDA_UNSET_PREFERRED_LOCATION_HOST
Definition: pi.h:421
PI_KERNEL_MAX_NUM_SUB_GROUPS
@ PI_KERNEL_MAX_NUM_SUB_GROUPS
Definition: pi.h:356
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:1917
_pi_device_binary_property_struct::ValSize
uint64_t ValSize
Definition: pi.h:673
PI_DEVICE_INFO_MAX_CONSTANT_ARGS
@ PI_DEVICE_INFO_MAX_CONSTANT_ARGS
Definition: pi.h:225
PI_DEVICE_INFO_PCI_ADDRESS
@ PI_DEVICE_INFO_PCI_ADDRESS
Definition: pi.h:267
PI_PROPERTY_TYPE_UINT32
@ PI_PROPERTY_TYPE_UINT32
Definition: pi.h:660
pi_native_handle
uintptr_t pi_native_handle
Definition: pi.h:103
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT
Definition: pi.h:198
PI_DEVICE_INFO_GLOBAL_MEM_SIZE
@ PI_DEVICE_INFO_GLOBAL_MEM_SIZE
Definition: pi.h:223
piQueueFinish
pi_result piQueueFinish(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:978
piContextRetain
pi_result piContextRetain(pi_context context)
Definition: pi_esimd_emulator.cpp:879
PI_MEM_ADVICE_RESET
@ PI_MEM_ADVICE_RESET
Definition: pi.h:413
pi_sampler_properties
pi_bitfield pi_sampler_properties
Definition: pi.h:500
piextKernelSetArgSampler
pi_result piextKernelSetArgSampler(pi_kernel kernel, pi_uint32 arg_index, const pi_sampler *arg_value)
Definition: pi_esimd_emulator.cpp:1357
PI_KERNEL_INFO_FUNCTION_NAME
@ PI_KERNEL_INFO_FUNCTION_NAME
Definition: pi.h:325
PI_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE
@ PI_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE
Definition: pi.h:171
PI_MEM_FLAGS_ACCESS_RW
constexpr pi_mem_flags PI_MEM_FLAGS_ACCESS_RW
Definition: pi.h:533
piextKernelSetArgMemObj
pi_result piextKernelSetArgMemObj(pi_kernel kernel, pi_uint32 arg_index, const pi_mem *arg_value)
Definition: pi_esimd_emulator.cpp:1352
PI_IMAGE_CHANNEL_ORDER_RGx
@ PI_IMAGE_CHANNEL_ORDER_RGx
Definition: pi.h:440
PI_QUEUE_INFO_DEVICE_DEFAULT
@ PI_QUEUE_INFO_DEVICE_DEFAULT
Definition: pi.h:318
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:1153
_pi_image_format
Definition: pi.h:899
PI_EVENT_COMPLETE
@ PI_EVENT_COMPLETE
Definition: pi.h:119
PI_IMAGE_CHANNEL_TYPE_UNORM_INT_101010
@ PI_IMAGE_CHANNEL_TYPE_UNORM_INT_101010
Definition: pi.h:452
PI_COMMAND_TYPE_NDRANGE_KERNEL
@ PI_COMMAND_TYPE_NDRANGE_KERNEL
Definition: pi.h:370
_pi_plugin::Targets
char * Targets
Definition: pi.h:1795
PI_PLATFORM_INFO_VENDOR
@ PI_PLATFORM_INFO_VENDOR
Definition: pi.h:129
_pi_kernel_info
_pi_kernel_info
Definition: pi.h:324
PI_MEM_ALLOC_FLAGS
constexpr pi_usm_mem_properties PI_MEM_ALLOC_FLAGS
Definition: pi.h:554
PI_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT
@ PI_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT
Definition: pi.h:261
piPlatformsGet
pi_result piPlatformsGet(pi_uint32 num_entries, pi_platform *platforms, pi_uint32 *num_platforms)
Definition: pi_esimd_emulator.cpp:401
PI_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
@ PI_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES
Definition: pi.h:280
PI_IMAGE_CHANNEL_ORDER_RGBA
@ PI_IMAGE_CHANNEL_ORDER_RGBA
Definition: pi.h:433
PI_MEMORY_SCOPE_WORK_GROUP
constexpr pi_memory_scope_capabilities PI_MEMORY_SCOPE_WORK_GROUP
Definition: pi.h:516
PI_DEVICE_TYPE_CPU
@ PI_DEVICE_TYPE_CPU
A PI device that is the host processor.
Definition: pi.h:161
PI_MEM_ALLOC_BASE_PTR
@ PI_MEM_ALLOC_BASE_PTR
Definition: pi.h:1605
PI_DEVICE_INFO_QUEUE_PROPERTIES
@ PI_DEVICE_INFO_QUEUE_PROPERTIES
Definition: pi.h:189
PI_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES
@ PI_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES
Definition: pi.h:253
PI_SAMPLER_INFO_MIP_FILTER_MODE
@ PI_SAMPLER_INFO_MIP_FILTER_MODE
Definition: pi.h:474
PI_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE
@ PI_SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE
Definition: pi.h:482
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_3D
Definition: pi.h:288
PI_PROGRAM_INFO_KERNEL_NAMES
@ PI_PROGRAM_INFO_KERNEL_NAMES
Definition: pi.h:301
PI_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE
@ PI_KERNEL_GROUP_INFO_GLOBAL_WORK_SIZE
Definition: pi.h:334
PI_QUEUE_INFO_SIZE
@ PI_QUEUE_INFO_SIZE
Definition: pi.h:321
PI_MEM_TYPE_IMAGE1D_BUFFER
@ PI_MEM_TYPE_IMAGE1D_BUFFER
Definition: pi.h:408
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:1587
PI_SAMPLER_ADDRESSING_MODE_NONE
@ PI_SAMPLER_ADDRESSING_MODE_NONE
Definition: pi.h:484
PI_IMAGE_CHANNEL_ORDER_ABGR
@ PI_IMAGE_CHANNEL_ORDER_ABGR
Definition: pi.h:436
PI_MEM_CONTEXT
@ PI_MEM_CONTEXT
Definition: pi.h:920
PI_EVENT_QUEUED
@ PI_EVENT_QUEUED
Definition: pi.h:122
PI_PROGRAM_BINARY_TYPE_COMPILED_OBJECT
@ PI_PROGRAM_BINARY_TYPE_COMPILED_OBJECT
Definition: pi.h:149
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:1272
PI_DEVICE_TYPE_CUSTOM
@ PI_DEVICE_TYPE_CUSTOM
A PI device that is a custom device.
Definition: pi.h:165
pi_buffer_region_struct::size
size_t size
Definition: pi.h:817
_pi_image_desc::image_width
size_t image_width
Definition: pi.h:906
PI_DEVICE_INFO_SINGLE_FP_CONFIG
@ PI_DEVICE_INFO_SINGLE_FP_CONFIG
Definition: pi.h:186
PI_COMMAND_TYPE_MEM_BUFFER_WRITE_RECT
@ PI_COMMAND_TYPE_MEM_BUFFER_WRITE_RECT
Definition: pi.h:377
pi_device_fp_config
pi_bitfield pi_device_fp_config
Definition: pi.h:630
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:1487
_pi_image_channel_type
_pi_image_channel_type
Definition: pi.h:445
PI_DEVICE_INFO_BUILD_ON_SUBDEVICE
@ PI_DEVICE_INFO_BUILD_ON_SUBDEVICE
Definition: pi.h:276
PI_USM_SYSTEM_SHARED_SUPPORT
@ PI_USM_SYSTEM_SHARED_SUPPORT
Definition: pi.h:1593
PI_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS
@ PI_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS
Definition: pi.h:183
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:1361
PI_DEVICE_INFO_LOCAL_MEM_TYPE
@ PI_DEVICE_INFO_LOCAL_MEM_TYPE
Definition: pi.h:226
PI_DEVICE_INFO_IMAGE3D_MAX_DEPTH
@ PI_DEVICE_INFO_IMAGE3D_MAX_DEPTH
Definition: pi.h:214
PI_DEVICE_INFO_COMPILER_AVAILABLE
@ PI_DEVICE_INFO_COMPILER_AVAILABLE
Definition: pi.h:233
PI_EXT_ONEAPI_DEVICE_INFO_CUDA_ASYNC_BARRIER
@ PI_EXT_ONEAPI_DEVICE_INFO_CUDA_ASYNC_BARRIER
Definition: pi.h:289
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:1382
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:1477
PI_FP_FMA
static constexpr pi_device_fp_config PI_FP_FMA
Definition: pi.h:636
piMemRetain
pi_result piMemRetain(pi_mem mem)
Definition: pi_esimd_emulator.cpp:1078
pi_image_offset_struct::z
size_t z
Definition: pi.h:844
PI_DEVICE_INFO_VERSION
@ PI_DEVICE_INFO_VERSION
Definition: pi.h:246
pi_buffer_region_struct::origin
size_t origin
Definition: pi.h:816
PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
@ PI_DEVICE_INFO_MAX_MEM_BANDWIDTH
Definition: pi.h:273
PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8
@ PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT8
Definition: pi.h:456
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:1959
PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32
@ PI_IMAGE_CHANNEL_TYPE_UNSIGNED_INT32
Definition: pi.h:458
PI_MEMORY_ORDER_ACQ_REL
constexpr pi_memory_order_capabilities PI_MEMORY_ORDER_ACQ_REL
Definition: pi.h:510
pi_queue_properties
pi_bitfield pi_queue_properties
Definition: pi.h:566
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_2D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_2D
Definition: pi.h:287
PI_DEVICE_INFO_ATOMIC_64
@ PI_DEVICE_INFO_ATOMIC_64
Definition: pi.h:278
_pi_image_desc::image_row_pitch
size_t image_row_pitch
Definition: pi.h:910
PI_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS
@ PI_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS
Definition: pi.h:209
_pi_platform_info
_pi_platform_info
Definition: pi.h:125
PI_DEVICE_AFFINITY_DOMAIN_NUMA
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_NUMA
Definition: pi.h:616
PI_DEVICE_INFO_BACKEND_VERSION
@ PI_DEVICE_INFO_BACKEND_VERSION
Definition: pi.h:282
PI_MEM_FLAGS_HOST_PTR_ALLOC
constexpr pi_mem_flags PI_MEM_FLAGS_HOST_PTR_ALLOC
Definition: pi.h:538
piEventCreate
pi_result piEventCreate(pi_context context, pi_event *ret_event)
Definition: pi_esimd_emulator.cpp:1380
PI_MEM_PROPERTIES_CHANNEL
constexpr pi_mem_properties PI_MEM_PROPERTIES_CHANNEL
Definition: pi.h:548
pi_buffer_region_struct
Definition: pi.h:815
PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555
@ PI_IMAGE_CHANNEL_TYPE_UNORM_SHORT_555
Definition: pi.h:451
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:435
piEventRetain
pi_result piEventRetain(pi_event event)
Definition: pi_esimd_emulator.cpp:1424
_pi_image_desc
Definition: pi.h:904
PI_COMMAND_TYPE_MEM_BUFFER_FILL
@ PI_COMMAND_TYPE_MEM_BUFFER_FILL
Definition: pi.h:380
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:476
PI_DEVICE_INFO_ENDIAN_LITTLE
@ PI_DEVICE_INFO_ENDIAN_LITTLE
Definition: pi.h:231
PI_PROGRAM_BUILD_STATUS_NONE
@ PI_PROGRAM_BUILD_STATUS_NONE
Definition: pi.h:141
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:952
PI_USM_DEVICE_SUPPORT
@ PI_USM_DEVICE_SUPPORT
Definition: pi.h:1590
_pi_event
PI Event mapping to CUevent.
Definition: pi_cuda.hpp:591
PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT
@ PI_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT
Definition: pi.h:199
PI_DEVICE_INFO_MAX_READ_IMAGE_ARGS
@ PI_DEVICE_INFO_MAX_READ_IMAGE_ARGS
Definition: pi.h:208
pi_device_binary_property
_pi_device_binary_property_struct * pi_device_binary_property
Definition: pi.h:676
PI_FP_INF_NAN
static constexpr pi_device_fp_config PI_FP_INF_NAN
Definition: pi.h:632
PI_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE
@ PI_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE
Definition: pi.h:271
PI_COMMAND_TYPE_MIGRATE_MEM_OBJECTS
@ PI_COMMAND_TYPE_MIGRATE_MEM_OBJECTS
Definition: pi.h:392
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:1001
PI_COMMAND_TYPE_RELEASE_GL_OBJECTS
@ PI_COMMAND_TYPE_RELEASE_GL_OBJECTS
Definition: pi.h:390
PI_EXEC_NATIVE_KERNEL
static constexpr pi_device_exec_capabilities PI_EXEC_NATIVE_KERNEL
Definition: pi.h:644
PI_MAP_WRITE_INVALIDATE_REGION
constexpr pi_map_flags PI_MAP_WRITE_INVALIDATE_REGION
Definition: pi.h:544
PI_SAMPLER_INFO_REFERENCE_COUNT
@ PI_SAMPLER_INFO_REFERENCE_COUNT
Definition: pi.h:469
PI_MEM_TYPE_IMAGE2D_ARRAY
@ PI_MEM_TYPE_IMAGE2D_ARRAY
Definition: pi.h:405
PI_BUFFER_CREATE_TYPE_REGION
@ PI_BUFFER_CREATE_TYPE_REGION
Definition: pi.h:463
PI_DEVICE_AFFINITY_DOMAIN_L1_CACHE
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_L1_CACHE
Definition: pi.h:624
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:1559
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:1835
PI_DEVICE_AFFINITY_DOMAIN_L2_CACHE
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_L2_CACHE
Definition: pi.h:622
PI_EVENT_INFO_COMMAND_QUEUE
@ PI_EVENT_INFO_COMMAND_QUEUE
Definition: pi.h:362
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:484
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:770
PI_IMAGE_CHANNEL_ORDER_RA
@ PI_IMAGE_CHANNEL_ORDER_RA
Definition: pi.h:431
PI_IMAGE_INFO_ELEMENT_SIZE
@ PI_IMAGE_INFO_ELEMENT_SIZE
Definition: pi.h:346
piProgramCreate
pi_result piProgramCreate(pi_context context, const void *il, size_t length, pi_program *res_program)
Definition: pi_esimd_emulator.cpp:1281
_pi_mem_info
_pi_mem_info
Definition: pi.h:920
PI_DEVICE_PARTITION_BY_COUNTS_LIST_END
static constexpr pi_device_partition_property PI_DEVICE_PARTITION_BY_COUNTS_LIST_END
Definition: pi.h:610
pi_image_offset_struct
Definition: pi.h:841
piProgramGetBuildInfo
pi_result piProgramGetBuildInfo(pi_program program, pi_device device, _pi_program_build_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi_esimd_emulator.cpp:1326
PI_DEVICE_PARTITION_BY_COUNTS
static constexpr pi_device_partition_property PI_DEVICE_PARTITION_BY_COUNTS
Definition: pi.h:607
PI_USM_CROSS_SHARED_SUPPORT
@ PI_USM_CROSS_SHARED_SUPPORT
Definition: pi.h:1592
pi_buff_rect_offset_struct::z_scalar
size_t z_scalar
Definition: pi.h:826
piextMemCreateWithNativeHandle
pi_result piextMemCreateWithNativeHandle(pi_native_handle nativeHandle, pi_context context, bool ownNativeHandle, pi_mem *mem)
Creates PI mem object from a native handle.
Definition: pi_esimd_emulator.cpp:1276
PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_WORK_GROUPS_1D
Definition: pi.h:286
PI_COMMAND_TYPE_SVM_MEMFILL
@ PI_COMMAND_TYPE_SVM_MEMFILL
Definition: pi.h:396
PI_SAMPLER_PROPERTIES_FILTER_MODE
constexpr pi_sampler_properties PI_SAMPLER_PROPERTIES_FILTER_MODE
Definition: pi.h:504
PI_DEVICE_INFO_VENDOR_ID
@ PI_DEVICE_INFO_VENDOR_ID
Definition: pi.h:181
PI_MEM_ALLOC_DEVICE
@ PI_MEM_ALLOC_DEVICE
Definition: pi.h:1607
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:1913
PI_COMMAND_TYPE_MARKER
@ PI_COMMAND_TYPE_MARKER
Definition: pi.h:388
PI_COMMAND_TYPE_MEM_BUFFER_READ
@ PI_COMMAND_TYPE_MEM_BUFFER_READ
Definition: pi.h:371
pi_image_region_struct
Definition: pi.h:850
PI_DEVICE_INFO_EXTENSIONS
@ PI_DEVICE_INFO_EXTENSIONS
Definition: pi.h:248
PI_COMMAND_TYPE_SVM_FREE
@ PI_COMMAND_TYPE_SVM_FREE
Definition: pi.h:394
PI_COMMAND_TYPE_ACQUIRE_GL_OBJECTS
@ PI_COMMAND_TYPE_ACQUIRE_GL_OBJECTS
Definition: pi.h:389
PI_COMMAND_TYPE_COPY_BUFFER_TO_IMAGE
@ PI_COMMAND_TYPE_COPY_BUFFER_TO_IMAGE
Definition: pi.h:385
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT
Definition: pi.h:194
piQueueFlush
pi_result piQueueFlush(pi_queue command_queue)
Definition: pi_esimd_emulator.cpp:985
PI_DEVICE_TYPE_ALL
@ PI_DEVICE_TYPE_ALL
All devices available in the PI plugin.
Definition: pi.h:160
PI_SAMPLER_PROPERTIES_NORMALIZED_COORDS
constexpr pi_sampler_properties PI_SAMPLER_PROPERTIES_NORMALIZED_COORDS
Definition: pi.h:501
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:1947
_pi_usm_migration_flags
_pi_usm_migration_flags
Definition: pi.h:1620
PI_CONTEXT_INFO_PROPERTIES
@ PI_CONTEXT_INFO_PROPERTIES
Definition: pi.h:308
PI_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
static constexpr pi_device_fp_config PI_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
Definition: pi.h:638
PI_IMAGE_CHANNEL_ORDER_RGB
@ PI_IMAGE_CHANNEL_ORDER_RGB
Definition: pi.h:432
_pi_device_binary_property_set_struct::PropertiesEnd
pi_device_binary_property PropertiesEnd
Definition: pi.h:682
_pi_program_build_status
_pi_program_build_status
Definition: pi.h:140
PI_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES
@ PI_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES
Definition: pi.h:237
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:1829
_pi_offload_entry_struct::flags
int32_t flags
Definition: pi.h:651
PI_PROGRAM_INFO_NUM_KERNELS
@ PI_PROGRAM_INFO_NUM_KERNELS
Definition: pi.h:300
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:869
PI_DEVICE_INFO_TYPE
@ PI_DEVICE_INFO_TYPE
Definition: pi.h:180
PI_DEVICE_INFO_MAX_WORK_GROUP_SIZE
@ PI_DEVICE_INFO_MAX_WORK_GROUP_SIZE
Definition: pi.h:185
PI_CONTEXT_INFO_REFERENCE_COUNT
@ PI_CONTEXT_INFO_REFERENCE_COUNT
Definition: pi.h:309
_pi_program_info
_pi_program_info
Definition: pi.h:292
_pi_profiling_info
_pi_profiling_info
Definition: pi.h:520
_pi_plugin::PiFunctionTable
struct _pi_plugin::FunctionPointers PiFunctionTable
pi_device_affinity_domain
pi_bitfield pi_device_affinity_domain
Definition: pi.h:615
PI_DEVICE_INFO_IMAGE_SUPPORT
@ PI_DEVICE_INFO_IMAGE_SUPPORT
Definition: pi.h:207
PI_COMMAND_TYPE_COPY_IMAGE_TO_BUFFER
@ PI_COMMAND_TYPE_COPY_IMAGE_TO_BUFFER
Definition: pi.h:386
PI_MEM_ADVICE_CUDA_UNSET_ACCESSED_BY
@ PI_MEM_ADVICE_CUDA_UNSET_ACCESSED_BY
Definition: pi.h:419
pi_device_binary_struct::EntriesEnd
_pi_offload_entry EntriesEnd
Definition: pi.h:803
PI_QUEUE_ON_DEVICE
constexpr pi_queue_properties PI_QUEUE_ON_DEVICE
Definition: pi.h:569
PI_DEVICE_INFO_MAX_PARAMETER_SIZE
@ PI_DEVICE_INFO_MAX_PARAMETER_SIZE
Definition: pi.h:218
PI_MEM_ADVICE_CUDA_SET_ACCESSED_BY_HOST
@ PI_MEM_ADVICE_CUDA_SET_ACCESSED_BY_HOST
Definition: pi.h:422
PI_EVENT_INFO_COMMAND_EXECUTION_STATUS
@ PI_EVENT_INFO_COMMAND_EXECUTION_STATUS
Definition: pi.h:365
PI_PROGRAM_INFO_DEVICES
@ PI_PROGRAM_INFO_DEVICES
Definition: pi.h:296
PI_MEM_ALLOC_WRTITE_COMBINED
constexpr pi_usm_mem_properties PI_MEM_ALLOC_WRTITE_COMBINED
Definition: pi.h:555
PI_SAMPLER_FILTER_MODE_LINEAR
@ PI_SAMPLER_FILTER_MODE_LINEAR
Definition: pi.h:489
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:1741
_pi_kernel_group_info
_pi_kernel_group_info
Definition: pi.h:333
PI_DEVICE_INFO_SUB_GROUP_SIZES_INTEL
@ PI_DEVICE_INFO_SUB_GROUP_SIZES_INTEL
Definition: pi.h:258
PI_QUEUE_INFO_REFERENCE_COUNT
@ PI_QUEUE_INFO_REFERENCE_COUNT
Definition: pi.h:320
PI_PROGRAM_INFO_NUM_DEVICES
@ PI_PROGRAM_INFO_NUM_DEVICES
Definition: pi.h:295
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF
Definition: pi.h:196
pfn_notify
void(* pfn_notify)(pi_event event, pi_int32 eventCommandStatus, void *userData)
Definition: pi_cuda.hpp:587
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:1942
pi_buff_rect_offset_struct::x_bytes
size_t x_bytes
Definition: pi.h:824
pi_device_binary_struct::ManifestEnd
const char * ManifestEnd
Pointer to the manifest data end.
Definition: pi.h:796
PI_PROGRAM_BINARY_TYPE_LIBRARY
@ PI_PROGRAM_BINARY_TYPE_LIBRARY
Definition: pi.h:150
PI_IMAGE_INFO_HEIGHT
@ PI_IMAGE_INFO_HEIGHT
Definition: pi.h:350
PI_MEM_TYPE_HOST
@ PI_MEM_TYPE_HOST
Definition: pi.h:1612
_pi_command_type
_pi_command_type
Definition: pi.h:369
piSamplerRelease
pi_result piSamplerRelease(pi_sampler sampler)
Definition: pi_esimd_emulator.cpp:1475
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:1820
PI_MEM_USM_ALLOC_BUFFER_LOCATION
constexpr pi_usm_mem_properties PI_MEM_USM_ALLOC_BUFFER_LOCATION
Definition: pi.h:562
pi_memory_order_capabilities
pi_bitfield pi_memory_order_capabilities
Definition: pi.h:506
_pi_offload_entry_struct::name
char * name
Definition: pi.h:649
PI_PROFILING_INFO_COMMAND_END
@ PI_PROFILING_INFO_COMMAND_END
Definition: pi.h:524
PI_SAMPLER_INFO_NORMALIZED_COORDS
@ PI_SAMPLER_INFO_NORMALIZED_COORDS
Definition: pi.h:471
_pi_mem_alloc_info
_pi_mem_alloc_info
Definition: pi.h:1603
PI_DEVICE_INFO_MAX_CLOCK_FREQUENCY
@ PI_DEVICE_INFO_MAX_CLOCK_FREQUENCY
Definition: pi.h:204
PI_DEVICE_INFO_IMAGE2D_MAX_WIDTH
@ PI_DEVICE_INFO_IMAGE2D_MAX_WIDTH
Definition: pi.h:210
PI_TRUE
const pi_bool PI_TRUE
Definition: pi.h:465
PI_DEVICE_INFO_AVAILABLE
@ PI_DEVICE_INFO_AVAILABLE
Definition: pi.h:232
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:1735
_pi_image_desc::num_mip_levels
pi_uint32 num_mip_levels
Definition: pi.h:912
PI_PROGRAM_INFO_CONTEXT
@ PI_PROGRAM_INFO_CONTEXT
Definition: pi.h:294
pi_usm_mem_properties
pi_bitfield pi_usm_mem_properties
Definition: pi.h:553
pi_map_flags
pi_bitfield pi_map_flags
Definition: pi.h:541
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:874
PI_DEVICE_INFO_IMAGE3D_MAX_HEIGHT
@ PI_DEVICE_INFO_IMAGE3D_MAX_HEIGHT
Definition: pi.h:213
PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH
@ PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH
Definition: pi.h:269
_pi_program_build_info
_pi_program_build_info
Definition: pi.h:133
PI_COMMAND_TYPE_FILL_IMAGE
@ PI_COMMAND_TYPE_FILL_IMAGE
Definition: pi.h:393
PI_MEM_TYPE_IMAGE3D
@ PI_MEM_TYPE_IMAGE3D
Definition: pi.h:404
pi_bitfield
pi_uint64 pi_bitfield
Definition: pi.h:102
PI_PROGRAM_BUILD_INFO_BINARY_TYPE
@ PI_PROGRAM_BUILD_INFO_BINARY_TYPE
Definition: pi.h:137
PI_USM_CONCURRENT_ATOMIC_ACCESS
@ PI_USM_CONCURRENT_ATOMIC_ACCESS
Definition: pi.h:1600
PI_EVENT_INFO_REFERENCE_COUNT
@ PI_EVENT_INFO_REFERENCE_COUNT
Definition: pi.h:366
PI_MEM_ALLOC_TYPE
@ PI_MEM_ALLOC_TYPE
Definition: pi.h:1604
PI_IMAGE_CHANNEL_TYPE_SNORM_INT8
@ PI_IMAGE_CHANNEL_TYPE_SNORM_INT8
Definition: pi.h:446
PI_COMMAND_TYPE_MEM_BUFFER_MAP
@ PI_COMMAND_TYPE_MEM_BUFFER_MAP
Definition: pi.h:374
pi_device_partition_property
intptr_t pi_device_partition_property
Definition: pi.h:604
piextQueueCreateWithNativeHandle
pi_result piextQueueCreateWithNativeHandle(pi_native_handle nativeHandle, pi_context context, pi_device device, bool pluginOwnsNativeHandle, pi_queue *queue)
Creates PI queue object from a native handle.
Definition: pi_esimd_emulator.cpp:996
PI_FP_ROUND_TO_ZERO
static constexpr pi_device_fp_config PI_FP_ROUND_TO_ZERO
Definition: pi.h:634
PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG
@ PI_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG
Definition: pi.h:193
PI_PROGRAM_BUILD_INFO_LOG
@ PI_PROGRAM_BUILD_INFO_LOG
Definition: pi.h:136
PI_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
@ PI_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL
Definition: pi.h:358
PI_COMMAND_TYPE_MEM_BUFFER_COPY_RECT
@ PI_COMMAND_TYPE_MEM_BUFFER_COPY_RECT
Definition: pi.h:378
PI_COMMAND_TYPE_IMAGE_WRITE
@ PI_COMMAND_TYPE_IMAGE_WRITE
Definition: pi.h:382
PI_QUEUE_PROFILING_ENABLE
constexpr pi_queue_properties PI_QUEUE_PROFILING_ENABLE
Definition: pi.h:568
PI_SAMPLER_INFO_LOD_MAX
@ PI_SAMPLER_INFO_LOD_MAX
Definition: pi.h:476
PI_EVENT_SUBMITTED
@ PI_EVENT_SUBMITTED
Definition: pi.h:121
PI_PROGRAM_INFO_BINARIES
@ PI_PROGRAM_INFO_BINARIES
Definition: pi.h:299
PI_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE
@ PI_KERNEL_GROUP_INFO_PRIVATE_MEM_SIZE
Definition: pi.h:339
PI_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE
@ PI_KERNEL_GROUP_INFO_COMPILE_WORK_GROUP_SIZE
Definition: pi.h:336
PI_USM_HOST_SUPPORT
@ PI_USM_HOST_SUPPORT
Definition: pi.h:1589
pi_int32
int32_t pi_int32
Definition: pi.h:98
_pi_context
PI context mapping to a CUDA context object.
Definition: pi_cuda.hpp:160
PI_DEVICE_BINARIES_VERSION
static const uint16_t PI_DEVICE_BINARIES_VERSION
Definition: pi.h:858
PI_IMAGE_CHANNEL_TYPE_UNORM_INT16
@ PI_IMAGE_CHANNEL_TYPE_UNORM_INT16
Definition: pi.h:449
PI_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
static constexpr pi_device_affinity_domain PI_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
Definition: pi.h:627
PI_QUEUE_INFO_PROPERTIES
@ PI_QUEUE_INFO_PROPERTIES
Definition: pi.h:319
_pi_device
PI device mapping to a CUdevice.
Definition: pi_cuda.hpp:83
PI_DEVICE_INFO_PARTITION_PROPERTIES
@ PI_DEVICE_INFO_PARTITION_PROPERTIES
Definition: pi.h:252
PI_IMAGE_CHANNEL_ORDER_Rx
@ PI_IMAGE_CHANNEL_ORDER_Rx
Definition: pi.h:439
PI_USM_SINGLE_SHARED_SUPPORT
@ PI_USM_SINGLE_SHARED_SUPPORT
Definition: pi.h:1591
_pi_kernel_sub_group_info
_pi_kernel_sub_group_info
Definition: pi.h:354
PI_PLATFORM_INFO_EXTENSIONS
@ PI_PLATFORM_INFO_EXTENSIONS
Definition: pi.h:126
PI_COMMAND_TYPE_MEM_BUFFER_UNMAP
@ PI_COMMAND_TYPE_MEM_BUFFER_UNMAP
Definition: pi.h:375
PI_KERNEL_INFO_NUM_ARGS
@ PI_KERNEL_INFO_NUM_ARGS
Definition: pi.h:326
PI_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS
@ PI_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS
Definition: pi.h:257
PI_SAMPLER_INFO_ADDRESSING_MODE
@ PI_SAMPLER_INFO_ADDRESSING_MODE
Definition: pi.h:472
PI_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
@ PI_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES
Definition: pi.h:279
PI_SAMPLER_ADDRESSING_MODE_CLAMP
@ PI_SAMPLER_ADDRESSING_MODE_CLAMP
Definition: pi.h:483
pi_device_binary_struct::PropertySetsBegin
pi_device_binary_property_set PropertySetsBegin
Definition: pi.h:806
PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
@ PI_EXT_ONEAPI_DEVICE_INFO_MAX_GLOBAL_WORK_GROUPS
Definition: pi.h:285
pi_device_binary_struct::EntriesBegin
_pi_offload_entry EntriesBegin
the offload entry table
Definition: pi.h:802