DPC++ Runtime
Runtime libraries for oneAPI DPC++
pi_unified_runtime.cpp File Reference
#include <cstring>
#include <pi2ur.hpp>
#include <pi_unified_runtime.hpp>
#include <sycl/detail/pi.def>
Include dependency graph for pi_unified_runtime.cpp:

Go to the source code of this file.

Classes

struct  AdapterHolder
 

Macros

#define _PI_API(api)    (PluginInit->PiFunctionTable).api = (decltype(&::api))(&DieUnsupported);
 
#define _PI_API(api)    (PluginInit->PiFunctionTable).api = (decltype(&::api))(&api);
 

Functions

static void DieUnsupported ()
 
static void releaseAdapters (std::vector< ur_adapter_handle_t > &Vec)
 
pi_result piPlatformsGet (pi_uint32 NumEntries, pi_platform *Platforms, pi_uint32 *NumPlatforms)
 
pi_result piPlatformGetInfo (pi_platform Platform, pi_platform_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piDevicesGet (pi_platform Platform, pi_device_type DeviceType, pi_uint32 NumEntries, pi_device *Devices, pi_uint32 *NumDevices)
 
pi_result piDeviceRetain (pi_device Device)
 
pi_result piDeviceRelease (pi_device Device)
 
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 for PI_DEVICE_INFO_EXTENSIONS query when the device supports native asserts. More...
 
pi_result piDevicePartition (pi_device Device, const pi_device_partition_property *Properties, pi_uint32 NumDevices, pi_device *OutDevices, pi_uint32 *OutNumDevices)
 
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. More...
 
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)
 
pi_result piContextGetInfo (pi_context Context, pi_context_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piContextRelease (pi_context Context)
 
pi_result piQueueCreate (pi_context Context, pi_device Device, pi_queue_properties Flags, pi_queue *Queue)
 
pi_result piextQueueCreate (pi_context Context, pi_device Device, pi_queue_properties *Properties, pi_queue *Queue)
 
pi_result piQueueRelease (pi_queue Queue)
 
pi_result piProgramCreate (pi_context Context, const void *ILBytes, size_t Length, pi_program *Program)
 
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)
 
pi_result piextProgramSetSpecializationConstant (pi_program Prog, pi_uint32 SpecID, size_t Size, const void *SpecValue)
 Sets a specialization constant to a specific value. More...
 
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)
 
pi_result piKernelCreate (pi_program Program, const char *KernelName, pi_kernel *RetKernel)
 
pi_result piextKernelSetArgMemObj (pi_kernel Kernel, pi_uint32 ArgIndex, const pi_mem_obj_property *ArgProperties, const pi_mem *ArgValue)
 
pi_result piKernelSetArg (pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
 
pi_result piKernelGetGroupInfo (pi_kernel Kernel, pi_device Device, pi_kernel_group_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piMemBufferCreate (pi_context Context, pi_mem_flags Flags, size_t Size, void *HostPtr, pi_mem *RetMem, const pi_mem_properties *properties)
 
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. More...
 
pi_result piMemGetInfo (pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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)
 
pi_result piMemBufferPartition (pi_mem Buffer, pi_mem_flags Flags, pi_buffer_create_type BufferCreateType, void *BufferCreateInfo, pi_mem *RetMem)
 
pi_result piextMemGetNativeHandle (pi_mem Mem, pi_device Dev, pi_native_handle *NativeHandle)
 Gets the native handle of a PI mem object. More...
 
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)
 
pi_result piextMemCreateWithNativeHandle (pi_native_handle NativeHandle, pi_context Context, bool ownNativeHandle, pi_mem *Mem)
 Creates PI mem object from a native handle. More...
 
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)
 
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)
 
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)
 
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. More...
 
pi_result piEnqueueMemUnmap (pi_queue Queue, pi_mem Mem, void *MappedPtr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
pi_result piEventsWait (pi_uint32 NumEvents, const pi_event *EventList)
 
pi_result piQueueFinish (pi_queue Queue)
 
pi_result piEventGetInfo (pi_event Event, pi_event_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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)
 
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)
 
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. More...
 
pi_result piKernelRetain (pi_kernel Kernel)
 
pi_result piKernelRelease (pi_kernel Kernel)
 
pi_result piProgramRelease (pi_program Program)
 
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. More...
 
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. More...
 
pi_result piextUSMFree (pi_context Context, void *Ptr)
 Indicates that the allocated USM memory is no longer needed on the runtime side. More...
 
pi_result piextUSMImport (const void *HostPtr, size_t Size, pi_context Context)
 Import host system memory into USM. More...
 
pi_result piextUSMRelease (const void *HostPtr, pi_context Context)
 Release host system memory from USM. More...
 
pi_result piContextRetain (pi_context Context)
 
pi_result piextKernelSetArgPointer (pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
 Sets up pointer arguments for CL kernels. More...
 
pi_result piextKernelSetArgSampler (pi_kernel Kernel, pi_uint32 ArgIndex, const pi_sampler *ArgValue)
 
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. More...
 
pi_result piQueueGetInfo (pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piextUSMEnqueueMemset (pi_queue Queue, void *Ptr, pi_int32 Value, size_t Count, pi_uint32 NumEventsInWaitlist, const pi_event *EventsWaitlist, pi_event *Event)
 USM Memset API. More...
 
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)
 
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)
 
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. More...
 
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)
 
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)
 
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)
 
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)
 
