DPC++ Runtime
Runtime libraries for oneAPI DPC++
pi_hip.cpp
Go to the documentation of this file.
1 //==---------- pi_hip.cpp - HIP Plugin ------------------------------------==//
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 
13 
14 #include <pi_hip.hpp>
15 #include <sycl/detail/defines.hpp>
17 #include <sycl/detail/pi.hpp>
18 
19 #include <algorithm>
20 #include <cassert>
21 #include <chrono>
22 #include <hip/hip_runtime.h>
23 #include <limits>
24 #include <memory>
25 #include <mutex>
26 #include <regex>
27 #include <string.h>
28 #include <string_view>
29 
30 //-- PI API implementation
31 extern "C" {
32 
34  pi_uint32 *NumPlatforms) {
35  return pi2ur::piPlatformsGet(NumEntries, Platforms, NumPlatforms);
36 }
37 
39  size_t ParamValueSize, void *ParamValue,
40  size_t *ParamValueSizeRet) {
41  return pi2ur::piPlatformGetInfo(Platform, ParamName, ParamValueSize,
42  ParamValue, ParamValueSizeRet);
43 }
44 
46  pi_native_handle *NativeHandle) {
47  return pi2ur::piextPlatformGetNativeHandle(Platform, NativeHandle);
48 }
49 
51  pi_platform *Platform) {
52  return pi2ur::piextPlatformCreateWithNativeHandle(NativeHandle, Platform);
53 }
54 
56  return pi2ur::piPluginGetLastError(message);
57 }
58 
60  const char *frontend_option,
61  const char **backend_option) {
62  return pi2ur::piPluginGetBackendOption(platform, frontend_option,
63  backend_option);
64 }
65 
67  pi_uint32 NumEntries, pi_device *Devices,
68  pi_uint32 *NumDevices) {
69  return pi2ur::piDevicesGet(Platform, DeviceType, NumEntries, Devices,
70  NumDevices);
71 }
72 
74  return pi2ur::piDeviceRetain(Device);
75 }
76 
78  return pi2ur::piDeviceRelease(Device);
79 }
80 
82  size_t ParamValueSize, void *ParamValue,
83  size_t *ParamValueSizeRet) {
84  return pi2ur::piDeviceGetInfo(Device, ParamName, ParamValueSize, ParamValue,
85  ParamValueSizeRet);
86 }
87 
89  const pi_device_partition_property *Properties,
90  pi_uint32 NumDevices, pi_device *OutDevices,
91  pi_uint32 *OutNumDevices) {
92  return pi2ur::piDevicePartition(Device, Properties, NumDevices, OutDevices,
93  OutNumDevices);
94 }
95 
97  pi_uint32 NumBinaries,
98  pi_uint32 *SelectedBinaryInd) {
99  return pi2ur::piextDeviceSelectBinary(Device, Binaries, NumBinaries,
100  SelectedBinaryInd);
101 }
102 
104  pi_native_handle *NativeHandle) {
105 
106  return pi2ur::piextDeviceGetNativeHandle(Device, NativeHandle);
107 }
108 
110  pi_platform Platform,
111  pi_device *Device) {
112 
113  return pi2ur::piextDeviceCreateWithNativeHandle(NativeHandle, Platform,
114  Device);
115 }
116 
118  pi_uint32 NumDevices, const pi_device *Devices,
119  void (*PFnNotify)(const char *ErrInfo,
120  const void *PrivateInfo, size_t CB,
121  void *UserData),
122  void *UserData, pi_context *RetContext) {
123  return pi2ur::piContextCreate(Properties, NumDevices, Devices, PFnNotify,
124  UserData, RetContext);
125 }
126 
128  size_t ParamValueSize, void *ParamValue,
129  size_t *ParamValueSizeRet) {
130 
131  return pi2ur::piContextGetInfo(Context, ParamName, ParamValueSize, ParamValue,
132  ParamValueSizeRet);
133 }
134 
137  void *UserData) {
138  return pi2ur::piextContextSetExtendedDeleter(Context, Function, UserData);
139 }
140 
142  pi_native_handle *NativeHandle) {
143  return pi2ur::piextContextGetNativeHandle(Context, NativeHandle);
144 }
145 
147  pi_uint32 NumDevices,
148  const pi_device *Devices,
149  bool OwnNativeHandle,
150  pi_context *RetContext) {
152  NativeHandle, NumDevices, Devices, OwnNativeHandle, RetContext);
153 }
154 
156 
157  return pi2ur::piContextRetain(Context);
158 }
159 
161  return pi2ur::piContextRelease(Context);
162 }
163 
165  pi_queue_properties Flags, pi_queue *Queue) {
166  pi_queue_properties Properties[] = {PI_QUEUE_FLAGS, Flags, 0};
167  return piextQueueCreate(Context, Device, Properties, Queue);
168 }
169 
171  pi_queue_properties *Properties, pi_queue *Queue) {
172  return pi2ur::piextQueueCreate(Context, Device, Properties, Queue);
173 }
174 
176  size_t ParamValueSize, void *ParamValue,
177  size_t *ParamValueSizeRet) {
178 
179  return pi2ur::piQueueGetInfo(Queue, ParamName, ParamValueSize, ParamValue,
180  ParamValueSizeRet);
181 }
182 
184 
186  return pi2ur::piQueueRelease(Queue);
187 }
188 
190 
192 
194  pi_native_handle *NativeHandle,
195  int32_t *NativeHandleDesc) {
196 
197  return pi2ur::piextQueueGetNativeHandle(Queue, NativeHandle,
198  NativeHandleDesc);
199 }
200 
202  int32_t NativeHandleDesc,
203  pi_context Context, pi_device Device,
204  bool OwnNativeHandle,
205  pi_queue_properties *Properties,
206  pi_queue *Queue) {
207 
209  NativeHandle, NativeHandleDesc, Context, Device, OwnNativeHandle,
210  Properties, Queue);
211 }
212 
214  void *HostPtr, pi_mem *RetMem,
215  const pi_mem_properties *properties) {
216  return pi2ur::piMemBufferCreate(Context, Flags, Size, HostPtr, RetMem,
217  properties);
218 }
219 
220 pi_result piMemGetInfo(pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize,
221  void *ParamValue, size_t *ParamValueSizeRet) {
222  return pi2ur::piMemGetInfo(Mem, ParamName, ParamValueSize, ParamValue,
223  ParamValueSizeRet);
224 }
225 
227 
229 
231  const pi_image_format *ImageFormat,
232  const pi_image_desc *ImageDesc, void *HostPtr,
233  pi_mem *RetImage) {
234 
235  return pi2ur::piMemImageCreate(Context, Flags, ImageFormat, ImageDesc,
236  HostPtr, RetImage);
237 }
238 
240  pi_native_handle *NativeHandle) {
241  return pi2ur::piextMemGetNativeHandle(Mem, Dev, NativeHandle);
242 }
243 
245  pi_context Context,
246  bool ownNativeHandle, pi_mem *Mem) {
247  return pi2ur::piextMemCreateWithNativeHandle(NativeHandle, Context,
248  ownNativeHandle, Mem);
249 }
250 
251 pi_result piProgramCreate(pi_context Context, const void *ILBytes,
252  size_t Length, pi_program *Program) {
253  return pi2ur::piProgramCreate(Context, ILBytes, Length, Program);
254 }
255 
257  pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList,
258  const size_t *Lengths, const unsigned char **Binaries,
259  size_t NumMetadataEntries, const pi_device_binary_property *Metadata,
260  pi_int32 *BinaryStatus, pi_program *Program) {
261 
262  return pi2ur::piProgramCreateWithBinary(Context, NumDevices, DeviceList,
263  Lengths, Binaries, NumMetadataEntries,
264  Metadata, BinaryStatus, Program);
265 }
266 
268  pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle,
269  const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc,
270  pi_mem *Img) {
272  NativeHandle, Context, OwnNativeHandle, ImageFormat, ImageDesc, Img);
273 }
274 
276  size_t ParamValueSize, void *ParamValue,
277  size_t *ParamValueSizeRet) {
278 
279  return pi2ur::piProgramGetInfo(Program, ParamName, ParamValueSize, ParamValue,
280  ParamValueSizeRet);
281 }
282 
284  const pi_device *DeviceList, const char *Options,
285  pi_uint32 NumInputPrograms,
286  const pi_program *InputPrograms,
287  void (*PFnNotify)(pi_program Program, void *UserData),
288  void *UserData, pi_program *RetProgram) {
289  return pi2ur::piProgramLink(Context, NumDevices, DeviceList, Options,
290  NumInputPrograms, InputPrograms, PFnNotify,
291  UserData, RetProgram);
292 }
293 
295  pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList,
296  const char *Options, pi_uint32 NumInputHeaders,
297  const pi_program *InputHeaders, const char **HeaderIncludeNames,
298  void (*PFnNotify)(pi_program Program, void *UserData), void *UserData) {
299 
300  return pi2ur::piProgramCompile(Program, NumDevices, DeviceList, Options,
301  NumInputHeaders, InputHeaders,
302  HeaderIncludeNames, PFnNotify, UserData);
303 }
304 
306  const pi_device *DeviceList, const char *Options,
307  void (*PFnNotify)(pi_program Program, void *UserData),
308  void *UserData) {
309  return pi2ur::piProgramBuild(Program, NumDevices, DeviceList, Options,
310  PFnNotify, UserData);
311 }
312 
314  pi_program_build_info ParamName,
315  size_t ParamValueSize, void *ParamValue,
316  size_t *ParamValueSizeRet) {
317 
318  return pi2ur::piProgramGetBuildInfo(Program, Device, ParamName,
319  ParamValueSize, ParamValue,
320  ParamValueSizeRet);
321 }
322 
324  return pi2ur::piProgramRetain(Program);
325 }
326 
328  return pi2ur::piProgramRelease(Program);
329 }
330 
332  pi_native_handle *NativeHandle) {
333  return pi2ur::piextProgramGetNativeHandle(Program, NativeHandle);
334 }
335 
337  pi_context Context,
338  bool OwnNativeHandle,
339  pi_program *Program) {
340  return pi2ur::piextProgramCreateWithNativeHandle(NativeHandle, Context,
341  OwnNativeHandle, Program);
342 }
343 
344 pi_result piKernelCreate(pi_program Program, const char *KernelName,
345  pi_kernel *RetKernel) {
346 
347  return pi2ur::piKernelCreate(Program, KernelName, RetKernel);
348 }
349 
350 pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize,
351  const void *ArgValue) {
352 
353  return pi2ur::piKernelSetArg(Kernel, ArgIndex, ArgSize, ArgValue);
354 }
355 
357  const pi_mem_obj_property *ArgProperties,
358  const pi_mem *ArgValue) {
359  return pi2ur::piextKernelSetArgMemObj(Kernel, ArgIndex, ArgProperties,
360  ArgValue);
361 }
362 
364  const pi_sampler *ArgValue) {
365 
366  return pi2ur::piextKernelSetArgSampler(Kernel, ArgIndex, ArgValue);
367 }
368 
370  size_t ParamValueSize, void *ParamValue,
371  size_t *ParamValueSizeRet) {
372 
373  return pi2ur::piKernelGetInfo(Kernel, ParamName, ParamValueSize, ParamValue,
374  ParamValueSizeRet);
375 }
376 
378  pi_device Device,
379  pi_image_format *ImageFormat,
380  pi_image_desc *ImageDesc,
381  pi_image_mem_handle *RetMem) {
382  return pi2ur::piextMemImageAllocate(Context, Device, ImageFormat, ImageDesc,
383  RetMem);
384 }
385 
387  pi_context Context, pi_device Device, pi_image_mem_handle ImgMem,
388  pi_image_format *ImageFormat, pi_image_desc *ImageDesc,
389  pi_image_handle *RetHandle) {
390  return pi2ur::piextMemUnsampledImageCreate(Context, Device, ImgMem,
391  ImageFormat, ImageDesc, RetHandle);
392 }
393 
395  pi_context Context, pi_device Device, pi_image_mem_handle ImgMem,
396  pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler,
397  pi_image_handle *RetHandle) {
398  return pi2ur::piextMemSampledImageCreate(Context, Device, ImgMem, ImageFormat,
399  ImageDesc, Sampler, RetHandle);
400 }
401 
403  pi_context Context, const pi_sampler_properties *SamplerProperties,
404  float MinMipmapLevelClamp, float MaxMipmapLevelClamp, float MaxAnisotropy,
405  pi_sampler *RetSampler) {
407  Context, SamplerProperties, MinMipmapLevelClamp, MaxMipmapLevelClamp,
408  MaxAnisotropy, RetSampler);
409 }
410 
412  pi_device Device,
413  pi_image_mem_handle MipMem,
414  unsigned int Level,
415  pi_image_mem_handle *RetMem) {
416  return pi2ur::piextMemMipmapGetLevel(Context, Device, MipMem, Level, RetMem);
417 }
418 
419 __SYCL_EXPORT pi_result piextMemImageFree(pi_context Context, pi_device Device,
420  pi_image_mem_handle MemoryHandle) {
421  return pi2ur::piextMemImageFree(Context, Device, MemoryHandle);
422 }
423 
424 __SYCL_EXPORT pi_result piextMemMipmapFree(pi_context Context, pi_device Device,
425  pi_image_mem_handle MemoryHandle) {
426  return pi2ur::piextMemMipmapFree(Context, Device, MemoryHandle);
427 }
428 
430  pi_queue Queue, void *DstPtr, const void *SrcPtr,
431  const pi_image_desc *SrcImageDesc, const pi_image_desc *DestImageDesc,
432  const pi_image_format *SrcImageFormat,
433  const pi_image_format *DestImageFormat, const pi_image_copy_flags Flags,
434  pi_image_offset SrcOffset, pi_image_offset DstOffset,
435  pi_image_region CopyExtent, pi_uint32 NumEventsInWaitList,
436  const pi_event *EventWaitList, pi_event *Event) {
438  Queue, DstPtr, SrcPtr, SrcImageDesc, DestImageDesc, SrcImageFormat,
439  DestImageFormat, Flags, SrcOffset, DstOffset, CopyExtent,
440  NumEventsInWaitList, EventWaitList, Event);
441 }
442 
444  pi_context Context, pi_device Device, pi_image_handle Handle) {
445  return pi2ur::piextMemUnsampledImageHandleDestroy(Context, Device, Handle);
446 }
447 
449  pi_context Context, pi_device Device, pi_image_handle Handle) {
450  return pi2ur::piextMemSampledImageHandleDestroy(Context, Device, Handle);
451 }
452 
454  pi_image_mem_handle MemHandle,
455  pi_image_info ParamName,
456  void *ParamValue,
457  size_t *ParamValueSizeRet) {
458  return pi2ur::piextMemImageGetInfo(Context, MemHandle, ParamName, ParamValue,
459  ParamValueSizeRet);
460 }
461 
463  pi_context Context, pi_device Device, pi_external_mem_descriptor *MemDesc,
464  pi_interop_mem_handle *RetHandle) {
465  return pi2ur::piextImportExternalMemory(Context, Device, MemDesc, RetHandle);
466 }
467 
469  pi_context Context, pi_device Device, pi_image_format *ImageFormat,
470  pi_image_desc *ImageDesc, pi_interop_mem_handle MemHandle,
471  pi_image_mem_handle *RetMem) {
472  return pi2ur::piextMemMapExternalArray(Context, Device, ImageFormat,
473  ImageDesc, MemHandle, RetMem);
474 }
475 
477  pi_device Device,
478  pi_interop_mem_handle ExtMem) {
479  return pi2ur::piextMemReleaseInterop(Context, Device, ExtMem);
480 }
481 
482 __SYCL_EXPORT pi_result
485  pi_interop_semaphore_handle *RetHandle) {
486  return pi2ur::piextImportExternalSemaphore(Context, Device, SemDesc,
487  RetHandle);
488 }
489 
490 __SYCL_EXPORT pi_result
492  pi_interop_semaphore_handle SemHandle) {
493  return pi2ur::piextReleaseExternalSemaphore(Context, Device, SemHandle);
494 }
495 
497  pi_queue Queue, pi_interop_semaphore_handle SemHandle, bool HasWaitValue,
498  pi_uint64 WaitValue, pi_uint32 NumEventsInWaitList,
499  const pi_event *EventWaitList, pi_event *Event) {
500  return pi2ur::piextWaitExternalSemaphore(Queue, SemHandle, HasWaitValue,
501  WaitValue, NumEventsInWaitList,
502  EventWaitList, Event);
503 }
504 
506  pi_queue Queue, pi_interop_semaphore_handle SemHandle, bool HasSignalValue,
507  pi_uint64 SignalValue, pi_uint32 NumEventsInWaitList,
508  const pi_event *EventWaitList, pi_event *Event) {
509  return pi2ur::piextSignalExternalSemaphore(Queue, SemHandle, HasSignalValue,
510  SignalValue, NumEventsInWaitList,
511  EventWaitList, Event);
512 }
513 
515  pi_kernel_group_info ParamName,
516  size_t ParamValueSize, void *ParamValue,
517  size_t *ParamValueSizeRet) {
518  return pi2ur::piKernelGetGroupInfo(Kernel, Device, ParamName, ParamValueSize,
519  ParamValue, ParamValueSizeRet);
520 }
521 
523  pi_kernel_sub_group_info ParamName,
524  size_t InputValueSize, const void *InputValue,
525  size_t ParamValueSize, void *ParamValue,
526  size_t *ParamValueSizeRet) {
528  Kernel, Device, ParamName, InputValueSize, InputValue, ParamValueSize,
529  ParamValue, ParamValueSizeRet);
530 }
531 
533 
534  return pi2ur::piKernelRetain(Kernel);
535 }
536 
538 
539  return pi2ur::piKernelRelease(Kernel);
540 }
541 
542 pi_result
544  const size_t *GlobalWorkOffset,
545  const size_t *GlobalWorkSize, const size_t *LocalWorkSize,
546  pi_uint32 NumEventsInWaitList,
547  const pi_event *EventWaitList, pi_event *OutEvent) {
549  Queue, Kernel, WorkDim, GlobalWorkOffset, GlobalWorkSize, LocalWorkSize,
550  NumEventsInWaitList, EventWaitList, OutEvent);
551 }
552 
554  pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim,
555  const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize,
556  const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList,
557  const pi_event *EventWaitList, pi_event *OutEvent) {
559  Queue, Kernel, WorkDim, GlobalWorkOffset, GlobalWorkSize, LocalWorkSize,
560  NumEventsInWaitList, EventWaitList, OutEvent);
561 }
562 
564  pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim,
565  const size_t *GlobalWorkSize, const size_t *LocalWorkSize,
566  pi_uint32 NumPropsInLaunchPropList,
567  const pi_launch_property *LaunchPropList, pi_uint32 NumEventsInWaitList,
568  const pi_event *EventsWaitList, pi_event *OutEvent) {
569  (void)Queue;
570  (void)Kernel;
571  (void)WorkDim;
572  (void)GlobalWorkSize;
573  (void)LocalWorkSize;
574  (void)NumPropsInLaunchPropList;
575  (void)LaunchPropList;
576  (void)NumEventsInWaitList;
577  (void)EventsWaitList;
578  (void)OutEvent;
579  PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE);
580  return PI_ERROR_UNSUPPORTED_FEATURE;
581 }
582 
584  pi_context Context,
585  pi_program Program,
586  bool OwnNativeHandle,
587  pi_kernel *Kernel) {
588 
590  NativeHandle, Context, Program, OwnNativeHandle, Kernel);
591 }
592 
594  pi_native_handle *NativeHandle) {
595  return pi2ur::piextKernelGetNativeHandle(Kernel, NativeHandle);
596 }
597 
599  pi_kernel Kernel, size_t LocalWorkSize, size_t DynamicSharedMemorySize,
600  pi_uint32 *GroupCountRet) {
602  Kernel, LocalWorkSize, DynamicSharedMemorySize, GroupCountRet);
603 }
604 
606  return pi2ur::piEventCreate(Context, RetEvent);
607 }
608 
610  size_t ParamValueSize, void *ParamValue,
611  size_t *ParamValueSizeRet) {
612  return pi2ur::piEventGetInfo(Event, ParamName, ParamValueSize, ParamValue,
613  ParamValueSizeRet);
614 }
615 
617  size_t ParamValueSize, void *ParamValue,
618  size_t *ParamValueSizeRet) {
619 
620  return pi2ur::piEventGetProfilingInfo(Event, ParamName, ParamValueSize,
621  ParamValue, ParamValueSizeRet);
622 }
623 
624 pi_result piEventsWait(pi_uint32 NumEvents, const pi_event *EventList) {
625  return pi2ur::piEventsWait(NumEvents, EventList);
626 }
627 
628 pi_result piEventSetCallback(pi_event Event, pi_int32 CommandExecCallbackType,
629  void (*PFnNotify)(pi_event Event,
630  pi_int32 EventCommandStatus,
631  void *UserData),
632  void *UserData) {
633  return pi2ur::piEventSetCallback(Event, CommandExecCallbackType, PFnNotify,
634  UserData);
635 }
636 
637 pi_result piEventSetStatus(pi_event Event, pi_int32 ExecutionStatus) {
638  return pi2ur::piEventSetStatus(Event, ExecutionStatus);
639 }
640 
642 
644  return pi2ur::piEventRelease(Event);
645 }
646 
648  pi_native_handle *NativeHandle) {
649 
650  return pi2ur::piextEventGetNativeHandle(Event, NativeHandle);
651 }
652 
654  pi_context Context,
655  bool OwnNativeHandle,
656  pi_event *Event) {
657  return pi2ur::piextEventCreateWithNativeHandle(NativeHandle, Context,
658  OwnNativeHandle, Event);
659 }
660 
662  pi_uint32 NumEventsInWaitList,
663  const pi_event *EventWaitList,
664  pi_event *Event) {
666  Queue, Blocking, NumEventsInWaitList, EventWaitList, Event);
667 }
668 
670  const pi_sampler_properties *SamplerProperties,
671  pi_sampler *RetSampler) {
672  return pi2ur::piSamplerCreate(Context, SamplerProperties, RetSampler);
673 }
674 
676  size_t ParamValueSize, void *ParamValue,
677  size_t *ParamValueSizeRet) {
678 
679  return pi2ur::piSamplerGetInfo(Sampler, ParamName, ParamValueSize, ParamValue,
680  ParamValueSizeRet);
681 }
682 
684  return pi2ur::piSamplerRetain(Sampler);
685 }
686 
688  return pi2ur::piSamplerRelease(Sampler);
689 }
690 
691 pi_result piEnqueueEventsWait(pi_queue Queue, pi_uint32 NumEventsInWaitList,
692  const pi_event *EventWaitList,
693  pi_event *OutEvent) {
694 
695  return pi2ur::piEnqueueEventsWait(Queue, NumEventsInWaitList, EventWaitList,
696  OutEvent);
697 }
698 
700  pi_uint32 NumEventsInWaitList,
701  const pi_event *EventWaitList,
702  pi_event *OutEvent) {
703 
704  return pi2ur::piEnqueueEventsWaitWithBarrier(Queue, NumEventsInWaitList,
705  EventWaitList, OutEvent);
706 }
707 
709  pi_bool BlockingRead, size_t Offset,
710  size_t Size, void *Dst,
711  pi_uint32 NumEventsInWaitList,
712  const pi_event *EventWaitList,
713  pi_event *Event) {
714 
715  return pi2ur::piEnqueueMemBufferRead(Queue, Src, BlockingRead, Offset, Size,
716  Dst, NumEventsInWaitList, EventWaitList,
717  Event);
718 }
719 
721  pi_queue Queue, pi_mem Buffer, pi_bool BlockingRead,
722  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
723  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
724  size_t HostRowPitch, size_t HostSlicePitch, void *Ptr,
725  pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList,
726  pi_event *Event) {
727 
729  Queue, Buffer, BlockingRead, BufferOffset, HostOffset, Region,
730  BufferRowPitch, BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
731  NumEventsInWaitList, EventWaitList, Event);
732 }
733 
735  pi_bool BlockingWrite, size_t Offset,
736  size_t Size, const void *Ptr,
737  pi_uint32 NumEventsInWaitList,
738  const pi_event *EventWaitList,
739  pi_event *Event) {
740 
741  return pi2ur::piEnqueueMemBufferWrite(Queue, Buffer, BlockingWrite, Offset,
742  Size, Ptr, NumEventsInWaitList,
743  EventWaitList, Event);
744 }
745 
747  pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite,
748  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
749  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
750  size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr,
751  pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList,
752  pi_event *Event) {
753 
755  Queue, Buffer, BlockingWrite, BufferOffset, HostOffset, Region,
756  BufferRowPitch, BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
757  NumEventsInWaitList, EventWaitList, Event);
758 }
759 
761  size_t SrcOffset, size_t DstOffset,
762  size_t Size, pi_uint32 NumEventsInWaitList,
763  const pi_event *EventWaitList,
764  pi_event *Event) {
765 
766  return pi2ur::piEnqueueMemBufferCopy(Queue, SrcMem, DstMem, SrcOffset,
767  DstOffset, Size, NumEventsInWaitList,
768  EventWaitList, Event);
769 }
770 
772  pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin,
773  pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region,
774  size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch,
775  size_t DstSlicePitch, pi_uint32 NumEventsInWaitList,
776  const pi_event *EventWaitList, pi_event *Event) {
777 
779  Queue, SrcMem, DstMem, SrcOrigin, DstOrigin, Region, SrcRowPitch,
780  SrcSlicePitch, DstRowPitch, DstSlicePitch, NumEventsInWaitList,
781  EventWaitList, Event);
782 }
783 
785  const void *Pattern, size_t PatternSize,
786  size_t Offset, size_t Size,
787  pi_uint32 NumEventsInWaitList,
788  const pi_event *EventWaitList,
789  pi_event *Event) {
790 
791  return pi2ur::piEnqueueMemBufferFill(Queue, Buffer, Pattern, PatternSize,
792  Offset, Size, NumEventsInWaitList,
793  EventWaitList, Event);
794 }
795 
797  pi_map_flags MapFlags, size_t Offset,
798  size_t Size, pi_uint32 NumEventsInWaitList,
799  const pi_event *EventWaitList,
800  pi_event *OutEvent, void **RetMap) {
801 
802  return pi2ur::piEnqueueMemBufferMap(Queue, Mem, BlockingMap, MapFlags, Offset,
803  Size, NumEventsInWaitList, EventWaitList,
804  OutEvent, RetMap);
805 }
806 
807 pi_result piEnqueueMemUnmap(pi_queue Queue, pi_mem Mem, void *MappedPtr,
808  pi_uint32 NumEventsInWaitList,
809  const pi_event *EventWaitList, pi_event *OutEvent) {
810 
811  return pi2ur::piEnqueueMemUnmap(Queue, Mem, MappedPtr, NumEventsInWaitList,
812  EventWaitList, OutEvent);
813 }
814 
816  size_t ParamValueSize, void *ParamValue,
817  size_t *ParamValueSizeRet) {
818 
819  return pi2ur::piMemImageGetInfo(Image, ParamName, ParamValueSize, ParamValue,
820  ParamValueSizeRet);
821 }
822 
824  pi_bool BlockingRead, pi_image_offset Origin,
825  pi_image_region Region, size_t RowPitch,
826  size_t SlicePitch, void *Ptr,
827  pi_uint32 NumEventsInWaitList,
828  const pi_event *EventWaitList,
829  pi_event *Event) {
831  Queue, Image, BlockingRead, Origin, Region, RowPitch, SlicePitch, Ptr,
832  NumEventsInWaitList, EventWaitList, Event);
833 }
834 
836  pi_bool BlockingWrite, pi_image_offset Origin,
837  pi_image_region Region, size_t InputRowPitch,
838  size_t InputSlicePitch, const void *Ptr,
839  pi_uint32 NumEventsInWaitList,
840  const pi_event *EventWaitList,
841  pi_event *Event) {
842 
844  Queue, Image, BlockingWrite, Origin, Region, InputRowPitch,
845  InputSlicePitch, Ptr, NumEventsInWaitList, EventWaitList, Event);
846 }
847 
848 pi_result
849 piEnqueueMemImageCopy(pi_queue Queue, pi_mem SrcImage, pi_mem DstImage,
850  pi_image_offset SrcOrigin, pi_image_offset DstOrigin,
851  pi_image_region Region, pi_uint32 NumEventsInWaitList,
852  const pi_event *EventWaitList, pi_event *Event) {
853  return pi2ur::piEnqueueMemImageCopy(Queue, SrcImage, DstImage, SrcOrigin,
854  DstOrigin, Region, NumEventsInWaitList,
855  EventWaitList, Event);
856 }
857 
859  const void *FillColor, const size_t *Origin,
860  const size_t *Region,
861  pi_uint32 NumEventsInWaitList,
862  const pi_event *EventWaitList,
863  pi_event *Event) {
864 
865  return pi2ur::piEnqueueMemImageFill(Queue, Image, FillColor, Origin, Region,
866  NumEventsInWaitList, EventWaitList,
867  Event);
868 }
869 
871  pi_buffer_create_type BufferCreateType,
872  void *BufferCreateInfo, pi_mem *RetMem) {
873 
874  return pi2ur::piMemBufferPartition(Buffer, Flags, BufferCreateType,
875  BufferCreateInfo, RetMem);
876 }
877 
879  const char *FunctionName,
880  pi_uint64 *FunctionPointerRet) {
881  return pi2ur::piextGetDeviceFunctionPointer(Device, Program, FunctionName,
882  FunctionPointerRet);
883 }
884 
886  const char *GlobalVariableName,
887  size_t *GlobalVariableSize,
888  void **GlobalVariablePointerRet) {
890  Device, Program, GlobalVariableName, GlobalVariableSize,
891  GlobalVariablePointerRet);
892 }
893 
894 pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context,
895  pi_device Device,
896  pi_usm_mem_properties *Properties, size_t Size,
898 
899  return pi2ur::piextUSMDeviceAlloc(ResultPtr, Context, Device, Properties,
900  Size, Alignment);
901 }
902 
903 pi_result piextUSMSharedAlloc(void **ResultPtr, pi_context Context,
904  pi_device Device,
905  pi_usm_mem_properties *Properties, size_t Size,
907 
908  return pi2ur::piextUSMSharedAlloc(ResultPtr, Context, Device, Properties,
909  Size, Alignment);
910 }
911 
913  void **ResultPtr, size_t *ResultPitch, pi_context Context, pi_device Device,
914  pi_usm_mem_properties *Properties, size_t WidthInBytes, size_t Height,
915  unsigned int ElementSizeBytes) {
916 
917  return pi2ur::piextUSMPitchedAlloc(ResultPtr, ResultPitch, Context, Device,
918  Properties, WidthInBytes, Height,
919  ElementSizeBytes);
920 }
921 
922 pi_result piextUSMHostAlloc(void **ResultPtr, pi_context Context,
923  pi_usm_mem_properties *Properties, size_t Size,
925  return pi2ur::piextUSMHostAlloc(ResultPtr, Context, Properties, Size,
926  Alignment);
927 }
928 
929 pi_result piextUSMFree(pi_context Context, void *Ptr) {
930 
931  return pi2ur::piextUSMFree(Context, Ptr);
932 }
933 
935  size_t ArgSize, const void *ArgValue) {
936  return pi2ur::piextKernelSetArgPointer(Kernel, ArgIndex, ArgSize, ArgValue);
937 }
938 
939 pi_result piextUSMEnqueueFill(pi_queue Queue, void *Ptr, const void *Pattern,
940  size_t PatternSize, size_t Count,
941  pi_uint32 NumEventsInWaitlist,
942  const pi_event *EventsWaitlist, pi_event *Event) {
943  return pi2ur::piextUSMEnqueueFill(Queue, Ptr, Pattern, PatternSize, Count,
944  NumEventsInWaitlist, EventsWaitlist, Event);
945 }
946 
947 pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr,
948  const void *SrcPtr, size_t Size,
949  pi_uint32 NumEventsInWaitlist,
950  const pi_event *EventsWaitlist,
951  pi_event *Event) {
952 
953  return pi2ur::piextUSMEnqueueMemcpy(Queue, Blocking, DstPtr, SrcPtr, Size,
954  NumEventsInWaitlist, EventsWaitlist,
955  Event);
956 }
957 
958 pi_result piextUSMEnqueuePrefetch(pi_queue Queue, const void *Ptr, size_t Size,
960  pi_uint32 NumEventsInWaitList,
961  const pi_event *EventWaitList,
962  pi_event *OutEvent) {
963 
965  Queue, Ptr, Size, Flags, NumEventsInWaitList, EventWaitList, OutEvent);
966 }
967 
969  size_t Length, pi_mem_advice Advice,
970  pi_event *OutEvent) {
971 
972  return pi2ur::piextUSMEnqueueMemAdvise(Queue, Ptr, Length, Advice, OutEvent);
973 }
974 
975 __SYCL_EXPORT pi_result piextUSMEnqueueFill2D(pi_queue Queue, void *Ptr,
976  size_t Pitch, size_t PatternSize,
977  const void *Pattern, size_t Width,
978  size_t Height,
979  pi_uint32 NumEventsWaitList,
980  const pi_event *EventsWaitList,
981  pi_event *Event) {
982 
983  return pi2ur::piextUSMEnqueueFill2D(Queue, Ptr, Pitch, PatternSize, Pattern,
984  Width, Height, NumEventsWaitList,
985  EventsWaitList, Event);
986 }
987 
988 __SYCL_EXPORT pi_result piextUSMEnqueueMemset2D(pi_queue Queue, void *Ptr,
989  size_t Pitch, int Value,
990  size_t Width, size_t Height,
991  pi_uint32 NumEventsWaitList,
992  const pi_event *EventsWaitlist,
993  pi_event *Event) {
994 
995  return pi2ur::piextUSMEnqueueMemset2D(Queue, Ptr, Pitch, Value, Width, Height,
996  NumEventsWaitList, EventsWaitlist,
997  Event);
998 }
999 
1001  pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch,
1002  const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height,
1003  pi_uint32 NumEventsInWaitlist, const pi_event *EventWaitlist,
1004  pi_event *Event) {
1005 
1007  Queue, Blocking, DstPtr, DstPitch, SrcPtr, SrcPitch, Width, Height,
1008  NumEventsInWaitlist, EventWaitlist, Event);
1009 }
1010 
1012  pi_mem_alloc_info ParamName,
1013  size_t ParamValueSize, void *ParamValue,
1014  size_t *ParamValueSizeRet) {
1015  return pi2ur::piextUSMGetMemAllocInfo(Context, Ptr, ParamName, ParamValueSize,
1016  ParamValue, ParamValueSizeRet);
1017 }
1018 
1019 pi_result piextUSMImport(const void *HostPtr, size_t Size, pi_context Context) {
1020  return pi2ur::piextUSMImport(HostPtr, Size, Context);
1021 }
1022 
1023 pi_result piextUSMRelease(const void *HostPtr, pi_context Context) {
1024  return pi2ur::piextUSMRelease(HostPtr, Context);
1025 }
1026 
1028  pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite,
1029  size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList,
1030  const pi_event *EventsWaitList, pi_event *Event) {
1032  Queue, Program, Name, BlockingWrite, Count, Offset, Src,
1033  NumEventsInWaitList, EventsWaitList, Event);
1034 }
1035 
1037  pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingRead,
1038  size_t Count, size_t Offset, void *Dst, pi_uint32 NumEventsInWaitList,
1039  const pi_event *EventsWaitList, pi_event *Event) {
1041  Queue, Program, Name, BlockingRead, Count, Offset, Dst,
1042  NumEventsInWaitList, EventsWaitList, Event);
1043 
1044  return PI_SUCCESS;
1045 }
1046 
1048  const char *PipeSymbol, pi_bool Blocking,
1049  void *Ptr, size_t Size,
1050  pi_uint32 NumEventsInWaitList,
1051  const pi_event *EventsWaitList,
1052  pi_event *Event) {
1053  (void)Queue;
1054  (void)Program;
1055  (void)PipeSymbol;
1056  (void)Blocking;
1057  (void)Ptr;
1058  (void)Size;
1059  (void)NumEventsInWaitList;
1060  (void)EventsWaitList;
1061  (void)Event;
1062  PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE);
1063  die("piextEnqueueReadHostPipe: not implemented");
1064  return {};
1065 }
1066 
1068  const char *PipeSymbol, pi_bool Blocking,
1069  void *Ptr, size_t Size,
1070  pi_uint32 NumEventsInWaitList,
1071  const pi_event *EventsWaitList,
1072  pi_event *Event) {
1073  (void)Queue;
1074  (void)Program;
1075  (void)PipeSymbol;
1076  (void)Blocking;
1077  (void)Ptr;
1078  (void)Size;
1079  (void)NumEventsInWaitList;
1080  (void)EventsWaitList;
1081  (void)Event;
1082  PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE);
1083  die("piextEnqueueWriteHostPipe: not implemented");
1084  return {};
1085 }
1086 
1088  size_t ParamValueSize, const void *ParamValue) {
1089 
1090  return pi2ur::piKernelSetExecInfo(Kernel, ParamName, ParamValueSize,
1091  ParamValue);
1092 }
1093 
1095  pi_uint32 SpecID, size_t Size,
1096  const void *SpecValue) {
1097  return pi2ur::piextProgramSetSpecializationConstant(Prog, SpecID, Size,
1098  SpecValue);
1099 }
1100 
1101 // Command buffer extension
1103  const pi_ext_command_buffer_desc *Desc,
1104  pi_ext_command_buffer *RetCommandBuffer) {
1105  return pi2ur::piextCommandBufferCreate(Context, Device, Desc,
1106  RetCommandBuffer);
1107 }
1108 
1110  return pi2ur::piextCommandBufferRetain(CommandBuffer);
1111 }
1112 
1114  return pi2ur::piextCommandBufferRelease(CommandBuffer);
1115 }
1116 
1118  return pi2ur::piextCommandBufferFinalize(CommandBuffer);
1119 }
1120 
1122  pi_ext_command_buffer CommandBuffer, pi_kernel Kernel, pi_uint32 WorkDim,
1123  const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize,
1124  const size_t *LocalWorkSize, pi_uint32 NumSyncPointsInWaitList,
1125  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint,
1126  pi_ext_command_buffer_command *Command) {
1128  CommandBuffer, Kernel, WorkDim, GlobalWorkOffset, GlobalWorkSize,
1129  LocalWorkSize, NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint,
1130  Command);
1131 }
1132 
1134  pi_ext_command_buffer CommandBuffer, void *DstPtr, const void *SrcPtr,
1135  size_t Size, pi_uint32 NumSyncPointsInWaitList,
1136  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1137  return pi2ur::piextCommandBufferMemcpyUSM(CommandBuffer, DstPtr, SrcPtr, Size,
1138  NumSyncPointsInWaitList,
1139  SyncPointWaitList, SyncPoint);
1140 }
1141 
1143  pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem,
1144  size_t SrcOffset, size_t DstOffset, size_t Size,
1145  pi_uint32 NumSyncPointsInWaitList,
1146  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1148  CommandBuffer, SrcMem, DstMem, SrcOffset, DstOffset, Size,
1149  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1150 }
1151 
1153  pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem,
1154  pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin,
1155  pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch,
1156  size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumSyncPointsInWaitList,
1157  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1159  CommandBuffer, SrcMem, DstMem, SrcOrigin, DstOrigin, Region, SrcRowPitch,
1160  SrcSlicePitch, DstRowPitch, DstSlicePitch, NumSyncPointsInWaitList,
1161  SyncPointWaitList, SyncPoint);
1162 }
1163 
1165  pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset,
1166  size_t Size, void *Dst, pi_uint32 NumSyncPointsInWaitList,
1167  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1169  CommandBuffer, Buffer, Offset, Size, Dst, NumSyncPointsInWaitList,
1170  SyncPointWaitList, SyncPoint);
1171 }
1172 
1174  pi_ext_command_buffer CommandBuffer, pi_mem Buffer,
1175  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
1176  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
1177  size_t HostRowPitch, size_t HostSlicePitch, void *Ptr,
1178  pi_uint32 NumSyncPointsInWaitList,
1179  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1181  CommandBuffer, Buffer, BufferOffset, HostOffset, Region, BufferRowPitch,
1182  BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
1183  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1184 }
1185 
1187  pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset,
1188  size_t Size, const void *Ptr, pi_uint32 NumSyncPointsInWaitList,
1189  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1191  CommandBuffer, Buffer, Offset, Size, Ptr, NumSyncPointsInWaitList,
1192  SyncPointWaitList, SyncPoint);
1193 }
1194 
1196  pi_ext_command_buffer CommandBuffer, pi_mem Buffer,
1197  pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset,
1198  pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch,
1199  size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr,
1200  pi_uint32 NumSyncPointsInWaitList,
1201  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1203  CommandBuffer, Buffer, BufferOffset, HostOffset, Region, BufferRowPitch,
1204  BufferSlicePitch, HostRowPitch, HostSlicePitch, Ptr,
1205  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1206 }
1207 
1209  pi_ext_command_buffer CommandBuffer, pi_mem Buffer, const void *Pattern,
1210  size_t PatternSize, size_t Offset, size_t Size,
1211  pi_uint32 NumSyncPointsInWaitList,
1212  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1214  CommandBuffer, Buffer, Pattern, PatternSize, Offset, Size,
1215  NumSyncPointsInWaitList, SyncPointWaitList, SyncPoint);
1216 }
1217 
1219  void *Ptr, const void *Pattern,
1220  size_t PatternSize, size_t Size,
1221  pi_uint32 NumSyncPointsInWaitList,
1222  const pi_ext_sync_point *SyncPointWaitList,
1223  pi_ext_sync_point *SyncPoint) {
1225  CommandBuffer, Ptr, Pattern, PatternSize, Size, NumSyncPointsInWaitList,
1226  SyncPointWaitList, SyncPoint);
1227 }
1228 
1230  pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Size,
1231  pi_usm_migration_flags Flags, pi_uint32 NumSyncPointsInWaitList,
1232  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1233  return pi2ur::piextCommandBufferPrefetchUSM(CommandBuffer, Ptr, Size, Flags,
1234  NumSyncPointsInWaitList,
1235  SyncPointWaitList, SyncPoint);
1236 }
1237 
1239  pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Length,
1240  pi_mem_advice Advice, pi_uint32 NumSyncPointsInWaitList,
1241  const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint) {
1242  return pi2ur::piextCommandBufferAdviseUSM(CommandBuffer, Ptr, Length, Advice,
1243  NumSyncPointsInWaitList,
1244  SyncPointWaitList, SyncPoint);
1245 }
1246 
1248  pi_queue Queue,
1249  pi_uint32 NumEventsInWaitList,
1250  const pi_event *EventWaitList,
1251  pi_event *Event) {
1253  CommandBuffer, Queue, NumEventsInWaitList, EventWaitList, Event);
1254 }
1255 
1259  return pi2ur::piextCommandBufferUpdateKernelLaunch(Command, Desc);
1260 }
1261 
1262 pi_result
1265 }
1266 
1267 pi_result
1270 }
1271 
1272 pi_result piextPluginGetOpaqueData(void *opaque_data_param,
1273  void **opaque_data_return) {
1274  return pi2ur::piextPluginGetOpaqueData(opaque_data_param, opaque_data_return);
1275 }
1276 
1277 pi_result piTearDown(void *PluginParameter) {
1278  return pi2ur::piTearDown(PluginParameter);
1279 }
1280 
1281 pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime,
1282  uint64_t *HostTime) {
1283  return pi2ur::piGetDeviceAndHostTimer(Device, DeviceTime, HostTime);
1284 }
1285 
1287  pi_device peer_device) {
1288 
1289  return pi2ur::piextEnablePeerAccess(command_device, peer_device);
1290 }
1291 
1293  pi_device peer_device) {
1294 
1295  return pi2ur::piextDisablePeerAccess(command_device, peer_device);
1296 }
1297 
1299  pi_device peer_device, pi_peer_attr attr,
1300  size_t ParamValueSize, void *ParamValue,
1301  size_t *ParamValueSizeRet) {
1302  return pi2ur::piextPeerAccessGetInfo(command_device, peer_device, attr,
1303  ParamValueSize, ParamValue,
1304  ParamValueSizeRet);
1305 }
1306 
1307 pi_result
1310  size_t param_value_size, void *param_value,
1311  size_t *param_value_size_ret) {
1312  return pi2ur::piextVirtualMemGranularityGetInfo(context, device, param_name,
1313  param_value_size, param_value,
1314  param_value_size_ret);
1315 }
1316 
1318  size_t mem_size,
1319  pi_physical_mem *ret_physical_mem) {
1320  return pi2ur::piextPhysicalMemCreate(context, device, mem_size,
1321  ret_physical_mem);
1322 }
1323 
1325  return pi2ur::piextPhysicalMemRetain(physical_mem);
1326 }
1327 
1329  return pi2ur::piextPhysicalMemRelease(physical_mem);
1330 }
1331 
1332 pi_result piextVirtualMemReserve(pi_context context, const void *start,
1333  size_t range_size, void **ret_ptr) {
1334  return pi2ur::piextVirtualMemReserve(context, start, range_size, ret_ptr);
1335 }
1336 
1337 pi_result piextVirtualMemFree(pi_context context, const void *ptr,
1338  size_t range_size) {
1339  return pi2ur::piextVirtualMemFree(context, ptr, range_size);
1340 }
1341 
1342 pi_result piextVirtualMemMap(pi_context context, const void *ptr,
1343  size_t range_size, pi_physical_mem physical_mem,
1344  size_t offset, pi_virtual_access_flags flags) {
1345  return pi2ur::piextVirtualMemMap(context, ptr, range_size, physical_mem,
1346  offset, flags);
1347 }
1348 
1349 pi_result piextVirtualMemUnmap(pi_context context, const void *ptr,
1350  size_t range_size) {
1351  return pi2ur::piextVirtualMemUnmap(context, ptr, range_size);
1352 }
1353 
1355  size_t range_size,
1356  pi_virtual_access_flags flags) {
1357  return pi2ur::piextVirtualMemSetAccess(context, ptr, range_size, flags);
1358 }
1359 
1361  size_t range_size,
1362  pi_virtual_mem_info param_name,
1363  size_t param_value_size, void *param_value,
1364  size_t *param_value_size_ret) {
1365  return pi2ur::piextVirtualMemGetInfo(context, ptr, range_size, param_name,
1366  param_value_size, param_value,
1367  param_value_size_ret);
1368 }
1369 
1370 pi_result
1372  void *Data, pi_uint32 NumMems, const pi_mem *Mems,
1373  pi_uint32 NumEventsInWaitList,
1374  const pi_event *EventWaitList, pi_event *Event) {
1375  return pi2ur::piextEnqueueNativeCommand(Queue, Fn, Data, NumMems, Mems,
1376  NumEventsInWaitList, EventWaitList,
1377  Event);
1378 }
1379 
1381 
1383  // Check that the major version matches in PiVersion and SupportedVersion
1385 
1386  // PI interface supports higher version or the same version.
1387  size_t PluginVersionSize = sizeof(PluginInit->PluginVersion);
1388  if (strlen(SupportedVersion) >= PluginVersionSize)
1389  return PI_ERROR_INVALID_VALUE;
1390  strncpy(PluginInit->PluginVersion, SupportedVersion, PluginVersionSize);
1391 
1392  // Set whole function table to zero to make it easier to detect if
1393  // functions are not set up below.
1394  std::memset(&(PluginInit->PiFunctionTable), 0,
1395  sizeof(PluginInit->PiFunctionTable));
1396 
1397 // Forward calls to HIP RT.
1398 #define _PI_API(api) \
1399  (PluginInit->PiFunctionTable).api = (decltype(&::api))(&api);
1400 #include <sycl/detail/pi.def>
1401 #undef _PI_API
1402 
1403  return PI_SUCCESS;
1404 }
1405 
1406 #ifdef _WIN32
1407 #define __SYCL_PLUGIN_DLL_NAME "pi_hip.dll"
1408 #include "../common_win_pi_trace/common_win_pi_trace.hpp"
1409 #undef __SYCL_PLUGIN_DLL_NAME
1410 #endif
1411 
1412 } // extern "C"
pi_result piextWaitExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, bool HasWaitValue, pi_uint64 WaitValue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5641
pi_result piEnqueueMemImageFill(pi_queue Queue, pi_mem Image, const void *FillColor, const size_t *Origin, const size_t *Region, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Definition: pi2ur.hpp:2191
pi_result piextCommandBufferMemBufferWriteRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4774
pi_result piProgramGetInfo(pi_program Program, pi_program_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1994
pi_result piextPhysicalMemRetain(pi_physical_mem PhysicalMem)
Definition: pi2ur.hpp:5736
pi_result piextUSMEnqueueFill2D(pi_queue Queue, void *Ptr, size_t Pitch, size_t PatternSize, const void *Pattern, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitList, pi_event *Event)
USM 2D Fill API.
Definition: pi2ur.hpp:3537
pi_result piKernelSetExecInfo(pi_kernel Kernel, pi_kernel_exec_info ParamName, size_t ParamValueSize, const void *ParamValue)
Definition: pi2ur.hpp:2362
pi_result piPlatformGetInfo(pi_platform Platform, pi_platform_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:900
pi_result piextUSMEnqueuePrefetch(pi_queue Queue, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Hint to migrate memory to the device.
Definition: pi2ur.hpp:3438
pi_result piextUSMGetMemAllocInfo(pi_context Context, const void *Ptr, pi_mem_alloc_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:3575
pi_result piKernelGetGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_group_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2484
pi_result piQueueGetInfo(pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1851
pi_result piMemRetain(pi_mem Mem)
Definition: pi2ur.hpp:3409
pi_result piPlatformsGet(pi_uint32 NumEntries, pi_platform *Platforms, pi_uint32 *NumPlatforms)
Definition: pi2ur.hpp:848
pi_result piEnqueueEventsWait(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4202
pi_result piextKernelSuggestMaxCooperativeGroupCount(pi_kernel Kernel, size_t LocalWorkSize, size_t DynamicSharedMemorySize, pi_uint32 *GroupCountRet)
Definition: pi2ur.hpp:2676
pi_result piextVirtualMemSetAccess(pi_context Context, const void *Ptr, size_t RangeSize, pi_virtual_access_flags Flags)
Definition: pi2ur.hpp:5783
pi_result piEnqueueMemUnmap(pi_queue Queue, pi_mem Mem, void *MappedPtr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3920
pi_result piextDeviceGetNativeHandle(pi_device Device, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:1368
pi_result piextMemSampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, pi_image_handle *RetHandle)
Definition: pi2ur.hpp:5121
pi_result piextCommandBufferUpdateKernelLaunch(pi_ext_command_buffer_command command, pi_ext_command_buffer_update_kernel_launch_desc *desc)
Definition: pi2ur.hpp:4938
pi_result piProgramRelease(pi_program Program)
Definition: pi2ur.hpp:2562
pi_result piextCommandBufferPrefetchUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4854
pi_result piEnqueueMemImageWrite(pi_queue Queue, pi_mem Image, pi_bool BlockingWrite, pi_image_offset Origin, pi_image_region Region, size_t InputRowPitch, size_t InputSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3832
pi_result piPluginGetBackendOption(pi_platform Platform, const char *FrontendOption, const char **PlatformOption)
Definition: pi2ur.hpp:960
pi_result piextVirtualMemMap(pi_context Context, const void *Ptr, size_t RangeSize, pi_physical_mem PhysicalMem, size_t Offset, pi_virtual_access_flags Flags)
Definition: pi2ur.hpp:5803
pi_result piextCommandBufferNDRangeKernel(pi_ext_command_buffer CommandBuffer, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint, pi_ext_command_buffer_command *Command)
Definition: pi2ur.hpp:4646
pi_result piextPluginGetOpaqueData(void *opaque_data_param, void **opaque_data_return)
Definition: pi2ur.hpp:953
pi_result piKernelCreate(pi_program Program, const char *KernelName, pi_kernel *RetKernel)
Definition: pi2ur.hpp:2174
pi_result piextUSMImport(const void *HostPtr, size_t Size, pi_context Context)
Definition: pi2ur.hpp:3617
pi_result piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3732
pi_result piEventSetStatus(pi_event Event, pi_int32 ExecutionStatus)
Definition: pi2ur.hpp:4411
pi_result piEventSetCallback(pi_event Event, pi_int32 CommandExecCallbackType, void(*PFnNotify)(pi_event Event, pi_int32 EventCommandStatus, void *UserData), void *UserData)
Definition: pi2ur.hpp:4398
pi_result piextVirtualMemUnmap(pi_context Context, const void *Ptr, size_t RangeSize)
Definition: pi2ur.hpp:5828
pi_result piSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, pi_sampler *RetSampler)
Definition: pi2ur.hpp:4458
pi_result piSamplerGetInfo(pi_sampler Sampler, pi_sampler_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:4519
pi_result piextMemUnsampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
Definition: pi2ur.hpp:5370
pi_result piextKernelSetArgSampler(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_sampler *ArgValue)
Definition: pi2ur.hpp:4557
pi_result piextQueueCreateWithNativeHandle(pi_native_handle NativeHandle, int32_t NativeHandleDesc, pi_context Context, pi_device Device, bool OwnNativeHandle, pi_queue_properties *Properties, pi_queue *Queue)
Definition: pi2ur.hpp:1765
pi_result piextVirtualMemFree(pi_context Context, const void *Ptr, size_t RangeSize)
Definition: pi2ur.hpp:5770
pi_result piMemImageGetInfo(pi_mem Image, pi_image_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:3640
pi_result piextCommandBufferMemBufferWrite(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4805
pi_result piextMemMapExternalArray(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_interop_mem_handle MemHandle, pi_image_mem_handle *RetMem)
Definition: pi2ur.hpp:5517
pi_result piProgramCreateWithBinary(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const size_t *Lengths, const unsigned char **Binaries, size_t NumMetadataEntries, const pi_device_binary_property *Metadata, pi_int32 *BinaryStatus, pi_program *Program)
Definition: pi2ur.hpp:1948
pi_result piextProgramGetNativeHandle(pi_program Program, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:2407
pi_result piKernelGetInfo(pi_kernel Kernel, pi_kernel_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2442
pi_result piextEventGetNativeHandle(pi_event Event, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:4307
pi_result piEnqueueEventsWaitWithBarrier(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4183
pi_result piextMemMipmapFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
Definition: pi2ur.hpp:5290
pi_result piextPlatformGetNativeHandle(pi_platform Platform, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:861
pi_result piextPhysicalMemRelease(pi_physical_mem PhysicalMem)
Definition: pi2ur.hpp:5747
pi_result piSamplerRelease(pi_sampler Sampler)
Definition: pi2ur.hpp:4579
pi_result piMemBufferCreate(pi_context Context, pi_mem_flags Flags, size_t Size, void *HostPtr, pi_mem *RetMem, const pi_mem_properties *properties)
Definition: pi2ur.hpp:2761
pi_result piEnqueueMemBufferWrite(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4101
pi_result piextCommandBufferMemBufferReadRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4727
pi_result piDevicesGet(pi_platform Platform, pi_device_type DeviceType, pi_uint32 NumEntries, pi_device *Devices, pi_uint32 *NumDevices)
Definition: pi2ur.hpp:976
pi_result piextEnqueueDeviceGlobalVariableWrite(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite, size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
API for writing data from host to a device global variable.
Definition: pi2ur.hpp:2702
pi_result piextEventCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_event *Event)
Definition: pi2ur.hpp:4375
pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:4322
pi_result piKernelRetain(pi_kernel Kernel)
Definition: pi2ur.hpp:2540
pi_result piextKernelSetArgMemObj(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_mem_obj_property *ArgProperties, const pi_mem *ArgValue)
Definition: pi2ur.hpp:2247
pi_result piextQueueGetNativeHandle(pi_queue Queue, pi_native_handle *NativeHandle, int32_t *NativeHandleDesc)
Definition: pi2ur.hpp:1810
pi_result piextBindlessImageSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, float MinMipmapLevelClamp, float MaxMipmapLevelClamp, float MaxAnisotropy, pi_sampler *RetSampler)
Definition: pi2ur.hpp:5148
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Definition: pi2ur.hpp:3283
pi_result piProgramGetBuildInfo(pi_program Program, pi_device Device, pi_program_build_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2622
pi_result piQueueFlush(pi_queue Queue)
Definition: pi2ur.hpp:1912
pi_result piextKernelSetArgPointer(pi_kernel Kernel, pi_uint32 ArgIndex, size_t, const void *ArgValue)
Definition: pi2ur.hpp:2574
pi_result piEnqueueTimestampRecordingExp(pi_queue Queue, pi_bool Blocking, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:4436
pi_result piProgramLink(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputPrograms, const pi_program *InputPrograms, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData, pi_program *RetProgram)
Definition: pi2ur.hpp:2054
pi_result piSamplerRetain(pi_sampler Sampler)
Definition: pi2ur.hpp:4568
pi_result piextDeviceSelectBinary(pi_device Device, pi_device_binary *Binaries, pi_uint32 NumBinaries, pi_uint32 *SelectedBinaryInd)
Definition: pi2ur.hpp:1489
pi_result piextContextSetExtendedDeleter(pi_context Context, pi_context_extended_deleter Function, void *UserData)
Definition: pi2ur.hpp:1568
pi_result piextCommandBufferMemBufferRead(pi_ext_command_buffer CommandBuffer, pi_mem Src, size_t Offset, size_t Size, void *Dst, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4757
pi_result piextReleaseExternalSemaphore(pi_context Context, pi_device Device, pi_interop_semaphore_handle SemHandle)
Definition: pi2ur.hpp:5625
pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program, const char *FunctionName, pi_uint64 *FunctionPointerRet)
Definition: pi2ur.hpp:2210
pi_result piEnqueueMemBufferCopyRect(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3988
pi_result piextMemMipmapGetLevel(pi_context Context, pi_device Device, pi_image_mem_handle MipMem, unsigned int Level, pi_image_mem_handle *RetMem)
Definition: pi2ur.hpp:5255
pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime, uint64_t *HostTime)
Definition: pi2ur.hpp:1481
pi_result piEventGetInfo(pi_event Event, pi_event_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:4278
pi_result piMemBufferPartition(pi_mem Buffer, pi_mem_flags Flags, pi_buffer_create_type BufferCreateType, void *BufferCreateInfo, pi_mem *RetMem)
Definition: pi2ur.hpp:3170
pi_result piEnqueueMemBufferCopy(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4022
pi_result piContextCreate(const pi_context_properties *Properties, pi_uint32 NumDevices, const pi_device *Devices, void(*PFnNotify)(const char *ErrInfo, const void *PrivateInfo, size_t CB, void *UserData), void *UserData, pi_context *RetContext)
Definition: pi2ur.hpp:1548
pi_result piextUSMPitchedAlloc(void **ResultPtr, size_t *ResultPitch, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes)
Definition: pi2ur.hpp:3317
pi_result piextUSMRelease(const void *HostPtr, pi_context Context)
Definition: pi2ur.hpp:3629
pi_result piEventRelease(pi_event Event)
Definition: pi2ur.hpp:4427
pi_result piKernelGetSubGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_sub_group_info ParamName, size_t InputValueSize, const void *InputValue, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2585
pi_result piQueueRetain(pi_queue Queue)
Definition: pi2ur.hpp:1901
pi_result piextCommandBufferReleaseCommand(pi_ext_command_buffer_command command)
Definition: pi2ur.hpp:5004
pi_result piDeviceRelease(pi_device Device)
Definition: pi2ur.hpp:1014
pi_result piContextRetain(pi_context Context)
Definition: pi2ur.hpp:1669
pi_result piextMemImageAllocate(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_mem_handle *RetMem)
Definition: pi2ur.hpp:5072
pi_result piextUSMHostAlloc(void **ResultPtr, pi_context Context, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Definition: pi2ur.hpp:2836
pi_result piextCommandBufferRetain(pi_ext_command_buffer CommandBuffer)
Definition: pi2ur.hpp:4617
pi_result piDeviceGetInfo(pi_device Device, pi_device_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1039
pi_result piextMemImageGetInfo(pi_context Context, pi_image_mem_handle MemHandle, pi_image_info ParamName, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:5421
pi_result piextImportExternalMemory(pi_context Context, pi_device Device, pi_external_mem_descriptor *MemDescriptor, pi_interop_mem_handle *RetHandle)
Definition: pi2ur.hpp:5452
pi_result piextVirtualMemGetInfo(pi_context Context, const void *Ptr, size_t RangeSize, pi_virtual_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:5841
pi_result piextCommandBufferAdviseUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4875
pi_result piextKernelCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, pi_program Program, bool OwnNativeHandle, pi_kernel *Kernel)
Definition: pi2ur.hpp:2331
pi_result piextMemSampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
Definition: pi2ur.hpp:5385
pi_result piEnqueueMemBufferFill(pi_queue Queue, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3942
pi_result piextDeviceCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform Platform, pi_device *Device)
Definition: pi2ur.hpp:1382
pi_result piextUSMEnqueueMemcpy2D(pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch, const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
USM 2D Memcpy API.
Definition: pi2ur.hpp:3699
pi_result piEnqueueMemBufferMap(pi_queue Queue, pi_mem Mem, pi_bool BlockingMap, pi_map_flags MapFlags, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent, void **RetMap)
Definition: pi2ur.hpp:3887
pi_result piextCommandBufferRetainCommand(pi_ext_command_buffer_command command)
Definition: pi2ur.hpp:4996
pi_result piextEnqueueCommandBuffer(pi_ext_command_buffer CommandBuffer, pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:4918
pi_result piextCommandBufferCreate(pi_context Context, pi_device Device, const pi_ext_command_buffer_desc *Desc, pi_ext_command_buffer *RetCommandBuffer)
Definition: pi2ur.hpp:4597
pi_result piextEnqueueCooperativeKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3756
pi_result piextUSMEnqueueMemset2D(pi_queue Queue, void *Ptr, size_t Pitch, int Value, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitList, pi_event *Event)
Definition: pi2ur.hpp:3556
pi_result piEnqueueMemImageCopy(pi_queue Queue, pi_mem SrcImage, pi_mem DstImage, pi_image_offset SrcOrigin, pi_image_offset DstOrigin, pi_image_region Region, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3232
pi_result piextMemImageCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, pi_mem *RetImage)
Definition: pi2ur.hpp:3142
pi_result piextQueueCreate(pi_context Context, pi_device Device, pi_queue_properties *Properties, pi_queue *Queue)
Definition: pi2ur.hpp:1688
pi_result piextProgramCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_program *Program)
Definition: pi2ur.hpp:2423
pi_result piextImportExternalSemaphore(pi_context Context, pi_device Device, pi_external_semaphore_descriptor *SemDescriptor, pi_interop_semaphore_handle *RetHandle)
Definition: pi2ur.hpp:5558
pi_result piextUSMFree(pi_context Context, void *Ptr)
Definition: pi2ur.hpp:3402
pi_result piextEnqueueDeviceGlobalVariableRead(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingRead, size_t Count, size_t Offset, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
API reading data from a device global variable to host.
Definition: pi2ur.hpp:2734
pi_result piEventCreate(pi_context Context, pi_event *RetEvent)
Definition: pi2ur.hpp:4360
pi_result piextKernelGetNativeHandle(pi_kernel Kernel, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:2662
pi_result piQueueFinish(pi_queue Queue)
Definition: pi2ur.hpp:1840
pi_result piextCommandBufferMemBufferFill(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4823
pi_result piContextRelease(pi_context Context)
Definition: pi2ur.hpp:1677
pi_result piextUSMEnqueueFill(pi_queue Queue, void *Ptr, const void *Pattern, size_t PatternSize, size_t Count, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3964
pi_result piextPlatformCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform *Platform)
Definition: pi2ur.hpp:878
pi_result piextMemReleaseInterop(pi_context Context, pi_device Device, pi_interop_mem_handle ExtMem)
Definition: pi2ur.hpp:5542
pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
Definition: pi2ur.hpp:2302
pi_result piEventRetain(pi_event Event)
Definition: pi2ur.hpp:4418
pi_result piextVirtualMemGranularityGetInfo(pi_context Context, pi_device Device, pi_virtual_mem_granularity_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:5688
pi_result piextContextGetNativeHandle(pi_context Context, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:1577
pi_result piMemRelease(pi_mem Mem)
Definition: pi2ur.hpp:3419
pi_result piextMemImageCopy(pi_queue Queue, void *DstPtr, const void *SrcPtr, const pi_image_desc *SrcImageDesc, const pi_image_desc *DstImageDesc, const pi_image_format *SrcImageFormat, const pi_image_format *DstImageFormat, const pi_image_copy_flags Flags, pi_image_offset SrcOffset, pi_image_offset DstOffset, pi_image_region CopyExtent, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5323
pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4047
pi_result piextCommandBufferFinalize(pi_ext_command_buffer CommandBuffer)
Definition: pi2ur.hpp:4637
pi_result piPluginGetLastError(char **Message)
Definition: pi2ur.hpp:1022
pi_result piEnqueueMemImageRead(pi_queue Queue, pi_mem Image, pi_bool BlockingRead, pi_image_offset Origin, pi_image_region Region, size_t RowPitch, size_t SlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:3861
pi_result piKernelRelease(pi_kernel Kernel)
Definition: pi2ur.hpp:2551
pi_result piextMemImageFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
Definition: pi2ur.hpp:5274
pi_result piextMemUnsampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle)
Definition: pi2ur.hpp:5095
pi_result piextContextCreateWithNativeHandle(pi_native_handle NativeHandle, pi_uint32 NumDevices, const pi_device *Devices, bool OwnNativeHandle, pi_context *RetContext)
Definition: pi2ur.hpp:1588
pi_result piextPeerAccessGetInfo(pi_device command_device, pi_device peer_device, pi_peer_attr attr, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: pi2ur.hpp:5038
pi_result piQueueRelease(pi_queue Queue)
Definition: pi2ur.hpp:1830
pi_result piextCommandBufferRelease(pi_ext_command_buffer CommandBuffer)
Definition: pi2ur.hpp:4627
pi_result piContextGetInfo(pi_context Context, pi_context_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:1614
pi_result piextCommandBufferMemBufferCopy(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4680
pi_result piextCommandBufferFillUSM(pi_ext_command_buffer CommandBuffer, void *Ptr, const void *Pattern, size_t PatternSize, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4840
pi_result piextMemGetNativeHandle(pi_mem Mem, pi_device Dev, pi_native_handle *NativeHandle)
Definition: pi2ur.hpp:3217
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program, const char *GlobalVariableName, size_t *GlobalVariableSize, void **GlobalVariablePointerRet)
Definition: pi2ur.hpp:2229
pi_result piextVirtualMemReserve(pi_context Context, const void *Start, size_t RangeSize, void **RetPtr)
Definition: pi2ur.hpp:5757
pi_result piextSignalExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, bool HasSignalValue, pi_uint64 SignalValue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5661
pi_result piTearDown(void *PluginParameter)
Definition: pi2ur.hpp:808
pi_result piextDisablePeerAccess(pi_device command_device, pi_device peer_device)
Definition: pi2ur.hpp:5027
pi_result piextCommandBufferMemBufferCopyRect(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4698
pi_result piextEnablePeerAccess(pi_device command_device, pi_device peer_device)
Definition: pi2ur.hpp:5017
pi_result piDevicePartition(pi_device Device, const pi_device_partition_property *Properties, pi_uint32 NumEntries, pi_device *SubDevices, pi_uint32 *NumSubDevices)
Definition: pi2ur.hpp:1405
pi_result piEnqueueMemBufferReadRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingRead, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4125
pi_result piMemImageCreate(pi_context Context, pi_mem_flags Flags, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, void *HostPtr, pi_mem *RetImage)
Definition: pi2ur.hpp:3100
pi_result piProgramBuild(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
Definition: pi2ur.hpp:2128
pi_result piEnqueueMemBufferWriteRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4067
pi_result piProgramRetain(pi_program Program)
Definition: pi2ur.hpp:2351
pi_result piextUSMEnqueueMemAdvise(pi_queue Queue, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_event *OutEvent)
USM memadvise API to govern behavior of automatic migration mechanisms.
Definition: pi2ur.hpp:3475
pi_result piextProgramSetSpecializationConstant(pi_program Program, pi_uint32 SpecID, size_t Size, const void *SpecValue)
Definition: pi2ur.hpp:2157
pi_result piextUSMSharedAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Definition: pi2ur.hpp:3338
pi_result piEnqueueMemBufferRead(pi_queue Queue, pi_mem Src, pi_bool BlockingRead, size_t Offset, size_t Size, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi2ur.hpp:4160
pi_result piProgramCreate(pi_context Context, const void *ILBytes, size_t Length, pi_program *Program)
Definition: pi2ur.hpp:1929
pi_result piEventsWait(pi_uint32 NumEvents, const pi_event *EventsWaitList)
Definition: pi2ur.hpp:4264
pi_result piDeviceRetain(pi_device Device)
Definition: pi2ur.hpp:1007
pi_result piextCommandBufferMemcpyUSM(pi_ext_command_buffer CommandBuffer, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
Definition: pi2ur.hpp:4666
pi_result piextMemCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_mem *Mem)
Definition: pi2ur.hpp:3263
pi_result piMemGetInfo(pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi2ur.hpp:2866
pi_result piextEnqueueNativeCommand(pi_queue Queue, pi_enqueue_native_command_function Fn, void *Data, pi_uint32 NumMems, const pi_mem *MemList, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi2ur.hpp:5876
pi_result piProgramCompile(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputHeaders, const pi_program *InputHeaders, const char **HeaderIncludeNames, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
Definition: pi2ur.hpp:2090
pi_result piextPhysicalMemCreate(pi_context Context, pi_device Device, size_t MemSize, pi_physical_mem *RetPhyscialMem)
Definition: pi2ur.hpp:5717
#define PI_ASSERT(condition, error)
Definition: pi2ur.hpp:156
pi_bitfield pi_virtual_access_flags
Definition: pi.h:896
void(*)(pi_queue, void *) pi_enqueue_native_command_function
Definition: pi.h:1315
int32_t pi_int32
Definition: pi.h:262
uintptr_t pi_native_handle
Definition: pi.h:267
pi_bitfield pi_map_flags
Definition: pi.h:856
_pi_result
Definition: pi.h:274
pi_uint32 pi_bool
Definition: pi.h:265
pi_bitfield pi_usm_mem_properties
Definition: pi.h:868
_pi_device_info
Definition: pi.h:355
_pi_queue_info
Definition: pi.h:575
_pi_mem_advice
Definition: pi.h:678
_pi_kernel_sub_group_info
Definition: pi.h:617
pi_bitfield pi_mem_properties
Definition: pi.h:862
_pi_kernel_group_info
Definition: pi.h:596
pi_uint64 pi_image_handle
Definition: pi.h:1310
_pi_ext_command_buffer_command * pi_ext_command_buffer_command
Definition: pi.h:2657
_pi_kernel_exec_info
Definition: pi.h:1776
_pi_platform_info
Definition: pi.h:289
_pi_image_info
Definition: pi.h:607
pi_uint32 pi_ext_sync_point
Definition: pi.h:2658
_pi_profiling_info
Definition: pi.h:835
_pi_usm_migration_flags
Definition: pi.h:2162
_pi_device_type
Definition: pi.h:322
uint64_t pi_uint64
Definition: pi.h:264
pi_bitfield pi_queue_properties
Definition: pi.h:881
_pi_image_copy_flags
Definition: pi.h:755
pi_bitfield pi_sampler_properties
Definition: pi.h:812
_pi_buffer_create_type
Definition: pi.h:761
uint32_t pi_uint32
Definition: pi.h:263
_pi_event_info
Definition: pi.h:624
intptr_t pi_context_properties
Definition: pi.h:804
pi_bitfield pi_mem_flags
Definition: pi.h:846
constexpr pi_queue_properties PI_QUEUE_FLAGS
Definition: pi.h:882
_pi_virtual_mem_info
Definition: pi.h:800
void(* pi_context_extended_deleter)(void *user_data)
Definition: pi.h:1516
_pi_sampler_info
Definition: pi.h:766
_pi_kernel_info
Definition: pi.h:587
_pi_mem_alloc_info
Definition: pi.h:2145
_pi_context_info
Definition: pi.h:558
void * pi_image_mem_handle
Definition: pi.h:1311
#define _PI_PLUGIN_VERSION_CHECK(PI_API_VERSION, PI_PLUGIN_VERSION)
Definition: pi.h:240
_pi_program_info
Definition: pi.h:546
intptr_t pi_device_partition_property
Definition: pi.h:947
_pi_mem_info
Definition: pi.h:1338
_pi_virtual_mem_granularity_info
Definition: pi.h:795
pi_uint64 pi_interop_semaphore_handle
Definition: pi.h:1313
_pi_peer_attr
Definition: pi.h:1340
pi_uint64 pi_interop_mem_handle
Definition: pi.h:1312
_pi_program_build_info
Definition: pi.h:298
C++ wrapper of extern "C" PI interfaces.
pi_result piextReleaseExternalSemaphore(pi_context Context, pi_device Device, pi_interop_semaphore_handle SemHandle)
API to release the external semaphore.
Definition: pi_hip.cpp:491
pi_result piextContextSetExtendedDeleter(pi_context Context, pi_context_extended_deleter Function, void *UserData)
Definition: pi_hip.cpp:135
pi_result piextQueueCreateWithNativeHandle(pi_native_handle NativeHandle, int32_t NativeHandleDesc, pi_context Context, pi_device Device, bool OwnNativeHandle, pi_queue_properties *Properties, pi_queue *Queue)
Creates PI queue object from a native handle.
Definition: pi_hip.cpp:201
pi_result piextDisablePeerAccess(pi_device command_device, pi_device peer_device)
Definition: pi_hip.cpp:1292
pi_result piDeviceGetInfo(pi_device Device, pi_device_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Returns requested info for provided native device Return PI_DEVICE_INFO_EXTENSION_DEVICELIB_ASSERT fo...
Definition: pi_hip.cpp:81
pi_result piMemBufferCreate(pi_context Context, pi_mem_flags Flags, size_t Size, void *HostPtr, pi_mem *RetMem, const pi_mem_properties *properties)
Definition: pi_hip.cpp:213
pi_result piMemRelease(pi_mem Mem)
Definition: pi_hip.cpp:228
pi_result piEventSetStatus(pi_event Event, pi_int32 ExecutionStatus)
Definition: pi_hip.cpp:637
pi_result piextEnqueueCommandBuffer(pi_ext_command_buffer CommandBuffer, pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to submit the command-buffer to queue for execution, returns an error if the command-buffer is no...
Definition: pi_hip.cpp:1247
pi_result piextEnablePeerAccess(pi_device command_device, pi_device peer_device)
Definition: pi_hip.cpp:1286
pi_result piextEnqueueDeviceGlobalVariableWrite(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite, size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Device global variable.
Definition: pi_hip.cpp:1027
pi_result piextCommandBufferMemBufferCopy(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer copy command to the command-buffer.
Definition: pi_hip.cpp:1142
pi_result piProgramGetBuildInfo(pi_program Program, pi_device Device, pi_program_build_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:313
pi_result piKernelGetGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_group_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:514
pi_result piextDeviceCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform Platform, pi_device *Device)
Creates PI device object from a native handle.
Definition: pi_hip.cpp:109
pi_result piEventSetCallback(pi_event Event, pi_int32 CommandExecCallbackType, void(*PFnNotify)(pi_event Event, pi_int32 EventCommandStatus, void *UserData), void *UserData)
Definition: pi_hip.cpp:628
pi_result piextCommandBufferFinalize(pi_ext_command_buffer CommandBuffer)
API to stop command-buffer recording such that no more commands can be appended, and makes the comman...
Definition: pi_hip.cpp:1117
pi_result piKernelCreate(pi_program Program, const char *KernelName, pi_kernel *RetKernel)
Definition: pi_hip.cpp:344
pi_result piProgramCompile(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputHeaders, const pi_program *InputHeaders, const char **HeaderIncludeNames, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
Definition: pi_hip.cpp:294
pi_result piextEnqueueNativeCommand(pi_queue Queue, pi_enqueue_native_command_function Fn, void *Data, pi_uint32 NumMems, const pi_mem *Mems, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to enqueue work through a backend API such that the plugin can schedule the backend API calls wit...
Definition: pi_hip.cpp:1371
pi_result piextCommandBufferPrefetchUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM Prefetch command to the command-buffer.
Definition: pi_hip.cpp:1229
pi_result piextDeviceGetNativeHandle(pi_device Device, pi_native_handle *NativeHandle)
Gets the native handle of a PI device object.
Definition: pi_hip.cpp:103
pi_result piextPhysicalMemCreate(pi_context context, pi_device device, size_t mem_size, pi_physical_mem *ret_physical_mem)
API for creating a physical memory handle that virtual memory can be mapped to.
Definition: pi_hip.cpp:1317
pi_result piextPlatformCreateWithNativeHandle(pi_native_handle NativeHandle, pi_platform *Platform)
Creates PI platform object from a native handle.
Definition: pi_hip.cpp:50
pi_result piQueueRetain(pi_queue Queue)
Definition: pi_hip.cpp:183
pi_result piQueueRelease(pi_queue Queue)
Definition: pi_hip.cpp:185
pi_result piextCommandBufferReleaseCommand(pi_ext_command_buffer_command Command)
API to decrement the reference count of a command-buffer command.
Definition: pi_hip.cpp:1268
pi_result piextPluginGetOpaqueData(void *opaque_data_param, void **opaque_data_return)
API to get Plugin internal data, opaque to SYCL RT.
Definition: pi_hip.cpp:1272
pi_result piextCommandBufferNDRangeKernel(pi_ext_command_buffer CommandBuffer, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint, pi_ext_command_buffer_command *Command)
API to append a kernel execution command to the command-buffer.
Definition: pi_hip.cpp:1121
pi_result piextEventGetNativeHandle(pi_event Event, pi_native_handle *NativeHandle)
Gets the native handle of a PI event object.
Definition: pi_hip.cpp:647
pi_result piProgramRelease(pi_program Program)
Definition: pi_hip.cpp:327
pi_result piProgramCreateWithBinary(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const size_t *Lengths, const unsigned char **Binaries, size_t NumMetadataEntries, const pi_device_binary_property *Metadata, pi_int32 *BinaryStatus, pi_program *Program)
Creates a PI program for a context and loads the given binary into it.
Definition: pi_hip.cpp:256
pi_result piextMemImageFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
API to free memory for bindless images.
Definition: pi_hip.cpp:419
pi_result piEnqueueMemBufferRead(pi_queue Queue, pi_mem Src, pi_bool BlockingRead, size_t Offset, size_t Size, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:708
pi_result piextVirtualMemGetInfo(pi_context context, const void *ptr, size_t range_size, pi_virtual_mem_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
API for getting info about a mapped virtual memory range.
Definition: pi_hip.cpp:1360
pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
Definition: pi_hip.cpp:350
pi_result piextDeviceSelectBinary(pi_device Device, pi_device_binary *Binaries, pi_uint32 NumBinaries, pi_uint32 *SelectedBinaryInd)
Selects the most appropriate device binary based on runtime information and the IR characteristics.
Definition: pi_hip.cpp:96
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_hip.cpp:244
pi_result piSamplerRelease(pi_sampler Sampler)
Definition: pi_hip.cpp:687
pi_result piDeviceRelease(pi_device Device)
Definition: pi_hip.cpp:77
pi_result piextMemUnsampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
API to destroy bindless unsampled image handles.
Definition: pi_hip.cpp:443
pi_result piEnqueueMemImageRead(pi_queue Queue, pi_mem Image, pi_bool BlockingRead, pi_image_offset Origin, pi_image_region Region, size_t RowPitch, size_t SlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:823
pi_result piextUSMFree(pi_context Context, void *Ptr)
Indicates that the allocated USM memory is no longer needed on the runtime side.
Definition: pi_hip.cpp:929
pi_result piQueueFlush(pi_queue Queue)
Definition: pi_hip.cpp:191
pi_result piMemRetain(pi_mem Mem)
Definition: pi_hip.cpp:226
pi_result piContextGetInfo(pi_context Context, pi_context_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:127
pi_result piextVirtualMemMap(pi_context context, const void *ptr, size_t range_size, pi_physical_mem physical_mem, size_t offset, pi_virtual_access_flags flags)
API for mapping a virtual memory range to a a physical memory allocation at a given offset.
Definition: pi_hip.cpp:1342
pi_result piEnqueueMemBufferCopyRect(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:771
pi_result piKernelSetExecInfo(pi_kernel Kernel, pi_kernel_exec_info ParamName, size_t ParamValueSize, const void *ParamValue)
API to set attributes controlling kernel execution.
Definition: pi_hip.cpp:1087
pi_result piextPhysicalMemRetain(pi_physical_mem physical_mem)
API for retaining a physical memory handle.
Definition: pi_hip.cpp:1324
pi_result piSamplerGetInfo(pi_sampler Sampler, pi_sampler_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:675
pi_result piextProgramSetSpecializationConstant(pi_program Prog, pi_uint32 SpecID, size_t Size, const void *SpecValue)
Sets a specialization constant to a specific value.
Definition: pi_hip.cpp:1094
pi_result piextUSMEnqueueMemcpy(pi_queue Queue, pi_bool Blocking, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumEventsInWaitlist, const pi_event *EventsWaitlist, pi_event *Event)
USM Memcpy API.
Definition: pi_hip.cpp:947
pi_result piextQueueCreate(pi_context Context, pi_device Device, pi_queue_properties *Properties, pi_queue *Queue)
Definition: pi_hip.cpp:170
pi_result piextCommandBufferMemBufferWrite(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer write command to the command-buffer.
Definition: pi_hip.cpp:1186
pi_result piEnqueueMemBufferFill(pi_queue Queue, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:784
pi_result piextEnqueueCooperativeKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Definition: pi_hip.cpp:553
pi_result piextPeerAccessGetInfo(pi_device command_device, pi_device peer_device, pi_peer_attr attr, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:1298
pi_result piEventCreate(pi_context Context, pi_event *RetEvent)
Create PI event object in a signalled/completed state.
Definition: pi_hip.cpp:605
pi_result piextEnqueueKernelLaunchCustom(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumPropsInLaunchPropList, const pi_launch_property *LaunchPropList, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *OutEvent)
Definition: pi_hip.cpp:563
pi_result piextCommandBufferMemcpyUSM(pi_ext_command_buffer CommandBuffer, void *DstPtr, const void *SrcPtr, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM memcpy command to the command-buffer.
Definition: pi_hip.cpp:1133
pi_result piextCommandBufferMemBufferCopyRect(pi_ext_command_buffer CommandBuffer, pi_mem SrcMem, pi_mem DstMem, pi_buff_rect_offset SrcOrigin, pi_buff_rect_offset DstOrigin, pi_buff_rect_region Region, size_t SrcRowPitch, size_t SrcSlicePitch, size_t DstRowPitch, size_t DstSlicePitch, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a rectangular mem buffer copy command to the command-buffer.
Definition: pi_hip.cpp:1152
pi_result piTearDown(void *PluginParameter)
API to notify that the plugin should clean up its resources.
Definition: pi_hip.cpp:1277
pi_result piextMemUnsampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_handle *RetHandle)
API to create bindless image handles.
Definition: pi_hip.cpp:386
pi_result piextKernelGetNativeHandle(pi_kernel Kernel, pi_native_handle *NativeHandle)
Gets the native handle of a PI kernel object.
Definition: pi_hip.cpp:593
pi_result piextUSMEnqueueMemcpy2D(pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch, const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height, pi_uint32 NumEventsInWaitlist, const pi_event *EventWaitlist, pi_event *Event)
USM 2D Memcpy API.
Definition: pi_hip.cpp:1000
pi_result piSamplerRetain(pi_sampler Sampler)
Definition: pi_hip.cpp:683
pi_result piEventRelease(pi_event Event)
Definition: pi_hip.cpp:643
pi_result piKernelRelease(pi_kernel Kernel)
Definition: pi_hip.cpp:537
pi_result piEventGetProfilingInfo(pi_event Event, pi_profiling_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:616
pi_result piMemGetInfo(pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:220
pi_result piextMemSampledImageCreate(pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_sampler Sampler, pi_image_handle *RetHandle)
API to create sampled bindless image handles.
Definition: pi_hip.cpp:394
pi_result piEnqueueMemBufferMap(pi_queue Queue, pi_mem Mem, pi_bool BlockingMap, pi_map_flags MapFlags, size_t Offset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent, void **RetMap)
Definition: pi_hip.cpp:796
pi_result piEnqueueMemBufferWrite(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, size_t Offset, size_t Size, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:734
pi_result piKernelGetInfo(pi_kernel Kernel, pi_kernel_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:369
pi_result piextUSMImport(const void *HostPtr, size_t Size, pi_context Context)
Import host system memory into USM.
Definition: pi_hip.cpp:1019
pi_result piextUSMEnqueueFill2D(pi_queue Queue, void *Ptr, size_t Pitch, size_t PatternSize, const void *Pattern, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitList, pi_event *Event)
USM 2D fill API.
Definition: pi_hip.cpp:975
pi_result piPluginInit(pi_plugin *PluginInit)
Definition: pi_hip.cpp:1382
pi_result piPlatformGetInfo(pi_platform Platform, pi_platform_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:38
pi_result piextMemMipmapGetLevel(pi_context Context, pi_device Device, pi_image_mem_handle MipMem, unsigned int Level, pi_image_mem_handle *RetMem)
API to retrieve individual image from mipmap.
Definition: pi_hip.cpp:411
pi_result piextMemMipmapFree(pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
API to free mipmap memory for bindless images.
Definition: pi_hip.cpp:424
pi_result piextSignalExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, bool HasSignalValue, pi_uint64 SignalValue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to instruct the queue to signal the external semaphore handle once all previous commands have com...
Definition: pi_hip.cpp:505
pi_result piextCommandBufferRetainCommand(pi_ext_command_buffer_command Command)
API to increment the reference count of a command-buffer command.
Definition: pi_hip.cpp:1263
pi_result piextUSMSharedAlloc(void **ResultPtr, 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_hip.cpp:903
pi_result piEnqueueMemBufferWriteRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingWrite, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:746
pi_result piextGetDeviceFunctionPointer(pi_device Device, pi_program Program, const char *FunctionName, pi_uint64 *FunctionPointerRet)
Retrieves a device function pointer to a user-defined function.
Definition: pi_hip.cpp:878
pi_result piextUSMEnqueueMemAdvise(pi_queue Queue, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_event *OutEvent)
USM Memadvise API.
Definition: pi_hip.cpp:968
pi_result piextUSMHostAlloc(void **ResultPtr, pi_context Context, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Allocates host memory accessible by the device.
Definition: pi_hip.cpp:922
pi_result piProgramRetain(pi_program Program)
Definition: pi_hip.cpp:323
pi_result piextVirtualMemSetAccess(pi_context context, const void *ptr, size_t range_size, pi_virtual_access_flags flags)
API for setting the access mode of a mapped virtual memory range.
Definition: pi_hip.cpp:1354
pi_result piQueueGetInfo(pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:175
pi_result piQueueCreate(pi_context Context, pi_device Device, pi_queue_properties Flags, pi_queue *Queue)
Definition: pi_hip.cpp:164
pi_result piextGetGlobalVariablePointer(pi_device Device, pi_program Program, const char *GlobalVariableName, size_t *GlobalVariableSize, void **GlobalVariablePointerRet)
Definition: pi_hip.cpp:885
const char SupportedVersion[]
Definition: pi_hip.cpp:1380
pi_result piContextRelease(pi_context Context)
Definition: pi_hip.cpp:160
pi_result piextMemMapExternalArray(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_interop_mem_handle MemHandle, pi_image_mem_handle *RetMem)
API to map an interop memory handle to an image memory handle.
Definition: pi_hip.cpp:468
pi_result piEnqueueMemBufferCopy(pi_queue Queue, pi_mem SrcMem, pi_mem DstMem, size_t SrcOffset, size_t DstOffset, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:760
pi_result piEnqueueMemImageCopy(pi_queue Queue, pi_mem SrcImage, pi_mem DstImage, pi_image_offset SrcOrigin, pi_image_offset DstOrigin, pi_image_region Region, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:849
pi_result piextCommandBufferUpdateKernelLaunch(pi_ext_command_buffer_command Command, pi_ext_command_buffer_update_kernel_launch_desc *Desc)
API to update a kernel launch command inside of a command-buffer.
Definition: pi_hip.cpp:1256
pi_result piEventGetInfo(pi_event Event, pi_event_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:609
pi_result piProgramGetInfo(pi_program Program, pi_program_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:275
pi_result piextUSMEnqueueFill(pi_queue Queue, void *Ptr, const void *Pattern, size_t PatternSize, size_t Count, pi_uint32 NumEventsInWaitlist, const pi_event *EventsWaitlist, pi_event *Event)
USM Fill API.
Definition: pi_hip.cpp:939
pi_result piextUSMEnqueueMemset2D(pi_queue Queue, void *Ptr, size_t Pitch, int Value, size_t Width, size_t Height, pi_uint32 NumEventsWaitList, const pi_event *EventsWaitlist, pi_event *Event)
USM 2D Memset API.
Definition: pi_hip.cpp:988
pi_result piextCommandBufferMemBufferWriteRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, const void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a rectangular mem buffer write command to the command-buffer.
Definition: pi_hip.cpp:1195
pi_result piextMemReleaseInterop(pi_context Context, pi_device Device, pi_interop_mem_handle ExtMem)
API to destroy interop memory.
Definition: pi_hip.cpp:476
pi_result piextUSMRelease(const void *HostPtr, pi_context Context)
Release host system memory from USM.
Definition: pi_hip.cpp:1023
pi_result piEventsWait(pi_uint32 NumEvents, const pi_event *EventList)
Definition: pi_hip.cpp:624
pi_result piextPlatformGetNativeHandle(pi_platform Platform, pi_native_handle *NativeHandle)
Gets the native handle of a PI platform object.
Definition: pi_hip.cpp:45
pi_result piEnqueueMemBufferReadRect(pi_queue Queue, pi_mem Buffer, pi_bool BlockingRead, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:720
pi_result piMemBufferPartition(pi_mem Buffer, pi_mem_flags Flags, pi_buffer_create_type BufferCreateType, void *BufferCreateInfo, pi_mem *RetMem)
Definition: pi_hip.cpp:870
pi_result piPluginGetLastError(char **message)
API to get Plugin specific warning and error messages.
Definition: pi_hip.cpp:55
pi_result piextCommandBufferMemBufferRead(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, size_t Offset, size_t Size, void *Dst, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer read command to the command-buffer.
Definition: pi_hip.cpp:1164
pi_result piextVirtualMemReserve(pi_context context, const void *start, size_t range_size, void **ret_ptr)
API for reserving a virtual memory range.
Definition: pi_hip.cpp:1332
pi_result piEnqueueMemImageWrite(pi_queue Queue, pi_mem Image, pi_bool BlockingWrite, pi_image_offset Origin, pi_image_region Region, size_t InputRowPitch, size_t InputSlicePitch, const void *Ptr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:835
pi_result piextContextGetNativeHandle(pi_context Context, pi_native_handle *NativeHandle)
Gets the native handle of a PI context object.
Definition: pi_hip.cpp:141
pi_result piMemImageCreate(pi_context Context, pi_mem_flags Flags, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, void *HostPtr, pi_mem *RetImage)
Definition: pi_hip.cpp:230
pi_result piextUSMGetMemAllocInfo(pi_context Context, const void *Ptr, pi_mem_alloc_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
API to query information about USM allocated pointers Valid Queries: PI_MEM_ALLOC_TYPE returns host/d...
Definition: pi_hip.cpp:1011
pi_result piEnqueueTimestampRecordingExp(pi_queue Queue, pi_bool Blocking, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:661
pi_result piEnqueueEventsWaitWithBarrier(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Definition: pi_hip.cpp:699
pi_result piextMemSampledImageHandleDestroy(pi_context Context, pi_device Device, pi_image_handle Handle)
API to destroy bindless sampled image handles.
Definition: pi_hip.cpp:448
pi_result piQueueFinish(pi_queue Queue)
Definition: pi_hip.cpp:189
pi_result piextWaitExternalSemaphore(pi_queue Queue, pi_interop_semaphore_handle SemHandle, bool HasWaitValue, pi_uint64 WaitValue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to instruct the queue with a non-blocking wait on an external semaphore.
Definition: pi_hip.cpp:496
pi_result piextMemImageCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, pi_mem *Img)
Creates PI image object from a native handle.
Definition: pi_hip.cpp:267
pi_result piSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, pi_sampler *RetSampler)
Definition: pi_hip.cpp:669
pi_result piGetDeviceAndHostTimer(pi_device Device, uint64_t *DeviceTime, uint64_t *HostTime)
Queries device for it's global timestamp in nanoseconds, and updates HostTime with the value of the h...
Definition: pi_hip.cpp:1281
pi_result piPlatformsGet(pi_uint32 NumEntries, pi_platform *Platforms, pi_uint32 *NumPlatforms)
Definition: pi_hip.cpp:33
pi_result piDevicesGet(pi_platform Platform, pi_device_type DeviceType, pi_uint32 NumEntries, pi_device *Devices, pi_uint32 *NumDevices)
Definition: pi_hip.cpp:66
pi_result piEnqueueMemImageFill(pi_queue Queue, pi_mem Image, const void *FillColor, const size_t *Origin, const size_t *Region, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
Definition: pi_hip.cpp:858
pi_result piextEnqueueWriteHostPipe(pi_queue Queue, pi_program Program, const char *PipeSymbol, pi_bool Blocking, void *Ptr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Write to pipe of a given name.
Definition: pi_hip.cpp:1067
pi_result piextKernelSetArgMemObj(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_mem_obj_property *ArgProperties, const pi_mem *ArgValue)
Definition: pi_hip.cpp:356
pi_result piDevicePartition(pi_device Device, const pi_device_partition_property *Properties, pi_uint32 NumDevices, pi_device *OutDevices, pi_uint32 *OutNumDevices)
Definition: pi_hip.cpp:88
pi_result piextEnqueueDeviceGlobalVariableRead(pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingRead, size_t Count, size_t Offset, void *Dst, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
API reading data from a device global variable to host.
Definition: pi_hip.cpp:1036
pi_result piextMemImageGetInfo(pi_context Context, pi_image_mem_handle MemHandle, pi_image_info ParamName, void *ParamValue, size_t *ParamValueSizeRet)
API to query an image memory handle for specific properties.
Definition: pi_hip.cpp:453
pi_result piContextCreate(const pi_context_properties *Properties, pi_uint32 NumDevices, const pi_device *Devices, void(*PFnNotify)(const char *ErrInfo, const void *PrivateInfo, size_t CB, void *UserData), void *UserData, pi_context *RetContext)
Definition: pi_hip.cpp:117
pi_result piextUSMDeviceAlloc(void **ResultPtr, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t Size, pi_uint32 Alignment)
Allocates device memory.
Definition: pi_hip.cpp:894
pi_result piextKernelSetArgSampler(pi_kernel Kernel, pi_uint32 ArgIndex, const pi_sampler *ArgValue)
Definition: pi_hip.cpp:363
pi_result piextMemGetNativeHandle(pi_mem Mem, pi_device Dev, pi_native_handle *NativeHandle)
Gets the native handle of a PI mem object.
Definition: pi_hip.cpp:239
pi_result piextEnqueueReadHostPipe(pi_queue Queue, pi_program Program, const char *PipeSymbol, pi_bool Blocking, void *Ptr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
Plugin.
Definition: pi_hip.cpp:1047
pi_result piextUSMEnqueuePrefetch(pi_queue Queue, const void *Ptr, size_t Size, pi_usm_migration_flags Flags, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Hint to migrate memory to the device.
Definition: pi_hip.cpp:958
pi_result piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Definition: pi_hip.cpp:543
pi_result piextCommandBufferFillUSM(pi_ext_command_buffer CommandBuffer, void *Ptr, const void *Pattern, size_t PatternSize, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM fill command to the command-buffer.
Definition: pi_hip.cpp:1218
pi_result piextCommandBufferRetain(pi_ext_command_buffer CommandBuffer)
API to increment the reference count of the command-buffer.
Definition: pi_hip.cpp:1109
pi_result piProgramBuild(pi_program Program, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData)
Definition: pi_hip.cpp:305
pi_result piextImportExternalMemory(pi_context Context, pi_device Device, pi_external_mem_descriptor *MemDesc, pi_interop_mem_handle *RetHandle)
API to import external memory.
Definition: pi_hip.cpp:462
pi_result piKernelRetain(pi_kernel Kernel)
Definition: pi_hip.cpp:532
pi_result piEventRetain(pi_event Event)
Definition: pi_hip.cpp:641
pi_result piextVirtualMemUnmap(pi_context context, const void *ptr, size_t range_size)
API for unmapping a virtual memory range previously mapped in a context.
Definition: pi_hip.cpp:1349
pi_result piextContextCreateWithNativeHandle(pi_native_handle NativeHandle, pi_uint32 NumDevices, const pi_device *Devices, bool OwnNativeHandle, pi_context *RetContext)
Creates PI context object from a native handle.
Definition: pi_hip.cpp:146
pi_result piextCommandBufferRelease(pi_ext_command_buffer CommandBuffer)
API to decrement the reference count of the command-buffer.
Definition: pi_hip.cpp:1113
pi_result piPluginGetBackendOption(pi_platform platform, const char *frontend_option, const char **backend_option)
API to get backend specific option.
Definition: pi_hip.cpp:59
pi_result piextCommandBufferMemBufferFill(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, const void *Pattern, size_t PatternSize, size_t Offset, size_t Size, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a mem buffer fill command to the command-buffer.
Definition: pi_hip.cpp:1208
pi_result piextVirtualMemGranularityGetInfo(pi_context context, pi_device device, pi_virtual_mem_granularity_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Virtual memory.
Definition: pi_hip.cpp:1308
pi_result piProgramLink(pi_context Context, pi_uint32 NumDevices, const pi_device *DeviceList, const char *Options, pi_uint32 NumInputPrograms, const pi_program *InputPrograms, void(*PFnNotify)(pi_program Program, void *UserData), void *UserData, pi_program *RetProgram)
Definition: pi_hip.cpp:283
pi_result piextProgramCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_program *Program)
Creates PI program object from a native handle.
Definition: pi_hip.cpp:336
pi_result piextCommandBufferAdviseUSM(pi_ext_command_buffer CommandBuffer, const void *Ptr, size_t Length, pi_mem_advice Advice, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a USM Advise command to the command-buffer.
Definition: pi_hip.cpp:1238
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_hip.cpp:653
pi_result piMemImageGetInfo(pi_mem Image, pi_image_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
Definition: pi_hip.cpp:815
pi_result piEnqueueEventsWait(pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Definition: pi_hip.cpp:691
pi_result piextImportExternalSemaphore(pi_context Context, pi_device Device, pi_external_semaphore_descriptor *SemDesc, pi_interop_semaphore_handle *RetHandle)
API to import an external semaphore.
Definition: pi_hip.cpp:483
pi_result piDeviceRetain(pi_device Device)
Definition: pi_hip.cpp:73
pi_result piextVirtualMemFree(pi_context context, const void *ptr, size_t range_size)
API for freeing a virtual memory range.
Definition: pi_hip.cpp:1337
pi_result piextQueueGetNativeHandle(pi_queue Queue, pi_native_handle *NativeHandle, int32_t *NativeHandleDesc)
Gets the native handle of a PI queue object.
Definition: pi_hip.cpp:193
pi_result piextUSMPitchedAlloc(void **ResultPtr, size_t *ResultPitch, pi_context Context, pi_device Device, pi_usm_mem_properties *Properties, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes)
Allocates memory accessible on device.
Definition: pi_hip.cpp:912
pi_result piextMemImageCopy(pi_queue Queue, void *DstPtr, const void *SrcPtr, const pi_image_desc *SrcImageDesc, const pi_image_desc *DestImageDesc, const pi_image_format *SrcImageFormat, const pi_image_format *DestImageFormat, const pi_image_copy_flags Flags, pi_image_offset SrcOffset, pi_image_offset DstOffset, pi_image_region CopyExtent, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
API to copy image data Host to Device or Device to Host.
Definition: pi_hip.cpp:429
pi_result piextCommandBufferCreate(pi_context Context, pi_device Device, const pi_ext_command_buffer_desc *Desc, pi_ext_command_buffer *RetCommandBuffer)
API to create a command-buffer.
Definition: pi_hip.cpp:1102
pi_result piextCommandBufferMemBufferReadRect(pi_ext_command_buffer CommandBuffer, pi_mem Buffer, pi_buff_rect_offset BufferOffset, pi_buff_rect_offset HostOffset, pi_buff_rect_region Region, size_t BufferRowPitch, size_t BufferSlicePitch, size_t HostRowPitch, size_t HostSlicePitch, void *Ptr, pi_uint32 NumSyncPointsInWaitList, const pi_ext_sync_point *SyncPointWaitList, pi_ext_sync_point *SyncPoint)
API to append a rectangular mem buffer read command to the command-buffer.
Definition: pi_hip.cpp:1173
pi_result piextPhysicalMemRelease(pi_physical_mem physical_mem)
API for releasing a physical memory handle.
Definition: pi_hip.cpp:1328
pi_result piContextRetain(pi_context Context)
Definition: pi_hip.cpp:155
pi_result piextKernelSetArgPointer(pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
Sets up pointer arguments for CL kernels.
Definition: pi_hip.cpp:934
pi_result piextKernelSuggestMaxCooperativeGroupCount(pi_kernel Kernel, size_t LocalWorkSize, size_t DynamicSharedMemorySize, pi_uint32 *GroupCountRet)
Gets the max work group count for a cooperative kernel.
Definition: pi_hip.cpp:598
pi_result piKernelGetSubGroupInfo(pi_kernel Kernel, pi_device Device, pi_kernel_sub_group_info ParamName, size_t InputValueSize, const void *InputValue, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
API to query information from the sub-group from a kernel.
Definition: pi_hip.cpp:522
pi_result piextBindlessImageSamplerCreate(pi_context Context, const pi_sampler_properties *SamplerProperties, float MinMipmapLevelClamp, float MaxMipmapLevelClamp, float MaxAnisotropy, pi_sampler *RetSampler)
API to create samplers for bindless images.
Definition: pi_hip.cpp:402
pi_result piEnqueueMemUnmap(pi_queue Queue, pi_mem Mem, void *MappedPtr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
Definition: pi_hip.cpp:807
pi_result piextMemImageAllocate(pi_context Context, pi_device Device, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_image_mem_handle *RetMem)
API to allocate memory for bindless images.
Definition: pi_hip.cpp:377
pi_result piProgramCreate(pi_context Context, const void *ILBytes, size_t Length, pi_program *Program)
Definition: pi_hip.cpp:251
pi_result piextKernelCreateWithNativeHandle(pi_native_handle NativeHandle, pi_context Context, pi_program Program, bool OwnNativeHandle, pi_kernel *Kernel)
Creates PI kernel object from a native handle.
Definition: pi_hip.cpp:583
pi_result piextProgramGetNativeHandle(pi_program Program, pi_native_handle *NativeHandle)
Gets the native handle of a PI program object.
Definition: pi_hip.cpp:331
Declarations for HIP Plugin.
#define _PI_HIP_PLUGIN_VERSION_STRING
Definition: pi_hip.hpp:25
char PluginVersion[20]
Definition: pi.h:3273
struct _pi_plugin::FunctionPointers PiFunctionTable
char PiVersion[20]
Definition: pi.h:3271
This struct is a record of the device binary information.
Definition: pi.h:1123