pi_result piEnqueueEventsWaitWithBarrier (pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
pi_result piEnqueueEventsWait (pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
pi_result piextEventGetNativeHandle (pi_event Event, pi_native_handle *NativeHandle)
 Gets the native handle of a PI event object. More...
 
pi_result piEventGetProfilingInfo (pi_event Event, pi_profiling_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piProgramRetain (pi_program Program)
 
pi_result piKernelSetExecInfo (pi_kernel Kernel, pi_kernel_exec_info ParamName, size_t ParamValueSize, const void *ParamValue)
 API to set attributes controlling kernel execution. More...
 
pi_result piKernelGetInfo (pi_kernel Kernel, pi_kernel_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piQueueRetain (pi_queue Queue)
 
pi_result piQueueFlush (pi_queue Queue)
 
pi_result piMemRetain (pi_mem Mem)
 
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. More...
 
pi_result piProgramGetInfo (pi_program Program, pi_program_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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)
 
pi_result piProgramGetBuildInfo (pi_program Program, pi_device Device, pi_program_build_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piEventCreate (pi_context Context, pi_event *RetEvent)
 Create PI event object in a signalled/completed state. More...
 
pi_result piEventSetCallback (pi_event Event, pi_int32 CommandExecCallbackType, void(*PFnNotify)(pi_event Event, pi_int32 EventCommandStatus, void *UserData), void *UserData)
 
pi_result piEventSetStatus (pi_event Event, pi_int32 ExecutionStatus)
 
pi_result piEventRetain (pi_event Event)
 
pi_result piEventRelease (pi_event Event)
 
pi_result piextEventCreateWithNativeHandle (pi_native_handle NativeHandle, pi_context Context, bool OwnNativeHandle, pi_event *Event)
 Creates PI event object from a native handle. More...
 
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)
 
pi_result piextPlatformGetNativeHandle (pi_platform Platform, pi_native_handle *NativeHandle)
 Gets the native handle of a PI platform object. More...
 
pi_result piextPlatformCreateWithNativeHandle (pi_native_handle NativeHandle, pi_platform *Platform)
 Creates PI platform object from a native handle. More...
 
pi_result piextDeviceGetNativeHandle (pi_device Device, pi_native_handle *NativeHandle)
 Gets the native handle of a PI device object. More...
 
pi_result piextDeviceCreateWithNativeHandle (pi_native_handle NativeHandle, pi_platform Platform, pi_device *Device)
 Creates PI device object from a native handle. More...
 
pi_result piextContextSetExtendedDeleter (pi_context Context, pi_context_extended_deleter Function, void *UserData)
 
pi_result piextContextGetNativeHandle (pi_context Context, pi_native_handle *NativeHandle)
 Gets the native handle of a PI context object. More...
 
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. More...
 
pi_result piextQueueGetNativeHandle (pi_queue Queue, pi_native_handle *NativeHandle, int32_t *NativeHandleDesc)
 Gets the native handle of a PI queue object. More...
 
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. More...
 
pi_result piMemRelease (pi_mem Mem)
 
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. More...
 
pi_result piextGetGlobalVariablePointer (pi_device Device, pi_program Program, const char *GlobalVariableName, size_t *GlobalVariableSize, void **GlobalVariablePointerRet)
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
pi_result piextPluginGetOpaqueData (void *opaque_data_param, void **opaque_data_return)
 API to get Plugin internal data, opaque to SYCL RT. More...
 
pi_result piextProgramGetNativeHandle (pi_program Program, pi_native_handle *NativeHandle)
 Gets the native handle of a PI program object. More...
 
pi_result piextProgramCreateWithNativeHandle (pi_native_handle NativeHandle, pi_context Context, bool ownNativeHandle, pi_program *Program)
 Creates PI program object from a native handle. More...
 
pi_result piSamplerCreate (pi_context Context, const pi_sampler_properties *SamplerProperties, pi_sampler *RetSampler)
 
pi_result piSamplerGetInfo (pi_sampler Sampler, pi_sampler_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piSamplerRetain (pi_sampler Sampler)
 
pi_result piSamplerRelease (pi_sampler Sampler)
 
pi_result piMemImageGetInfo (pi_mem Image, pi_image_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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 *Event)
 USM 2D Memcpy API. More...
 
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)
 API for writing data from host to a device global variable. More...
 
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. More...
 
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. More...
 
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. More...
 
pi_result piextCommandBufferRetain (pi_ext_command_buffer CommandBuffer)
 API to increment the reference count of the command-buffer. More...
 
pi_result piextCommandBufferRelease (pi_ext_command_buffer CommandBuffer)
 API to decrement the reference count of the command-buffer. More...
 
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 command-buffer ready to enqueue on a command-queue. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 not finalized or another instance of the same command-buffer is currently executing. More...
 
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. More...
 
pi_result piextCommandBufferRetainCommand (pi_ext_command_buffer_command Command)
 API to increment the reference count of a command-buffer command. More...
 
pi_result piextCommandBufferReleaseCommand (pi_ext_command_buffer_command Command)
 API to decrement the reference count of a command-buffer command. More...
 
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 host timer at the closest possible point in time to that at which DeviceTime was returned. More...
 
pi_result piPluginGetBackendOption (pi_platform platform, const char *frontend_option, const char **backend_option)
 API to get backend specific option. More...
 
pi_result piextEnablePeerAccess (pi_device command_device, pi_device peer_device)
 
pi_result piextDisablePeerAccess (pi_device command_device, pi_device peer_device)
 
pi_result piextPeerAccessGetInfo (pi_device command_device, pi_device peer_device, pi_peer_attr attr, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piTearDown (void *)
 API to notify that the plugin should clean up its resources. More...
 
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. More...
 
pi_result piextMemUnsampledImageCreate (pi_context Context, pi_device Device, pi_image_mem_handle ImgMem, pi_image_format *ImageFormat, pi_image_desc *ImageDesc, pi_mem *RetMem, pi_image_handle *RetHandle)
 API to create bindless image handles. More...
 
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_mem *RetMem, pi_image_handle *RetHandle)
 API to create sampled bindless image handles. More...
 
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. More...
 
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. More...
 
pi_result piextMemImageFree (pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
 API to free memory for bindless images. More...
 
pi_result piextMemMipmapFree (pi_context Context, pi_device Device, pi_image_mem_handle MemoryHandle)
 API to free mipmap memory for bindless images. More...
 
pi_result piextMemImageCopy (pi_queue Queue, void *DstPtr, void *SrcPtr, const pi_image_format *ImageFormat, const pi_image_desc *ImageDesc, const pi_image_copy_flags Flags, pi_image_offset SrcOffset, pi_image_offset DstOffset, pi_image_region CopyExtent, pi_image_region HostExtent, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
 API to copy image data Host to Device or Device to Host. More...
 
pi_result piextMemUnsampledImageHandleDestroy (pi_context Context, pi_device Device, pi_image_handle Handle)
 API to destroy bindless unsampled image handles. More...
 
pi_result piextMemSampledImageHandleDestroy (pi_context Context, pi_device Device, pi_image_handle Handle)
 API to destroy bindless sampled image handles. More...
 
pi_result piextMemImageGetInfo (pi_image_mem_handle MemHandle, pi_image_info ParamName, void *ParamValue, size_t *ParamValueSizeRet)
 API to query an image memory handle for specific properties. More...
 
pi_result piextMemImportOpaqueFD (pi_context Context, pi_device Device, size_t Size, int FileDescriptor, pi_interop_mem_handle *RetHandle)
 API to import external memory in the form of a file descriptor. More...
 
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. More...
 
pi_result piextMemReleaseInterop (pi_context Context, pi_device Device, pi_interop_mem_handle ExtMem)
 API to destroy interop memory. More...
 
pi_result piextImportExternalSemaphoreOpaqueFD (pi_context Context, pi_device Device, int FileDescriptor, pi_interop_semaphore_handle *RetHandle)
 API to import an external semaphore in the form of a file descriptor. More...
 
pi_result piextDestroyExternalSemaphore (pi_context Context, pi_device Device, pi_interop_semaphore_handle SemHandle)
 API to destroy the external semaphore handle. More...
 
pi_result piextWaitExternalSemaphore (pi_queue Queue, pi_interop_semaphore_handle SemHandle, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *Event)
 API to instruct the queue with a non-blocking wait on an external semaphore. More...
 
pi_result piextSignalExternalSemaphore (pi_queue Queue, pi_interop_semaphore_handle SemHandle, 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 completed execution. More...
 
pi_result piPluginInit (pi_plugin *PluginInit)
 

Variables

struct AdapterHolder Adapters
 

Macro Definition Documentation

◆ _PI_API [1/2]

#define _PI_API (   api)     (PluginInit->PiFunctionTable).api = (decltype(&::api))(&DieUnsupported);

◆ _PI_API [2/2]

#define _PI_API (   api)     (PluginInit->PiFunctionTable).api = (decltype(&::api))(&api);

Function Documentation

◆ DieUnsupported()

static void DieUnsupported ( )
static

Definition at line 16 of file pi_unified_runtime.cpp.

References sycl::_V1::detail::pi::die().

◆ piContextCreate()

pi_result piContextCreate ( const pi_context_properties Properties,
pi_uint32  NumDevices,
const pi_device Devices,
void(*)(const char *ErrInfo, const void *PrivateInfo, size_t CB, void *UserData)  PFnNotify,
void *  UserData,
pi_context RetContext 
)

Definition at line 100 of file pi_unified_runtime.cpp.

References pi2ur::piContextCreate().

Referenced by piPluginInit().

◆ piContextGetInfo()

pi_result piContextGetInfo ( pi_context  Context,
pi_context_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piContextRelease()

pi_result piContextRelease ( pi_context  Context)

◆ piContextRetain()

◆ piDeviceGetInfo()

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 for PI_DEVICE_INFO_EXTENSIONS query when the device supports native asserts.

Definition at line 75 of file pi_unified_runtime.cpp.

References pi2ur::piDeviceGetInfo().

Referenced by sycl::_V1::detail::applyAllowList(), sycl::_V1::device::ext_oneapi_cl_profile(), sycl::_V1::device::ext_oneapi_supports_cl_c_feature(), sycl::_V1::device::ext_oneapi_supports_cl_c_version(), sycl::_V1::device::ext_oneapi_supports_cl_extension(), sycl::_V1::detail::get_device_info_impl< ReturnT, Param >::get(), sycl::_V1::detail::get_device_info_impl< platform, Param >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< info::fp_config >, Param >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< info::fp_config >, info::device::single_fp_config >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::queue_profiling >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< memory_order >, info::device::atomic_memory_order_capabilities >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< memory_order >, info::device::atomic_fence_order_capabilities >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< memory_scope >, info::device::atomic_memory_scope_capabilities >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< memory_scope >, info::device::atomic_fence_scope_capabilities >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::ext_oneapi_bfloat16_math_functions >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< info::execution_capability >, info::device::execution_capabilities >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< info::partition_property >, info::device::partition_properties >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< info::partition_affinity_domain >, info::device::partition_affinity_domains >::get(), sycl::_V1::detail::get_device_info_impl< info::partition_affinity_domain, info::device::partition_type_affinity_domain >::get(), sycl::_V1::detail::get_device_info_impl< info::partition_property, info::device::partition_type_property >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< size_t >, info::device::sub_group_sizes >::get(), sycl::_V1::detail::get_device_info_impl< range< Dimensions >, info::device::max_work_item_sizes< Dimensions > >::get(), sycl::_V1::detail::get_device_info_impl< ext::oneapi::experimental::architecture, ext::oneapi::experimental::info::device::architecture >::get(), sycl::_V1::detail::get_device_info_impl< id< 1 >, ext::oneapi::experimental::info::device::max_work_groups< 1 > >::get(), sycl::_V1::detail::get_device_info_impl< id< 2 >, ext::oneapi::experimental::info::device::max_work_groups< 2 > >::get(), sycl::_V1::detail::get_device_info_impl< id< 3 >, ext::oneapi::experimental::info::device::max_work_groups< 3 > >::get(), sycl::_V1::detail::get_device_info_impl< device, info::device::parent_device >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_device_allocations >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_host_allocations >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_shared_allocations >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_restricted_shared_allocations >::get(), sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_system_allocations >::get(), sycl::_V1::detail::get_device_info_impl< uint32_t, ext::codeplay::experimental::info::device::max_registers_per_work_group >::get(), sycl::_V1::detail::get_device_info_impl< std::vector< sycl::device >, ext::oneapi::experimental::info::device::component_devices >::get(), sycl::_V1::detail::get_device_info_impl< sycl::device, ext::oneapi::experimental::info::device::composite_device >::get(), sycl::_V1::detail::device_impl::get_device_info_string(), sycl::_V1::detail::ProgramManager::getBuiltPIProgram(), sycl::_V1::detail::platform_impl::getPlatformFromPiDevice(), sycl::_V1::detail::ProgramManager::getProgramBuildLog(), sycl::_V1::detail::enqueue_kernel_launch::handleInvalidValue(), sycl::_V1::detail::enqueue_kernel_launch::handleInvalidWorkGroupSize(), sycl::_V1::detail::enqueue_kernel_launch::handleInvalidWorkItemSize(), sycl::_V1::detail::device_impl::has(), sycl::_V1::opencl::has_extension(), and piPluginInit().

◆ piDevicePartition()

pi_result piDevicePartition ( pi_device  Device,
const pi_device_partition_property Properties,
pi_uint32  NumDevices,
pi_device OutDevices,
pi_uint32 OutNumDevices 
)

◆ piDeviceRelease()

◆ piDeviceRetain()

◆ piDevicesGet()

pi_result piDevicesGet ( pi_platform  Platform,
pi_device_type  DeviceType,
pi_uint32  NumEntries,
pi_device Devices,
pi_uint32 NumDevices 
)

◆ piEnqueueEventsWait()

◆ piEnqueueEventsWaitWithBarrier()

pi_result piEnqueueEventsWaitWithBarrier ( pi_queue  Queue,
pi_uint32  NumEventsInWaitList,
const pi_event EventWaitList,
pi_event OutEvent 
)

Definition at line 544 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueEventsWaitWithBarrier().

Referenced by piPluginInit().

◆ piEnqueueKernelLaunch()

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 
)

◆ piEnqueueMemBufferCopy()

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 at line 473 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueMemBufferCopy().

Referenced by sycl::_V1::detail::copyD2D(), and piPluginInit().

◆ piEnqueueMemBufferCopyRect()

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 
)

◆ piEnqueueMemBufferFill()

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 
)

◆ piEnqueueMemBufferMap()

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 
)

◆ piEnqueueMemBufferRead()

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 at line 534 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueMemBufferRead().

Referenced by sycl::_V1::detail::copyD2H(), and piPluginInit().

◆ piEnqueueMemBufferReadRect()

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 
)

◆ piEnqueueMemBufferWrite()

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 at line 510 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueMemBufferWrite().

Referenced by sycl::_V1::detail::copyH2D(), and piPluginInit().

◆ piEnqueueMemBufferWriteRect()

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 
)

◆ piEnqueueMemImageCopy()

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 at line 244 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueMemImageCopy().

Referenced by sycl::_V1::detail::copyD2D(), and piPluginInit().

◆ piEnqueueMemImageFill()

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 
)

◆ piEnqueueMemImageRead()

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 at line 282 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueMemImageRead().

Referenced by piPluginInit().

◆ piEnqueueMemImageWrite()

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 at line 271 of file pi_unified_runtime.cpp.

References pi2ur::piEnqueueMemImageWrite().

Referenced by piPluginInit().

◆ piEnqueueMemUnmap()

pi_result piEnqueueMemUnmap ( pi_queue  Queue,
pi_mem  Mem,
void *  MappedPtr,
pi_uint32  NumEventsInWaitList,
const pi_event EventWaitList,
pi_event OutEvent 
)

◆ piEventCreate()

pi_result piEventCreate ( pi_context  context,
pi_event ret_event 
)

Create PI event object in a signalled/completed state.

Parameters
contextis the PI context of the event.
ret_eventis the PI even created.

Definition at line 651 of file pi_unified_runtime.cpp.

References pi2ur::piEventCreate().

Referenced by piPluginInit().

◆ piEventGetInfo()

pi_result piEventGetInfo ( pi_event  Event,
pi_event_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piEventGetProfilingInfo()

pi_result piEventGetProfilingInfo ( pi_event  Event,
pi_profiling_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piEventRelease()

◆ piEventRetain()

◆ piEventSetCallback()

pi_result piEventSetCallback ( pi_event  Event,
pi_int32  CommandExecCallbackType,
void(*)(pi_event Event, pi_int32 EventCommandStatus, void *UserData)  PFnNotify,
void *  UserData 
)

Definition at line 656 of file pi_unified_runtime.cpp.

References pi2ur::piEventSetCallback().

Referenced by piPluginInit().

◆ piEventSetStatus()

pi_result piEventSetStatus ( pi_event  Event,
pi_int32  ExecutionStatus 
)

Definition at line 665 of file pi_unified_runtime.cpp.

References pi2ur::piEventSetStatus().

Referenced by piPluginInit().

◆ piEventsWait()

◆ piextBindlessImageSamplerCreate()

pi_result piextBindlessImageSamplerCreate ( pi_context  context,
const pi_sampler_properties sampler_properties,
float  min_mipmap_level_clamp,
float  max_mipmap_level_clamp,
float  max_anisotropy,
pi_sampler result_sampler 
)

API to create samplers for bindless images.

Parameters
contextis the pi_context
deviceis the pi_device
sampler_propertiesis the pointer to the sampler properties bitfield
min_mipmap_level_clampis the minimum mipmap level to sample from
max_mipmap_level_clampis the maximum mipmap level to sample from
max_anisotropyis the maximum anisotropic ratio
result_sampleris the returned sampler

Definition at line 1244 of file pi_unified_runtime.cpp.

References pi2ur::piextBindlessImageSamplerCreate().

Referenced by sycl::_V1::ext::oneapi::experimental::create_image().

◆ piextCommandBufferAdviseUSM()

pi_result piextCommandBufferAdviseUSM ( pi_ext_command_buffer  command_buffer,
const void *  ptr,
size_t  length,
pi_mem_advice  advice,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a USM Advise command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
ptris the data to be advised.
lengthis the size in bytes of the memory to advise.
adviceis device specific advice.
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1146 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferAdviseUSM().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_advise_usm_cmd_buffer().

◆ piextCommandBufferCreate()

pi_result piextCommandBufferCreate ( pi_context  context,
pi_device  device,
const pi_ext_command_buffer_desc desc,
pi_ext_command_buffer ret_command_buffer 
)

API to create a command-buffer.

Parameters
contextThe context to associate the command-buffer with.
deviceThe device to associate the command-buffer with.
descDescriptor for the new command-buffer.
ret_command_bufferPointer to fill with the address of the new command-buffer.

Definition at line 1010 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferCreate().

Referenced by sycl::_V1::ext::oneapi::experimental::detail::exec_graph_impl::createCommandBuffers().

◆ piextCommandBufferFillUSM()

pi_result piextCommandBufferFillUSM ( pi_ext_command_buffer  command_buffer,
void *  ptr,
const void *  pattern,
size_t  pattern_size,
size_t  size,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a USM fill command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
ptrpointer to the USM allocation to fill.
patternpointer to the pattern to fill ptr with.
pattern_sizesize of the pattern in bytes.
sizefill size in bytes.
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1126 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferFillUSM().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_fill_usm_cmd_buffer().

◆ piextCommandBufferFinalize()

pi_result piextCommandBufferFinalize ( pi_ext_command_buffer  command_buffer)

API to stop command-buffer recording such that no more commands can be appended, and makes the command-buffer ready to enqueue on a command-queue.

Parameters
command_bufferThe command_buffer to finalize.

Definition at line 1025 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferFinalize().

Referenced by sycl::_V1::ext::oneapi::experimental::detail::exec_graph_impl::createCommandBuffers().

◆ piextCommandBufferMemBufferCopy()

pi_result piextCommandBufferMemBufferCopy ( pi_ext_command_buffer  command_buffer,
pi_mem  src_buffer,
pi_mem  dst_buffer,
size_t  src_offset,
size_t  dst_offset,
size_t  size,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a mem buffer copy command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
src_bufferis the data to be copied
dst_bufferis the location the data will be copied
src_offsetoffset into src_buffer
dst_offsetoffset into dst_buffer
sizeis number of bytes to copy
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1050 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferCopy().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copyD2D_cmd_buffer().

◆ piextCommandBufferMemBufferCopyRect()

pi_result piextCommandBufferMemBufferCopyRect ( pi_ext_command_buffer  command_buffer,
pi_mem  src_buffer,
pi_mem  dst_buffer,
pi_buff_rect_offset  src_origin,
pi_buff_rect_offset  dst_origin,
pi_buff_rect_region  region,
size_t  src_row_pitch,
size_t  src_slice_pitch,
size_t  dst_row_pitch,
size_t  dst_slice_pitch,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a rectangular mem buffer copy command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
src_bufferis the data to be copied
dst_bufferis the location the data will be copied
src_originoffset for the start of the region to copy in src_buffer
dst_originoffset for the start of the region to copy in dst_buffer
regionThe size of the region to be copied
src_row_pitchRow pitch for the src data
src_slice_pitchSlice pitch for the src data
dst_row_pitchRow pitch for the dst data
dst_slice_pitchSlice pitch for the dst data
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1060 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferCopyRect().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copyD2D_cmd_buffer().

◆ piextCommandBufferMemBufferFill()

pi_result piextCommandBufferMemBufferFill ( pi_ext_command_buffer  command_buffer,
pi_mem  buffer,
const void *  pattern,
size_t  pattern_size,
size_t  offset,
size_t  size,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a mem buffer fill command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
bufferis the location to fill the data.
patternpointer to the pattern to fill the buffer with.
pattern_sizesize of the pattern in bytes.
offsetOffset into the buffer to fill from.
sizefill size in bytes.
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1116 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferFill().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_fill_cmd_buffer().

◆ piextCommandBufferMemBufferRead()

pi_result piextCommandBufferMemBufferRead ( pi_ext_command_buffer  command_buffer,
pi_mem  buffer,
size_t  offset,
size_t  size,
void *  dst,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a mem buffer read command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
bufferis the data to be read
offsetoffset into buffer
sizeis number of bytes to read
dstis the pointer to the destination
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1072 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferRead().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copyD2H_cmd_buffer().

◆ piextCommandBufferMemBufferReadRect()

pi_result piextCommandBufferMemBufferReadRect ( pi_ext_command_buffer  command_buffer,
pi_mem  buffer,
pi_buff_rect_offset  buffer_offset,
pi_buff_rect_offset  host_offset,
pi_buff_rect_region  region,
size_t  buffer_row_pitch,
size_t  buffer_slice_pitch,
size_t  host_row_pitch,
size_t  host_slice_pitch,
void *  ptr,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a rectangular mem buffer read command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
bufferis the data to be read
buffer_offsetoffset for the start of the region to read in buffer
host_offsetoffset for the start of the region to be written from ptr
regionThe size of the region to read
buffer_row_pitchRow pitch for the source buffer data
buffer_slice_pitchSlice pitch for the source buffer data
host_row_pitchRow pitch for the destination data ptr
host_slice_pitchSlice pitch for the destination data ptr
ptris the location the data will be written
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1081 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferReadRect().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copyD2H_cmd_buffer().

◆ piextCommandBufferMemBufferWrite()

pi_result piextCommandBufferMemBufferWrite ( pi_ext_command_buffer  command_buffer,
pi_mem  buffer,
size_t  offset,
size_t  size,
const void *  ptr,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a mem buffer write command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
bufferis the location to write the data
offsetoffset into buffer
sizeis number of bytes to write
ptris the pointer to the source
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1094 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferWrite().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copyH2D_cmd_buffer().

◆ piextCommandBufferMemBufferWriteRect()

pi_result piextCommandBufferMemBufferWriteRect ( pi_ext_command_buffer  command_buffer,
pi_mem  buffer,
pi_buff_rect_offset  buffer_offset,
pi_buff_rect_offset  host_offset,
pi_buff_rect_region  region,
size_t  buffer_row_pitch,
size_t  buffer_slice_pitch,
size_t  host_row_pitch,
size_t  host_slice_pitch,
const void *  ptr,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a rectangular mem buffer write command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
bufferis the location to write the data
buffer_offsetoffset for the start of the region to write in buffer
host_offsetoffset for the start of the region to be read from ptr
regionThe size of the region to write
buffer_row_pitchRow pitch for the buffer data
buffer_slice_pitchSlice pitch for the buffer data
host_row_pitchRow pitch for the source data ptr
host_slice_pitchSlice pitch for the source data ptr
ptris the pointer to the source
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1103 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemBufferWriteRect().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copyH2D_cmd_buffer().

◆ piextCommandBufferMemcpyUSM()

pi_result piextCommandBufferMemcpyUSM ( pi_ext_command_buffer  command_buffer,
void *  dst_ptr,
const void *  src_ptr,
size_t  size,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a USM memcpy command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
dst_ptris the location the data will be copied
src_ptris the data to be copied
sizeis number of bytes to copy
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1041 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferMemcpyUSM().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_copy_usm_cmd_buffer().

◆ piextCommandBufferNDRangeKernel()

pi_result piextCommandBufferNDRangeKernel ( pi_ext_command_buffer  command_buffer,
pi_kernel  kernel,
pi_uint32  work_dim,
const size_t *  global_work_offset,
const size_t *  global_work_size,
const size_t *  local_work_size,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point,
pi_ext_command_buffer_command command 
)

API to append a kernel execution command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
kernelThe kernel to append.
work_dimDimension of the kernel execution.
global_work_offsetOffset to use when executing kernel.
global_work_sizeGlobal work size to use when executing kernel.
local_work_sizeLocal work size to use when executing kernel.
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this kernel execution.
commandReturn pointer to the command representing this kernel execution.

Definition at line 1029 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferNDRangeKernel().

Referenced by sycl::_V1::detail::enqueueImpCommandBufferKernel().

◆ piextCommandBufferPrefetchUSM()

pi_result piextCommandBufferPrefetchUSM ( pi_ext_command_buffer  command_buffer,
const void *  ptr,
size_t  size,
pi_usm_migration_flags  flags,
pi_uint32  num_sync_points_in_wait_list,
const pi_ext_sync_point sync_point_wait_list,
pi_ext_sync_point sync_point 
)

API to append a USM Prefetch command to the command-buffer.

Parameters
command_bufferThe command-buffer to append onto.
ptrpoints to the memory to migrate.
sizeis the number of bytes to migrate.
flagsis a bitfield used to specify memory migration options.
num_sync_points_in_wait_listThe number of sync points in the provided wait list.
sync_point_wait_listA list of sync points that this command must wait on.
sync_pointThe sync_point associated with this memory operation.

Definition at line 1137 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferPrefetchUSM().

Referenced by sycl::_V1::detail::MemoryManager::ext_oneapi_prefetch_usm_cmd_buffer().

◆ piextCommandBufferRelease()

pi_result piextCommandBufferRelease ( pi_ext_command_buffer  command_buffer)

API to decrement the reference count of the command-buffer.

After the command_buffer reference count becomes zero and has finished execution, the command-buffer is deleted.

Parameters
command_bufferThe command_buffer to release.

Definition at line 1021 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferRelease().

Referenced by sycl::_V1::ext::oneapi::experimental::detail::exec_graph_impl::~exec_graph_impl().

◆ piextCommandBufferReleaseCommand()

pi_result piextCommandBufferReleaseCommand ( pi_ext_command_buffer_command  command)

API to decrement the reference count of a command-buffer command.

After the command reference count becomes zero, the command is deleted.

Parameters
commandThe command to release.

Definition at line 1176 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferReleaseCommand().

Referenced by sycl::_V1::ext::oneapi::experimental::detail::exec_graph_impl::~exec_graph_impl().

◆ piextCommandBufferRetain()

pi_result piextCommandBufferRetain ( pi_ext_command_buffer  command_buffer)

API to increment the reference count of the command-buffer.

Parameters
command_bufferThe command_buffer to retain.

Definition at line 1017 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferRetain().

◆ piextCommandBufferRetainCommand()

pi_result piextCommandBufferRetainCommand ( pi_ext_command_buffer_command  command)

API to increment the reference count of a command-buffer command.

Parameters
commandThe command to release.

Definition at line 1171 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferRetainCommand().

◆ piextCommandBufferUpdateKernelLaunch()

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.

Parameters
commandThe command to be updated.
descDescriptor which describes the updated parameters of the kernel launch.

Definition at line 1164 of file pi_unified_runtime.cpp.

References pi2ur::piextCommandBufferUpdateKernelLaunch().

Referenced by sycl::_V1::ext::oneapi::experimental::detail::exec_graph_impl::updateImpl().

◆ piextContextCreateWithNativeHandle()

pi_result piextContextCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_uint32  numDevices,
const pi_device devices,
bool  pluginOwnsNativeHandle,
pi_context context 
)

Creates PI context object from a native handle.

NOTE: The created PI object takes ownership of the native handle. NOTE: The number of devices and the list of devices is needed for Level Zero backend because there is no possilibity to query this information from context handle for Level Zero. If backend has API to query a list of devices from the context native handle then these parameters are ignored.

Parameters
nativeHandleis the native handle to create PI context from.
numDevicesis the number of devices in the context. Parameter is ignored if number of devices can be queried from the context native handle for a backend.
devicesis the list of devices in the context. Parameter is ignored if devices can be queried from the context native handle for a backend.
pluginOwnsNativeHandleIndicates whether the created PI object should take ownership of the native handle.
contextis the PI context created from the native handle.
Returns
PI_SUCCESS if successfully created pi_context from the handle. PI_ERROR_OUT_OF_HOST_MEMORY if can't allocate memory for the pi_context object. PI_ERROR_INVALID_VALUE if numDevices == 0 or devices is NULL but backend doesn't have API to query a list of devices from the context native handle. PI_UNKNOWN_ERROR in case of another error.

Definition at line 732 of file pi_unified_runtime.cpp.

References pi2ur::piextContextCreateWithNativeHandle().

Referenced by sycl::_V1::ext::oneapi::level_zero::make_context(), sycl::_V1::detail::make_context(), and piPluginInit().

◆ piextContextGetNativeHandle()

pi_result piextContextGetNativeHandle ( pi_context  context,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI context object.

Parameters
contextis the PI context to get the native handle of.
nativeHandleis the native handle of context.

Definition at line 726 of file pi_unified_runtime.cpp.

References pi2ur::piextContextGetNativeHandle().

Referenced by sycl::_V1::detail::context_impl::getNative(), and piPluginInit().

◆ piextContextSetExtendedDeleter()

pi_result piextContextSetExtendedDeleter ( pi_context  Context,
pi_context_extended_deleter  Function,
void *  UserData 
)

◆ piextDestroyExternalSemaphore()

pi_result piextDestroyExternalSemaphore ( pi_context  context,
pi_device  device,
pi_interop_semaphore_handle  sem_handle 
)

API to destroy the external semaphore handle.

Parameters
contextis the pi_context
deviceis the pi_device
sem_handleis the interop semaphore handle to the external semaphore to be destroyed

Definition at line 1331 of file pi_unified_runtime.cpp.

References pi2ur::piextDestroyExternalSemaphore().

Referenced by sycl::_V1::ext::oneapi::experimental::destroy_external_semaphore().

◆ piextDeviceCreateWithNativeHandle()

pi_result piextDeviceCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_platform  platform,
pi_device device 
)

Creates PI device object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI device from.
platformis the platform of the device (optional).
deviceis the PI device created from the native handle.

Definition at line 713 of file pi_unified_runtime.cpp.

References pi2ur::piextDeviceCreateWithNativeHandle().

Referenced by sycl::_V1::ext::oneapi::level_zero::make_device(), sycl::_V1::detail::make_device(), and piPluginInit().

◆ piextDeviceGetNativeHandle()

pi_result piextDeviceGetNativeHandle ( pi_device  device,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI device object.

Parameters
deviceis the PI device to get the native handle of.
nativeHandleis the native handle of device.

Definition at line 708 of file pi_unified_runtime.cpp.

References pi2ur::piextDeviceGetNativeHandle().

Referenced by sycl::_V1::detail::device_impl::getNative(), and piPluginInit().

◆ piextDeviceSelectBinary()

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 at line 91 of file pi_unified_runtime.cpp.

References pi2ur::piextDeviceSelectBinary().

Referenced by sycl::_V1::detail::compatibleWithDevice(), sycl::_V1::detail::getBinImageFromMultiMap(), sycl::_V1::detail::ProgramManager::getDeviceImage(), and piPluginInit().

◆ piextDisablePeerAccess()

pi_result piextDisablePeerAccess ( pi_device  command_device,
pi_device  peer_device 
)

◆ piextEnablePeerAccess()

pi_result piextEnablePeerAccess ( pi_device  command_device,
pi_device  peer_device 
)

◆ piextEnqueueCommandBuffer()

pi_result piextEnqueueCommandBuffer ( pi_ext_command_buffer  command_buffer,
pi_queue  queue,
pi_uint32  num_events_in_wait_list,
const pi_event event_wait_list,
pi_event event 
)

API to submit the command-buffer to queue for execution, returns an error if the command-buffer is not finalized or another instance of the same command-buffer is currently executing.

Parameters
command_bufferThe command-buffer to be submitted.
queueThe PI queue to submit on.
num_events_in_wait_listThe number of events that this execution depends on.
event_wait_listList of pi_events to wait on.
eventThe pi_event associated with this enqueue.

Definition at line 1155 of file pi_unified_runtime.cpp.

References pi2ur::piextEnqueueCommandBuffer().

Referenced by sycl::_V1::ext::oneapi::experimental::detail::exec_graph_impl::enqueue().

◆ piextEnqueueDeviceGlobalVariableRead()

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.

Parameters
Queueis the queue
Programis the program containing the device global variable
Nameis the unique identifier for the device global variable
BlockingReadis true if the read should block
Countis the number of bytes to copy
Offsetis the byte offset into the device global variable to start copying
Dstis a pointer to where the data must be copied to
NumEventsInWaitListis a number of events in the wait list
EventWaitListis the wait list
Eventis the resulting event

Definition at line 991 of file pi_unified_runtime.cpp.

References pi2ur::piextEnqueueDeviceGlobalVariableRead().

Referenced by sycl::_V1::detail::memcpyFromDeviceGlobalDirect(), and piPluginInit().

◆ piextEnqueueDeviceGlobalVariableWrite()

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 
)

API for writing data from host to a device global variable.

Device global variable.

Parameters
Queueis the queue
Programis the program containing the device global variable
Nameis the unique identifier for the device global variable
BlockingWriteis true if the write should block
Countis the number of bytes to copy
Offsetis the byte offset into the device global variable to start copying
Srcis a pointer to where the data must be copied from
NumEventsInWaitListis a number of events in the wait list
EventWaitListis the wait list
Eventis the resulting event

Definition at line 969 of file pi_unified_runtime.cpp.

References pi2ur::piextEnqueueDeviceGlobalVariableWrite().

Referenced by sycl::_V1::detail::context_impl::initializeDeviceGlobals(), sycl::_V1::detail::memcpyToDeviceGlobalDirect(), and piPluginInit().

◆ piextEventCreateWithNativeHandle()

pi_result piextEventCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_context  context,
bool  ownNativeHandle,
pi_event event 
)

Creates PI event object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI event from.
contextis the corresponding PI context
pluginOwnsNativeHandleIndicates whether the created PI object should take ownership of the native handle.
eventis the PI event created from the native handle.

Definition at line 678 of file pi_unified_runtime.cpp.

References pi2ur::piextEventCreateWithNativeHandle().

Referenced by sycl::_V1::detail::make_event(), and piPluginInit().

◆ piextEventGetNativeHandle()

pi_result piextEventGetNativeHandle ( pi_event  event,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI event object.

Parameters
eventis the PI event to get the native handle of.
nativeHandleis the native handle of event.

Definition at line 562 of file pi_unified_runtime.cpp.

References pi2ur::piextEventGetNativeHandle().

Referenced by sycl::_V1::detail::event_impl::getNative(), and piPluginInit().

◆ piextGetDeviceFunctionPointer()

pi_result piextGetDeviceFunctionPointer ( pi_device  device,
pi_program  program,
const char *  function_name,
pi_uint64 function_pointer_ret 
)

Retrieves a device function pointer to a user-defined function.

  • function_name.
  • function_pointer_ret is set to 0 if query failed.
  • program must be built before calling this API.
  • device must present in the list of devices returned by get_device method for
  • program.

If a fallback method determines the function exists but the address is not available PI_ERROR_FUNCTION_ADDRESS_IS_NOT_AVAILABLE is returned. If the address does not exist PI_ERROR_INVALID_KERNEL_NAME is returned.

Definition at line 758 of file pi_unified_runtime.cpp.

References pi2ur::piextGetDeviceFunctionPointer().

Referenced by sycl::_V1::detail::program_impl::has_kernel(), and piPluginInit().

◆ piextGetGlobalVariablePointer()

pi_result piextGetGlobalVariablePointer ( pi_device  Device,
pi_program  Program,
const char *  GlobalVariableName,
size_t *  GlobalVariableSize,
void **  GlobalVariablePointerRet 
)

Definition at line 766 of file pi_unified_runtime.cpp.

References pi2ur::piextGetGlobalVariablePointer().

Referenced by piPluginInit().

◆ piextImportExternalSemaphoreOpaqueFD()

pi_result piextImportExternalSemaphoreOpaqueFD ( pi_context  context,
pi_device  device,
int  file_descriptor,
pi_interop_semaphore_handle ret_handle 
)

API to import an external semaphore in the form of a file descriptor.

Parameters
contextis the pi_context
deviceis the pi_device
file_descriptoris the file descriptor
ret_handleis the returned interop semaphore handle to the external semaphore

Definition at line 1323 of file pi_unified_runtime.cpp.

References pi2ur::piextImportExternalSemaphoreOpaqueFD().

Referenced by sycl::_V1::ext::oneapi::experimental::import_external_semaphore().

◆ piextKernelCreateWithNativeHandle()

pi_result piextKernelCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_context  context,
pi_program  program,
bool  pluginOwnsNativeHandle,
pi_kernel kernel 
)

Creates PI kernel object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI kernel from.
contextis the PI context of the kernel.
programis the PI program of the kernel.
pluginOwnsNativeHandleIndicates whether the created PI object should take ownership of the native handle.
kernelis the PI kernel created from the native handle.

Definition at line 292 of file pi_unified_runtime.cpp.

References pi2ur::piextKernelCreateWithNativeHandle().

Referenced by sycl::_V1::detail::make_kernel(), and piPluginInit().

◆ piextKernelSetArgMemObj()

pi_result piextKernelSetArgMemObj ( pi_kernel  Kernel,
pi_uint32  ArgIndex,
const pi_mem_obj_property ArgProperties,
const pi_mem ArgValue 
)

◆ piextKernelSetArgPointer()

pi_result piextKernelSetArgPointer ( pi_kernel  kernel,
pi_uint32  arg_index,
size_t  arg_size,
const void *  arg_value 
)

Sets up pointer arguments for CL kernels.

An extra indirection is required due to CL argument conventions.

Parameters
kernelis the kernel to be launched
arg_indexis the index of the kernel argument
arg_sizeis the size in bytes of the argument (ignored in CL)
arg_valueis the pointer argument

Definition at line 407 of file pi_unified_runtime.cpp.

References pi2ur::piextKernelSetArgPointer().

Referenced by piPluginInit(), and sycl::_V1::detail::SetArgBasedOnType().

◆ piextKernelSetArgSampler()

pi_result piextKernelSetArgSampler ( pi_kernel  Kernel,
pi_uint32  ArgIndex,
const pi_sampler ArgValue 
)

◆ piextMemCreateWithNativeHandle()

pi_result piextMemCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_context  context,
bool  ownNativeHandle,
pi_mem mem 
)

Creates PI mem object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI mem from.
contextThe PI context of the memory allocation.
ownNativeHandleIndicates if we own the native memory handle or it came from interop that asked to not transfer the ownership to SYCL RT.
memis the PI mem created from the native handle.

Definition at line 253 of file pi_unified_runtime.cpp.

References pi2ur::piextMemCreateWithNativeHandle().

Referenced by piPluginInit(), and sycl::_V1::detail::SYCLMemObjT::SYCLMemObjT().

◆ piextMemGetNativeHandle()

pi_result piextMemGetNativeHandle ( pi_mem  mem,
pi_device  dev,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI mem object.

Parameters
memis the PI mem to get the native handle of.
devis the PI device that the native allocation will be resident on
nativeHandleis the native handle of mem.

Definition at line 238 of file pi_unified_runtime.cpp.

References pi2ur::piextMemGetNativeHandle().

Referenced by sycl::_V1::detail::buffer_impl::getNativeVector(), sycl::_V1::detail::memBufferCreateHelper(), sycl::_V1::detail::memReleaseHelper(), and piPluginInit().

◆ piextMemImageAllocate()

pi_result piextMemImageAllocate ( pi_context  context,
pi_device  device,
pi_image_format image_format,
pi_image_desc image_desc,
pi_image_mem_handle ret_mem 
)

API to allocate memory for bindless images.

Parameters
contextis the pi_context
deviceis the pi_device
flagsare extra flags to pass (currently unused)
image_formatformat of the image (channel order and data type)
image_descimage descriptor
ret_memis the returning memory handle to newly allocated memory

Definition at line 1218 of file pi_unified_runtime.cpp.

References pi2ur::piextMemImageAllocate().

Referenced by sycl::_V1::ext::oneapi::experimental::alloc_image_mem(), and sycl::_V1::ext::oneapi::experimental::alloc_mipmap_mem().

◆ piextMemImageCopy()

pi_result piextMemImageCopy ( pi_queue  command_queue,
void *  dst_ptr,
void *  src_ptr,
const pi_image_format image_format,
const pi_image_desc image_desc,
const pi_image_copy_flags  flags,
pi_image_offset  src_offset,
pi_image_offset  dst_offset,
pi_image_region  copy_extent,
pi_image_region  host_extent,
pi_uint32  num_events_in_wait_list,
const pi_event event_wait_list,
pi_event event 
)

API to copy image data Host to Device or Device to Host.

Parameters
queueis the queue to submit to
dst_ptris the location the data will be copied to
src_ptris the data to be copied
image_formatformat of the image (channel order and data type)
image_descimage descriptor
flagsflags describing copy direction (H2D or D2H)
src_offsetis the offset into the source image/memory
dst_offsetis the offset into the destination image/memory
copy_extentis the extent (region) of the image/memory to copy
host_extentis the extent (region) of the memory on the host
num_events_in_wait_listis the number of events in the wait list
event_wait_listis the list of events to wait on before copying
eventis the returned event representing this operation

Definition at line 1271 of file pi_unified_runtime.cpp.

References pi2ur::piextMemImageCopy().

Referenced by sycl::_V1::detail::MemoryManager::copy_image_bindless().

◆ piextMemImageCreateWithNativeHandle()

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.

Parameters
nativeHandleis the native handle to create PI image from.
contextThe PI context of the memory allocation.
ownNativeHandleIndicates if we own the native memory handle or it came from interop that asked to not transfer the ownership to SYCL RT.
ImageFormatis the pi_image_format struct that specifies the image channnel order and channel data type that match what the nativeHandle uses
ImageDescis the pi_image_desc struct that specifies the image dimension, pitch, slice and other information about the nativeHandle
imgis the PI img created from the native handle.

Definition at line 1001 of file pi_unified_runtime.cpp.

References pi2ur::piextMemImageCreateWithNativeHandle().

Referenced by sycl::_V1::detail::SYCLMemObjT::SYCLMemObjT().

◆ piextMemImageFree()

pi_result piextMemImageFree ( pi_context  context,
pi_device  device,
pi_image_mem_handle  memory_handle 
)

API to free memory for bindless images.

Parameters
contextis the pi_context
deviceis the pi_device
memory_handleis the handle to image memory to be freed

Definition at line 1261 of file pi_unified_runtime.cpp.

References pi2ur::piextMemImageFree().

Referenced by sycl::_V1::ext::oneapi::experimental::free_image_mem().

◆ piextMemImageGetInfo()

pi_result piextMemImageGetInfo ( const pi_image_mem_handle  mem_handle,
pi_image_info  param_name,
void *  param_value,
size_t *  param_value_size_ret 
)

API to query an image memory handle for specific properties.

Parameters
mem_handleis the handle to the image memory
param_nameis the queried info name
param_valueis the returned query value
param_value_size_retis the returned query value size

Definition at line 1294 of file pi_unified_runtime.cpp.

References pi2ur::piextMemImageGetInfo().

Referenced by sycl::_V1::ext::oneapi::experimental::get_image_channel_type(), sycl::_V1::ext::oneapi::experimental::get_image_num_channels(), and sycl::_V1::ext::oneapi::experimental::get_image_range().

◆ piextMemImportOpaqueFD()

pi_result piextMemImportOpaqueFD ( pi_context  context,
pi_device  device,
size_t  size,
int  file_descriptor,
pi_interop_mem_handle ret_handle 
)

API to import external memory in the form of a file descriptor.

Parameters
contextis the pi_context
deviceis the pi_device
sizeis the size of the external memory
file_descriptoris the file descriptor
ret_handleis the returned interop memory handle to the external memory

Definition at line 1303 of file pi_unified_runtime.cpp.

References pi2ur::piextMemImportOpaqueFD().

Referenced by sycl::_V1::ext::oneapi::experimental::import_external_memory< resource_fd >().

◆ piextMemMapExternalArray()

pi_result piextMemMapExternalArray ( pi_context  context,
pi_device  device,
pi_image_format image_format,
pi_image_desc image_desc,
pi_interop_mem_handle  mem_handle,
pi_image_mem_handle ret_mem 
)

API to map an interop memory handle to an image memory handle.

Parameters
contextis the pi_context
deviceis the pi_device
image_formatformat of the image (channel order and data type)
image_descimage descriptor
mem_handleis the interop memory handle to the external memory
ret_memis the returned image memory handle to the externally allocated memory

Definition at line 1309 of file pi_unified_runtime.cpp.

References pi2ur::piextMemMapExternalArray().

Referenced by sycl::_V1::ext::oneapi::experimental::map_external_image_memory().

◆ piextMemMipmapFree()

pi_result piextMemMipmapFree ( pi_context  context,
pi_device  device,
pi_image_mem_handle  memory_handle 
)

API to free mipmap memory for bindless images.

Parameters
contextis the pi_context
deviceis the pi_device
memory_handleis the handle to image memory to be freed

Definition at line 1266 of file pi_unified_runtime.cpp.

References pi2ur::piextMemMipmapFree().

Referenced by sycl::_V1::ext::oneapi::experimental::free_image_mem(), and sycl::_V1::ext::oneapi::experimental::free_mipmap_mem().

◆ piextMemMipmapGetLevel()

pi_result piextMemMipmapGetLevel ( pi_context  context,
pi_device  device,
pi_image_mem_handle  mip_mem,
unsigned int  level,
pi_image_mem_handle ret_mem 
)

API to retrieve individual image from mipmap.

Parameters
contextis the pi_context
deviceis the pi_device
mip_memis the memory handle to the mipmap
levelis the requested level of the mipmap
ret_memis the returning memory handle to the individual image

Definition at line 1253 of file pi_unified_runtime.cpp.

References pi2ur::piextMemMipmapGetLevel().

Referenced by sycl::_V1::ext::oneapi::experimental::get_mip_level_mem_handle().

◆ piextMemReleaseInterop()

pi_result piextMemReleaseInterop ( pi_context  context,
pi_device  device,
pi_interop_mem_handle  memory_handle 
)

API to destroy interop memory.

Parameters
contextis the pi_context
deviceis the pi_device
memory_handleis the handle to interop memory to be freed

Definition at line 1317 of file pi_unified_runtime.cpp.

References pi2ur::piextMemReleaseInterop().

Referenced by sycl::_V1::ext::oneapi::experimental::release_external_memory().

◆ piextMemSampledImageCreate()

pi_result piextMemSampledImageCreate ( pi_context  context,
pi_device  device,
pi_image_mem_handle  img_mem,
pi_image_format image_format,
pi_image_desc image_desc,
pi_sampler  sampler,
pi_mem ret_mem,
pi_image_handle ret_handle 
)

API to create sampled bindless image handles.

Parameters
contextis the pi_context
deviceis the pi_device
img_memis the handle to memory from which to create the image
image_formatformat of the image (channel order and data type)
image_descimage descriptor
sampleris the pi_sampler
ret_memis the returning pi_mem image object
ret_handleis the returning memory handle to newly allocated memory

Definition at line 1235 of file pi_unified_runtime.cpp.

References pi2ur::piextMemSampledImageCreate().

Referenced by sycl::_V1::ext::oneapi::experimental::create_image().

◆ piextMemSampledImageHandleDestroy()

pi_result piextMemSampledImageHandleDestroy ( pi_context  context,
pi_device  device,
pi_image_handle  handle 
)

API to destroy bindless sampled image handles.

Parameters
contextis the pi_context
handleis the image handle

Definition at line 1289 of file pi_unified_runtime.cpp.

References pi2ur::piextMemSampledImageHandleDestroy().

Referenced by sycl::_V1::ext::oneapi::experimental::destroy_image_handle().

◆ piextMemUnsampledImageCreate()

pi_result piextMemUnsampledImageCreate ( pi_context  context,
pi_device  device,
pi_image_mem_handle  img_mem,
pi_image_format image_format,
pi_image_desc image_desc,
pi_mem ret_mem,
pi_image_handle ret_handle 
)

API to create bindless image handles.

Parameters
contextis the pi_context
deviceis the pi_device
img_memis the handle to memory from which to create the image
image_formatformat of the image (channel order and data type)
image_descimage descriptor
ret_memis the returning pi_mem image object
ret_handleis the returning memory handle to newly allocated memory

Definition at line 1227 of file pi_unified_runtime.cpp.

References pi2ur::piextMemUnsampledImageCreate().

Referenced by sycl::_V1::ext::oneapi::experimental::create_image().

◆ piextMemUnsampledImageHandleDestroy()

pi_result piextMemUnsampledImageHandleDestroy ( pi_context  context,
pi_device  device,
pi_image_handle  handle 
)

API to destroy bindless unsampled image handles.

Parameters
contextis the pi_context
deviceis the pi_device
handleis the image handle

Definition at line 1284 of file pi_unified_runtime.cpp.

References pi2ur::piextMemUnsampledImageHandleDestroy().

Referenced by sycl::_V1::ext::oneapi::experimental::destroy_image_handle().

◆ piextPeerAccessGetInfo()

pi_result piextPeerAccessGetInfo ( pi_device  command_device,
pi_device  peer_device,
pi_peer_attr  attr,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piextPlatformCreateWithNativeHandle()

pi_result piextPlatformCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_platform platform 
)

Creates PI platform object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI device from.
platformis the PI platform created from the native handle.

Definition at line 701 of file pi_unified_runtime.cpp.

References pi2ur::piextPlatformCreateWithNativeHandle().

Referenced by sycl::_V1::detail::make_platform(), and piPluginInit().

◆ piextPlatformGetNativeHandle()

pi_result piextPlatformGetNativeHandle ( pi_platform  platform,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI platform object.

Parameters
platformis the PI platform to get the native handle of.
nativeHandleis the native handle of platform.

Definition at line 695 of file pi_unified_runtime.cpp.

References pi2ur::piextPlatformGetNativeHandle().

Referenced by sycl::_V1::detail::platform_impl::getNative(), and piPluginInit().

◆ piextPluginGetOpaqueData()

pi_result piextPluginGetOpaqueData ( void *  opaque_data_param,
void **  opaque_data_return 
)

API to get Plugin internal data, opaque to SYCL RT.

Some devices whose device code is compiled by the host compiler (e.g. CPU emulators) may use it to access some device code functionality implemented in/behind the plugin.

Parameters
opaque_data_param- unspecified argument, interpretation is specific to a plugin
opaque_data_return- placeholder for the returned opaque data.

Definition at line 882 of file pi_unified_runtime.cpp.

References pi2ur::piextPluginGetOpaqueData().

Referenced by sycl::_V1::detail::getPluginOpaqueData(), and piPluginInit().

◆ piextProgramCreateWithNativeHandle()

pi_result piextProgramCreateWithNativeHandle ( pi_native_handle  nativeHandle,
pi_context  context,
bool  pluginOwnsNativeHandle,
pi_program program 
)

Creates PI program object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI program from.
contextis the PI context of the program.
pluginOwnsNativeHandleIndicates whether the created PI object should take ownership of the native handle.
programis the PI program created from the native handle.

Definition at line 893 of file pi_unified_runtime.cpp.

References pi2ur::piextProgramCreateWithNativeHandle().

Referenced by sycl::_V1::detail::make_kernel_bundle(), and piPluginInit().

◆ piextProgramGetNativeHandle()

pi_result piextProgramGetNativeHandle ( pi_program  program,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI program object.

Parameters
programis the PI program to get the native handle of.
nativeHandleis the native handle of program.

Definition at line 887 of file pi_unified_runtime.cpp.

References pi2ur::piextProgramGetNativeHandle().

Referenced by sycl::_V1::detail::device_image_impl::getNative(), sycl::_V1::detail::program_impl::getNative(), and piPluginInit().

◆ piextProgramSetSpecializationConstant()

pi_result piextProgramSetSpecializationConstant ( pi_program  prog,
pi_uint32  spec_id,
size_t  spec_size,
const void *  spec_value 
)

Sets a specialization constant to a specific value.

Note: Only used when specialization constants are natively supported (SPIR-V binaries), and not when they are emulated (AOT binaries).

Parameters
progthe program object which will use the value
spec_idinteger ID of the constant
spec_sizesize of the value
spec_valuebytes of the value

Definition at line 151 of file pi_unified_runtime.cpp.

References pi2ur::piextProgramSetSpecializationConstant().

Referenced by sycl::_V1::detail::enableITTAnnotationsIfNeeded(), sycl::_V1::detail::program_impl::flush_spec_constants(), piPluginInit(), and sycl::_V1::detail::setSpecializationConstants().

◆ piextQueueCreate()

pi_result piextQueueCreate ( pi_context  context,
pi_device  device,
pi_queue_properties properties,
pi_queue queue 
)
Parameters
propertiespoints to a zero-terminated array of extra data describing desired queue properties. Format is {[PROPERTY[, property-specific elements of data]*,]* 0}

Definition at line 128 of file pi_unified_runtime.cpp.

References pi2ur::piextQueueCreate().

Referenced by sycl::_V1::detail::queue_impl::createQueue(), and piPluginInit().

◆ piextQueueCreateWithNativeHandle()

pi_result piextQueueCreateWithNativeHandle ( pi_native_handle  nativeHandle,
int32_t  nativeHandleDesc,
pi_context  context,
pi_device  device,
bool  pluginOwnsNativeHandle,
pi_queue_properties Properties,
pi_queue queue 
)

Creates PI queue object from a native handle.

NOTE: The created PI object takes ownership of the native handle.

Parameters
nativeHandleis the native handle to create PI queue from.
nativeHandleDescprovides additional properties of the native handle.
contextis the PI context of the queue.
deviceis the PI device associated with the native device used when creating the native queue. This parameter is optional but some backends may fail to create the right PI queue if omitted.
pluginOwnsNativeHandleIndicates whether the created PI object should take ownership of the native handle.
Propertiesholds queue properties.
queueis the PI queue created from the native handle.

Definition at line 745 of file pi_unified_runtime.cpp.

References pi2ur::piextQueueCreateWithNativeHandle().

Referenced by sycl::_V1::detail::make_queue(), and piPluginInit().

◆ piextQueueGetNativeHandle()

pi_result piextQueueGetNativeHandle ( pi_queue  queue,
pi_native_handle nativeHandle,
int32_t *  nativeHandleDesc 
)

Gets the native handle of a PI queue object.

Parameters
queueis the PI queue to get the native handle of.
nativeHandleis the native handle of queue or commandlist.
nativeHandleDescprovides additional properties of the native handle.

Definition at line 739 of file pi_unified_runtime.cpp.

References pi2ur::piextQueueGetNativeHandle().

Referenced by sycl::_V1::detail::queue_impl::getNative(), and piPluginInit().

◆ piextSignalExternalSemaphore()

pi_result piextSignalExternalSemaphore ( pi_queue  command_queue,
pi_interop_semaphore_handle  sem_handle,
pi_uint32  num_events_in_wait_list,
const pi_event event_wait_list,
pi_event event 
)

API to instruct the queue to signal the external semaphore handle once all previous commands have completed execution.

Parameters
command_queueis the queue instructed to signal
sem_handleis the interop semaphore handle to signal
num_events_in_wait_listis the number of events in the wait list
event_wait_listis the list of events to wait on before this operation
eventis the returned event representing this operation

Definition at line 1344 of file pi_unified_runtime.cpp.

References pi2ur::piextSignalExternalSemaphore().

◆ piextUSMDeviceAlloc()

pi_result piextUSMDeviceAlloc ( void **  result_ptr,
pi_context  context,
pi_device  device,
pi_usm_mem_properties properties,
size_t  size,
pi_uint32  alignment 
)

Allocates device memory.

Parameters
result_ptrcontains the allocated memory
contextis the pi_context
deviceis the device the memory will be allocated on
propertiesare optional allocation properties
sizeis the size of the allocation
alignmentis the desired alignment of the allocation

Definition at line 346 of file pi_unified_runtime.cpp.

References sycl::_V1::ext::oneapi::experimental::detail::Alignment, and pi2ur::piextUSMDeviceAlloc().

Referenced by sycl::_V1::detail::usm::alignedAllocInternal(), and piPluginInit().

◆ piextUSMEnqueueFill2D()

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.

USM 2D fill API.

Parameters
queueis the queue to submit to
ptris the ptr to fill
pitchis the total width of the destination memory including padding
patternis a pointer with the bytes of the pattern to set
pattern_sizeis the size in bytes of the pattern
widthis width in bytes of each row to fill
heightis height the columns to fill
num_events_in_waitlistis the number of events to wait on
events_waitlistis an array of events to wait on
eventis the event that represents this operation

Definition at line 823 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueueFill2D().

Referenced by sycl::_V1::detail::MemoryManager::fill_2d_usm(), and piPluginInit().

◆ piextUSMEnqueueMemAdvise()

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.

USM Memadvise API.

Parameters
Queueis the queue to submit to
Ptris the data to be advised
Lengthis the size in bytes of the meory to advise
Adviceis device specific advice
Eventis the event that represents this operation

Definition at line 803 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueueMemAdvise().

Referenced by sycl::_V1::detail::MemoryManager::advise_usm(), and piPluginInit().

◆ piextUSMEnqueueMemcpy()

pi_result piextUSMEnqueueMemcpy ( pi_queue  queue,
pi_bool  blocking,
void *  dst_ptr,
const void *  src_ptr,
size_t  size,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
pi_event event 
)

USM Memcpy API.

Parameters
queueis the queue to submit to
blockingis whether this operation should block the host
src_ptris the data to be copied
dst_ptris the location the data will be copied
sizeis number of bytes to copy
num_events_in_waitlistis the number of events to wait on
events_waitlistis an array of events to wait on
eventis the event that represents this operation

Definition at line 484 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueueMemcpy().

Referenced by sycl::_V1::detail::MemoryManager::copy_2d_usm(), sycl::_V1::detail::MemoryManager::copy_usm(), and piPluginInit().

◆ piextUSMEnqueueMemcpy2D()

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 Event 
)

USM 2D Memcpy API.

Parameters
queueis the queue to submit to
blockingis whether this operation should block the host
dst_ptris the location the data will be copied
dst_pitchis the total width of the destination memory including padding
src_ptris the data to be copied
dst_pitchis the total width of the source memory including padding
widthis width in bytes of each row to be copied
heightis height the columns to be copied
num_events_in_waitlistis the number of events to wait on
events_waitlistis an array of events to wait on
eventis the event that represents this operation

Definition at line 945 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueueMemcpy2D().

Referenced by sycl::_V1::detail::MemoryManager::copy_2d_usm(), and piPluginInit().

◆ piextUSMEnqueueMemset()

pi_result piextUSMEnqueueMemset ( pi_queue  Queue,
void *  Ptr,
pi_int32  Value,
size_t  Count,
pi_uint32  NumEventsInWaitlist,
const pi_event EventsWaitlist,
pi_event Event 
)

USM Memset API.

Parameters
Queueis the queue to submit to
Ptris the ptr to memset
Valueis value to set. It is interpreted as an 8-bit value and the upper 24 bits are ignored
Countis the size in bytes to memset
NumEventsInWaitlistis the number of events to wait on
EventsWaitlistis an array of events to wait on
Eventis the event that represents this operation

Definition at line 451 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueueMemset().

Referenced by sycl::_V1::detail::MemoryManager::fill_usm(), and piPluginInit().

◆ piextUSMEnqueueMemset2D()

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.

Parameters
queueis the queue to submit to
ptris the ptr to fill
pitchis the total width of the destination memory including padding
patternis a pointer with the bytes of the pattern to set
pattern_sizeis the size in bytes of the pattern
widthis width in bytes of each row to fill
heightis height the columns to fill
num_events_in_waitlistis the number of events to wait on
events_waitlistis an array of events to wait on
eventis the event that represents this operation

Definition at line 848 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueueMemset2D().

Referenced by sycl::_V1::detail::MemoryManager::memset_2d_usm(), and piPluginInit().

◆ piextUSMEnqueuePrefetch()

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.

Parameters
Queueis the queue to submit to
Ptrpoints to the memory to migrate
Sizeis the number of bytes to migrate
Flagsis a bitfield used to specify memory migration options
NumEventsInWaitlistis the number of events to wait on
EventsWaitlistis an array of events to wait on
Eventis the event that represents this operation

Definition at line 784 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMEnqueuePrefetch().

Referenced by piPluginInit(), and sycl::_V1::detail::MemoryManager::prefetch_usm().

◆ piextUSMFree()

pi_result piextUSMFree ( pi_context  context,
void *  ptr 
)

Indicates that the allocated USM memory is no longer needed on the runtime side.

The actual freeing of the memory may be done in a blocking or deferred manner, e.g. to avoid issues with indirect memory access from kernels.

Parameters
contextis the pi_context of the allocation
ptris the memory to be freed

Definition at line 389 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMFree().

Referenced by sycl::_V1::detail::usm::freeInternal(), and piPluginInit().

◆ piextUSMGetMemAllocInfo()

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.

API to query information about USM allocated pointers Valid Queries: PI_MEM_ALLOC_TYPE returns host/device/shared pi_host_usm value PI_MEM_ALLOC_BASE_PTR returns the base ptr of an allocation if the queried pointer fell inside an allocation.

Valid Queries: PI_MEM_ALLOC_TYPE returns host/device/shared pi_usm_type value PI_MEM_ALLOC_BASE_PTR returns the base ptr of an allocation if the queried pointer fell inside an allocation. Result must fit in void * PI_MEM_ALLOC_SIZE returns how big the queried pointer's allocation is in bytes. Result is a size_t. PI_MEM_ALLOC_DEVICE returns the pi_device this was allocated against

Parameters
Contextis the pi_context
Ptris the pointer to query
ParamNameis the type of query to perform
ParamValueSizeis the size of the result in bytes
ParamValueis the result
ParamValueRetis how many bytes were written

Definition at line 875 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMGetMemAllocInfo().

Referenced by piPluginInit().

◆ piextUSMHostAlloc()

pi_result piextUSMHostAlloc ( void **  result_ptr,
pi_context  context,
pi_usm_mem_properties properties,
size_t  size,
pi_uint32  alignment 
)

Allocates host memory accessible by the device.

Parameters
result_ptrcontains the allocated memory
contextis the pi_context
propertiesare optional allocation properties
sizeis the size of the allocation
alignmentis the desired alignment of the allocation

Definition at line 207 of file pi_unified_runtime.cpp.

References sycl::_V1::ext::oneapi::experimental::detail::Alignment, and pi2ur::piextUSMHostAlloc().

Referenced by sycl::_V1::detail::usm::alignedAllocHost(), and piPluginInit().

◆ piextUSMImport()

pi_result piextUSMImport ( const void *  ptr,
size_t  size,
pi_context  context 
)

Import host system memory into USM.

Parameters
ptrstart address of memory range to import
sizeis the number of bytes to import
contextis the pi_context

Definition at line 393 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMImport().

Referenced by piPluginInit().

◆ piextUSMPitchedAlloc()

pi_result piextUSMPitchedAlloc ( void **  result_ptr,
size_t *  result_pitch,
pi_context  context,
pi_device  device,
pi_usm_mem_properties properties,
size_t  width_in_bytes,
size_t  height,
unsigned int  element_size_bytes 
)

Allocates memory accessible on device.

Parameters
result_ptrcontains the allocated memory
result_pitchcontains the returned memory pitch
contextis the pi_context
deviceis the device the memory will be allocated on
propertiesare optional allocation properties
width_in_bytesis the width of the allocation in bytes
heightis the height of the allocation in rows
element_size_bytesis the size in bytes of an element in the allocation

Definition at line 379 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMPitchedAlloc().

Referenced by sycl::_V1::ext::oneapi::experimental::pitched_alloc_device().

◆ piextUSMRelease()

pi_result piextUSMRelease ( const void *  ptr,
pi_context  context 
)

Release host system memory from USM.

Parameters
ptrstart address of imported memory range
contextis the pi_context

Definition at line 398 of file pi_unified_runtime.cpp.

References pi2ur::piextUSMRelease().

Referenced by piPluginInit().

◆ piextUSMSharedAlloc()

pi_result piextUSMSharedAlloc ( void **  result_ptr,
pi_context  context,
pi_device  device,
pi_usm_mem_properties properties,
size_t  size,
pi_uint32  alignment 
)

Allocates memory accessible on both host and device.

Parameters
result_ptrcontains the allocated memory
contextis the pi_context
deviceis the device the memory will be allocated on
propertiesare optional allocation properties
sizeis the size of the allocation
alignmentis the desired alignment of the allocation

Definition at line 369 of file pi_unified_runtime.cpp.

References sycl::_V1::ext::oneapi::experimental::detail::Alignment, and pi2ur::piextUSMSharedAlloc().

Referenced by sycl::_V1::detail::usm::alignedAllocInternal(), and piPluginInit().

◆ piextWaitExternalSemaphore()

pi_result piextWaitExternalSemaphore ( pi_queue  command_queue,
pi_interop_semaphore_handle  sem_handle,
pi_uint32  num_events_in_wait_list,
const pi_event event_wait_list,
pi_event event 
)

API to instruct the queue with a non-blocking wait on an external semaphore.

Parameters
command_queueis the queue instructed to wait
sem_handleis the interop semaphore handle
num_events_in_wait_listis the number of events in the wait list
event_wait_listis the list of events to wait on before this operation
eventis the returned event representing this operation

Definition at line 1336 of file pi_unified_runtime.cpp.

References pi2ur::piextWaitExternalSemaphore().

◆ piGetDeviceAndHostTimer()

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 host timer at the closest possible point in time to that at which DeviceTime was returned.

Parameters
Devicedevice to query for timestamp
DeviceTimepointer to store device timestamp in nanoseconds. Optional argument, can be nullptr
HostTimepointer to store host timestamp in nanoseconds. Optional argurment, can be nullptr in which case timestamp will not be written

Definition at line 1180 of file pi_unified_runtime.cpp.

References pi2ur::piGetDeviceAndHostTimer().

Referenced by sycl::_V1::detail::device_impl::getCurrentDeviceTime(), sycl::_V1::detail::device_impl::isGetDeviceAndHostTimerSupported(), and piPluginInit().

◆ piKernelCreate()

pi_result piKernelCreate ( pi_program  Program,
const char *  KernelName,
pi_kernel RetKernel 
)

◆ piKernelGetGroupInfo()

◆ piKernelGetInfo()

◆ piKernelGetSubGroupInfo()

pi_result piKernelGetSubGroupInfo ( pi_kernel  kernel,
pi_device  device,
pi_kernel_sub_group_info  param_name,
size_t  input_value_size,
const void *  input_value,
size_t  param_value_size,
void *  param_value,
size_t *  param_value_size_ret 
)

API to query information from the sub-group from a kernel.

Parameters
kernelis the pi_kernel to query
deviceis the device the kernel is executed on
param_nameis a pi_kernel_sub_group_info enum value that specifies the informtation queried for.
input_value_sizeis the size of input value passed in ptr input_value param
input_valueis the ptr to the input value passed.
param_value_sizeis the size of the value in bytes.
param_valueis a pointer to the value to set.
param_value_size_retis a pointer to return the size of data in param_value ptr.

All queries expect a return of 4 bytes in param_value_size, param_value_size_ret, and a uint32_t value should to be written in param_value ptr. Note: This behaviour differs from OpenCL. OpenCL returns size_t.

Definition at line 422 of file pi_unified_runtime.cpp.

References pi2ur::piKernelGetSubGroupInfo().

Referenced by sycl::_V1::detail::get_kernel_device_specific_info_helper(), sycl::_V1::detail::get_kernel_device_specific_info_with_input(), and piPluginInit().

◆ piKernelRelease()

◆ piKernelRetain()

◆ piKernelSetArg()

pi_result piKernelSetArg ( pi_kernel  Kernel,
pi_uint32  ArgIndex,
size_t  ArgSize,
const void *  ArgValue 
)

◆ piKernelSetExecInfo()

pi_result piKernelSetExecInfo ( pi_kernel  kernel,
pi_kernel_exec_info  value_name,
size_t  param_value_size,
const void *  param_value 
)

API to set attributes controlling kernel execution.

Parameters
kernelis the pi kernel to execute
param_nameis a pi_kernel_exec_info value that specifies the info passed to the kernel
param_value_sizeis the size of the value in bytes
param_valueis a pointer to the value to set for the kernel

If param_name is PI_USM_INDIRECT_ACCESS, the value will be a ptr to the pi_bool value PI_TRUE If param_name is PI_USM_PTRS, the value will be an array of ptrs

Definition at line 581 of file pi_unified_runtime.cpp.

References pi2ur::piKernelSetExecInfo().

Referenced by sycl::_V1::detail::enqueueImpKernel(), sycl::_V1::detail::ProgramManager::getOrCreateKernel(), sycl::_V1::detail::kernel_impl::kernel_impl(), and piPluginInit().

◆ piMemBufferCreate()

pi_result piMemBufferCreate ( pi_context  Context,
pi_mem_flags  Flags,
size_t  Size,
void *  HostPtr,
pi_mem RetMem,
const pi_mem_properties properties 
)

◆ piMemBufferPartition()

pi_result piMemBufferPartition ( pi_mem  Buffer,
pi_mem_flags  Flags,
pi_buffer_create_type  BufferCreateType,
void *  BufferCreateInfo,
pi_mem RetMem 
)

◆ piMemGetInfo()

pi_result piMemGetInfo ( pi_mem  Mem,
pi_mem_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piMemImageCreate()

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 
)

◆ piMemImageGetInfo()

pi_result piMemImageGetInfo ( pi_mem  Image,
pi_image_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

Definition at line 923 of file pi_unified_runtime.cpp.

References pi2ur::piMemImageGetInfo().

Referenced by sycl::_V1::detail::getImageInfo(), and piPluginInit().

◆ piMemRelease()

◆ piMemRetain()

◆ piPlatformGetInfo()

pi_result piPlatformGetInfo ( pi_platform  Platform,
pi_platform_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piPlatformsGet()

pi_result piPlatformsGet ( pi_uint32  NumEntries,
pi_platform Platforms,
pi_uint32 NumPlatforms 
)

◆ piPluginGetBackendOption()

pi_result piPluginGetBackendOption ( pi_platform  platform,
const char *  frontend_option,
const char **  backend_option 
)

API to get backend specific option.

Parameters
frontend_optionis a string that contains frontend option.
backend_optionis used to return the backend option corresponding to frontend option.
Returns
PI_SUCCESS is returned for valid frontend_option. If a valid backend option is not available, an empty string is returned.

Definition at line 1186 of file pi_unified_runtime.cpp.

References pi2ur::piPluginGetBackendOption().

Referenced by sycl::_V1::detail::platform_impl::getBackendOption(), and piPluginInit().

◆ piPluginInit()

pi_result piPluginInit ( pi_plugin PluginInit)

Definition at line 1353 of file pi_unified_runtime.cpp.

References _PI_API, _PI_PLUGIN_VERSION_CHECK, _PI_SANITIZE_TYPE_ADDRESS, _PI_UNIFIED_RUNTIME_PLUGIN_VERSION_STRING, Adapters, createCUDATracingContext(), enableCUDATracing(), HANDLE_ERRORS, PI_ASSERT, piContextCreate(), piContextGetInfo(), piContextRelease(), piContextRetain(), piDeviceGetInfo(), piDevicePartition(), piDeviceRelease(), piDeviceRetain(), piDevicesGet(), piEnqueueEventsWait(), piEnqueueEventsWaitWithBarrier(), piEnqueueKernelLaunch(), piEnqueueMemBufferCopy(), piEnqueueMemBufferCopyRect(), piEnqueueMemBufferFill(), piEnqueueMemBufferMap(), piEnqueueMemBufferRead(), piEnqueueMemBufferReadRect(), piEnqueueMemBufferWrite(), piEnqueueMemBufferWriteRect(), piEnqueueMemImageCopy(), piEnqueueMemImageFill(), piEnqueueMemImageRead(), piEnqueueMemImageWrite(), piEnqueueMemUnmap(), piEventCreate(), piEventGetInfo(), piEventGetProfilingInfo(), piEventRelease(), piEventRetain(), piEventSetCallback(), piEventSetStatus(), piEventsWait(), piextContextCreateWithNativeHandle(), piextContextGetNativeHandle(), piextContextSetExtendedDeleter(), piextDeviceCreateWithNativeHandle(), piextDeviceGetNativeHandle(), piextDeviceSelectBinary(), piextDisablePeerAccess(), piextEnablePeerAccess(), piextEnqueueDeviceGlobalVariableRead(), piextEnqueueDeviceGlobalVariableWrite(), piextEventCreateWithNativeHandle(), piextEventGetNativeHandle(), piextGetDeviceFunctionPointer(), piextGetGlobalVariablePointer(), piextKernelCreateWithNativeHandle(), piextKernelSetArgMemObj(), piextKernelSetArgPointer(), piextKernelSetArgSampler(), piextMemCreateWithNativeHandle(), piextMemGetNativeHandle(), piextPeerAccessGetInfo(), piextPlatformCreateWithNativeHandle(), piextPlatformGetNativeHandle(), piextPluginGetOpaqueData(), piextProgramCreateWithNativeHandle(), piextProgramGetNativeHandle(), piextProgramSetSpecializationConstant(), piextQueueCreate(), piextQueueCreateWithNativeHandle(), piextQueueGetNativeHandle(), piextUSMDeviceAlloc(), piextUSMEnqueueFill2D(), piextUSMEnqueueMemAdvise(), piextUSMEnqueueMemcpy(), piextUSMEnqueueMemcpy2D(), piextUSMEnqueueMemset(), piextUSMEnqueueMemset2D(), piextUSMEnqueuePrefetch(), piextUSMFree(), piextUSMGetMemAllocInfo(), piextUSMHostAlloc(), piextUSMImport(), piextUSMRelease(), piextUSMSharedAlloc(), _pi_plugin::PiFunctionTable, piGetDeviceAndHostTimer(), piKernelCreate(), piKernelGetGroupInfo(), piKernelGetInfo(), piKernelGetSubGroupInfo(), piKernelRelease(), piKernelRetain(), piKernelSetArg(), piKernelSetExecInfo(), piMemBufferCreate(), piMemBufferPartition(), piMemGetInfo(), piMemImageCreate(), piMemImageGetInfo(), piMemRelease(), piMemRetain(), piPlatformGetInfo(), piPlatformsGet(), piPluginGetBackendOption(), piProgramBuild(), piProgramCompile(), piProgramCreate(), piProgramCreateWithBinary(), piProgramGetBuildInfo(), piProgramGetInfo(), piProgramLink(), piProgramRelease(), piProgramRetain(), piQueueCreate(), piQueueFinish(), piQueueFlush(), piQueueGetInfo(), piQueueRelease(), piQueueRetain(), piSamplerCreate(), piSamplerGetInfo(), piSamplerRelease(), piSamplerRetain(), piTearDown(), _pi_plugin::PiVersion, _pi_plugin::PluginVersion, _pi_plugin::SanitizeType, SupportedVersion, ur2piResult(), and AdapterHolder::Vec.

Referenced by sycl::_V1::detail::pi::bindPlugin().

◆ piProgramBuild()

pi_result piProgramBuild ( pi_program  Program,
pi_uint32  NumDevices,
const pi_device DeviceList,
const char *  Options,
void(*)(pi_program Program, void *UserData)  PFnNotify,
void *  UserData 
)

Definition at line 143 of file pi_unified_runtime.cpp.

References pi2ur::piProgramBuild().

Referenced by piPluginInit().

◆ piProgramCompile()

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(*)(pi_program Program, void *UserData)  PFnNotify,
void *  UserData 
)

Definition at line 631 of file pi_unified_runtime.cpp.

References pi2ur::piProgramCompile().

Referenced by piPluginInit().

◆ piProgramCreate()

pi_result piProgramCreate ( pi_context  Context,
const void *  ILBytes,
size_t  Length,
pi_program Program 
)

◆ piProgramCreateWithBinary()

pi_result piProgramCreateWithBinary ( pi_context  context,
pi_uint32  num_devices,
const pi_device device_list,
const size_t *  lengths,
const unsigned char **  binaries,
size_t  num_metadata_entries,
const pi_device_binary_property metadata,
pi_int32 binary_status,
pi_program ret_program 
)

Creates a PI program for a context and loads the given binary into it.

Parameters
contextis the PI context to associate the program with.
num_devicesis the number of devices in device_list.
device_listis a pointer to a list of devices. These devices must all be in context.
lengthsis an array of sizes in bytes of the binary in binaries.
binariesis a pointer to a list of program binaries.
num_metadata_entriesis the number of metadata entries in metadata.
metadatais a pointer to a list of program metadata entries. The use of metadata entries is backend-defined.
binary_statusreturns whether the program binary was loaded succesfully or not, for each device in device_list. binary_status is ignored if it is null and otherwise it must be an array of num_devices elements.
ret_programis the PI program created from the program binaries.

Definition at line 610 of file pi_unified_runtime.cpp.

References pi2ur::piProgramCreateWithBinary().

Referenced by sycl::_V1::detail::createBinaryProgram(), and piPluginInit().

◆ piProgramGetBuildInfo()

pi_result piProgramGetBuildInfo ( pi_program  Program,
pi_device  Device,
pi_program_build_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piProgramGetInfo()

◆ piProgramLink()

pi_result piProgramLink ( pi_context  Context,
pi_uint32  NumDevices,
const pi_device DeviceList,
const char *  Options,
pi_uint32  NumInputPrograms,
const pi_program InputPrograms,
void(*)(pi_program Program, void *UserData)  PFnNotify,
void *  UserData,
pi_program RetProgram 
)

Definition at line 158 of file pi_unified_runtime.cpp.

References pi2ur::piProgramLink().

Referenced by piPluginInit().

◆ piProgramRelease()

◆ piProgramRetain()

◆ piQueueCreate()

pi_result piQueueCreate ( pi_context  Context,
pi_device  Device,
pi_queue_properties  Flags,
pi_queue Queue 
)

Definition at line 122 of file pi_unified_runtime.cpp.

References PI_QUEUE_FLAGS, piextQueueCreate(), and pi2ur::piQueueCreate().

Referenced by piPluginInit().

◆ piQueueFinish()

◆ piQueueFlush()

pi_result piQueueFlush ( pi_queue  Queue)

◆ piQueueGetInfo()

pi_result piQueueGetInfo ( pi_queue  Queue,
pi_queue_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piQueueRelease()

pi_result piQueueRelease ( pi_queue  Queue)

◆ piQueueRetain()

◆ piSamplerCreate()

pi_result piSamplerCreate ( pi_context  Context,
const pi_sampler_properties SamplerProperties,
pi_sampler RetSampler 
)

◆ piSamplerGetInfo()

pi_result piSamplerGetInfo ( pi_sampler  Sampler,
pi_sampler_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

◆ piSamplerRelease()

pi_result piSamplerRelease ( pi_sampler  Sampler)

◆ piSamplerRetain()

pi_result piSamplerRetain ( pi_sampler  Sampler)

◆ piTearDown()

pi_result piTearDown ( void *  PluginParameter)

API to notify that the plugin should clean up its resources.

No PI calls should be made until the next piPluginInit call.

Parameters
PluginParameterplaceholder for future use, currenly not used.

Definition at line 1213 of file pi_unified_runtime.cpp.

References Adapters, pi2ur::piTearDown(), releaseAdapters(), and AdapterHolder::Vec.

Referenced by piPluginInit(), and sycl::_V1::detail::GlobalHandler::unloadPlugins().

◆ releaseAdapters()

static void releaseAdapters ( std::vector< ur_adapter_handle_t > &  Vec)
static

Definition at line 22 of file pi_unified_runtime.cpp.

Referenced by piTearDown(), and AdapterHolder::~AdapterHolder().

Variable Documentation

◆ Adapters

struct AdapterHolder Adapters