DPC++ Runtime
Runtime libraries for oneAPI DPC++
pi_cuda.cpp File Reference

Implementation of CUDA Plugin. More...

#include <pi_cuda.hpp>
#include <sycl/detail/cuda_definitions.hpp>
#include <sycl/detail/defines.hpp>
#include <sycl/detail/pi.hpp>
#include <sycl/detail/pi.def>
Include dependency graph for pi_cuda.cpp:

Go to the source code of this file.

Macros

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

Functions

void enableCUDATracing (cuda_tracing_context_t_ *ctx)
 
void disableCUDATracing (cuda_tracing_context_t_ *ctx)
 
cuda_tracing_context_t_ * createCUDATracingContext ()
 
void freeCUDATracingContext (cuda_tracing_context_t_ *Ctx)
 
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 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 piPluginGetLastError (char **message)
 API to get Plugin specific warning and error messages. More...
 
pi_result piPluginGetBackendOption (pi_platform platform, const char *frontend_option, const char **backend_option)
 API to get backend specific option. More...
 
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 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 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 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 piContextRetain (pi_context Context)
 
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 piQueueGetInfo (pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piQueueRetain (pi_queue Queue)
 
pi_result piQueueRelease (pi_queue Queue)
 
pi_result piQueueFinish (pi_queue Queue)
 
pi_result piQueueFlush (pi_queue Queue)
 
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 piMemBufferCreate (pi_context Context, pi_mem_flags Flags, size_t Size, void *HostPtr, pi_mem *RetMem, const pi_mem_properties *properties)
 
pi_result piMemGetInfo (pi_mem Mem, pi_mem_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piMemRetain (pi_mem Mem)
 
pi_result piMemRelease (pi_mem Mem)
 
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 piextMemGetNativeHandle (pi_mem Mem, pi_device Dev, pi_native_handle *NativeHandle)
 Gets the native handle of a PI mem object. More...
 
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 piProgramCreate (pi_context Context, const void *ILBytes, size_t Length, pi_program *Program)
 
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 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 piProgramGetInfo (pi_program Program, pi_program_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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 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 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 piProgramGetBuildInfo (pi_program Program, pi_device Device, pi_program_build_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piProgramRetain (pi_program Program)
 
pi_result piProgramRelease (pi_program Program)
 
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 piKernelCreate (pi_program Program, const char *KernelName, pi_kernel *RetKernel)
 
pi_result piKernelSetArg (pi_kernel Kernel, pi_uint32 ArgIndex, size_t ArgSize, const void *ArgValue)
 
pi_result piextKernelSetArgMemObj (pi_kernel Kernel, pi_uint32 ArgIndex, const pi_mem_obj_property *ArgProperties, const pi_mem *ArgValue)
 
pi_result piextKernelSetArgSampler (pi_kernel Kernel, pi_uint32 ArgIndex, const pi_sampler *ArgValue)
 
pi_result piKernelGetInfo (pi_kernel Kernel, pi_kernel_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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 piKernelGetGroupInfo (pi_kernel Kernel, pi_device Device, pi_kernel_group_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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 piKernelRetain (pi_kernel Kernel)
 
pi_result piKernelRelease (pi_kernel Kernel)
 
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 piextEnqueueCooperativeKernelLaunch (pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, const size_t *GlobalWorkOffset, const size_t *GlobalWorkSize, const size_t *LocalWorkSize, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
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 piextKernelGetNativeHandle (pi_kernel Kernel, pi_native_handle *NativeHandle)
 Gets the native handle of a PI kernel object. More...
 
pi_result piextKernelSuggestMaxCooperativeGroupCount (pi_kernel Kernel, size_t LocalWorkSize, size_t DynamicSharedMemorySize, pi_uint32 *GroupCountRet)
 Gets the max work group count for a cooperative kernel. More...
 
pi_result piEventCreate (pi_context Context, pi_event *RetEvent)
 Create PI event object in a signalled/completed state. More...
 
pi_result piEventGetInfo (pi_event Event, pi_event_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piEventGetProfilingInfo (pi_event Event, pi_profiling_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
pi_result piEventsWait (pi_uint32 NumEvents, const pi_event *EventList)
 
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 piextEventGetNativeHandle (pi_event Event, pi_native_handle *NativeHandle)
 Gets the native handle of a PI event object. More...
 
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 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 piEnqueueEventsWait (pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
pi_result piEnqueueEventsWaitWithBarrier (pi_queue Queue, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
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 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 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 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 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 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 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 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 piEnqueueMemUnmap (pi_queue Queue, pi_mem Mem, void *MappedPtr, pi_uint32 NumEventsInWaitList, const pi_event *EventWaitList, pi_event *OutEvent)
 
pi_result piMemImageGetInfo (pi_mem Image, pi_image_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet)
 
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 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 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 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 piMemBufferPartition (pi_mem Buffer, pi_mem_flags Flags, pi_buffer_create_type BufferCreateType, void *BufferCreateInfo, pi_mem *RetMem)
 
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 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 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 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 piextUSMFree (pi_context Context, void *Ptr)
 Indicates that the allocated USM memory is no longer needed on the runtime side. More...
 
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 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 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 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. 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 piextUSMEnqueueMemcpy2D (pi_queue Queue, pi_bool Blocking, void *DstPtr, size_t DstPitch, const void *SrcPtr, size_t SrcPitch, size_t Width, size_t Height, pi_uint32 NumEventsInWaitlist, const pi_event *EventWaitlist, pi_event *Event)
 USM 2D Memcpy API. 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 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. 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 piextEnqueueDeviceGlobalVariableWrite (pi_queue Queue, pi_program Program, const char *Name, pi_bool BlockingWrite, size_t Count, size_t Offset, const void *Src, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
 Device global variable. 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 piextEnqueueReadHostPipe (pi_queue Queue, pi_program Program, const char *PipeSymbol, pi_bool Blocking, void *Ptr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
 Plugin. More...
 
pi_result piextEnqueueWriteHostPipe (pi_queue Queue, pi_program Program, const char *PipeSymbol, pi_bool Blocking, void *Ptr, size_t Size, pi_uint32 NumEventsInWaitList, const pi_event *EventsWaitList, pi_event *Event)
 Write to pipe of a given name. More...
 
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 piextProgramSetSpecializationConstant (pi_program Prog, pi_uint32 SpecID, size_t Size, const void *SpecValue)
 Sets a specialization constant to a specific value. 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 piextPluginGetOpaqueData (void *opaque_data_param, void **opaque_data_return)
 API to get Plugin internal data, opaque to SYCL RT. More...
 
pi_result piTearDown (void *PluginParameter)
 API to notify that the plugin should clean up its resources. 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 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 piPluginInit (pi_plugin *PluginInit)
 

Variables

const char SupportedVersion [] = _PI_CUDA_PLUGIN_VERSION_STRING
 

Detailed Description

Implementation of CUDA Plugin.

Definition in file pi_cuda.cpp.

Macro Definition Documentation

◆ _PI_API

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

Function Documentation

◆ createCUDATracingContext()

cuda_tracing_context_t_* createCUDATracingContext ( )

Referenced by piPluginInit().

◆ disableCUDATracing()

void disableCUDATracing ( cuda_tracing_context_t_ *  ctx)

◆ enableCUDATracing()

void enableCUDATracing ( cuda_tracing_context_t_ *  ctx)

Referenced by piPluginInit().

◆ freeCUDATracingContext()

void freeCUDATracingContext ( cuda_tracing_context_t_ *  Ctx)

◆ 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 114 of file pi_cuda.cpp.

References pi2ur::piContextCreate().

◆ piContextGetInfo()

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

Definition at line 124 of file pi_cuda.cpp.

◆ piContextRelease()

pi_result piContextRelease ( pi_context  Context)

Definition at line 157 of file pi_cuda.cpp.

◆ piContextRetain()

pi_result piContextRetain ( pi_context  Context)

Definition at line 152 of file pi_cuda.cpp.

◆ 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 78 of file pi_cuda.cpp.

◆ piDevicePartition()

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

Definition at line 85 of file pi_cuda.cpp.

◆ piDeviceRelease()

pi_result piDeviceRelease ( pi_device  Device)

Definition at line 74 of file pi_cuda.cpp.

◆ piDeviceRetain()

pi_result piDeviceRetain ( pi_device  Device)

Definition at line 70 of file pi_cuda.cpp.

◆ piDevicesGet()

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

Definition at line 63 of file pi_cuda.cpp.

◆ piEnqueueEventsWait()

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

Definition at line 657 of file pi_cuda.cpp.

◆ piEnqueueEventsWaitWithBarrier()

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

Definition at line 665 of file pi_cuda.cpp.

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

Definition at line 537 of file pi_cuda.cpp.

◆ 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 726 of file pi_cuda.cpp.

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

Definition at line 737 of file pi_cuda.cpp.

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

Definition at line 750 of file pi_cuda.cpp.

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

Definition at line 762 of file pi_cuda.cpp.

◆ 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 674 of file pi_cuda.cpp.

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

Definition at line 686 of file pi_cuda.cpp.

◆ 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 700 of file pi_cuda.cpp.

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

Definition at line 712 of file pi_cuda.cpp.

◆ 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 815 of file pi_cuda.cpp.

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

Definition at line 824 of file pi_cuda.cpp.

◆ 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 789 of file pi_cuda.cpp.

◆ 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 801 of file pi_cuda.cpp.

◆ piEnqueueMemUnmap()

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

Definition at line 773 of file pi_cuda.cpp.

◆ 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 579 of file pi_cuda.cpp.

◆ piEventGetInfo()

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

Definition at line 583 of file pi_cuda.cpp.

◆ piEventGetProfilingInfo()

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

Definition at line 590 of file pi_cuda.cpp.

◆ piEventRelease()

pi_result piEventRelease ( pi_event  Event)

Definition at line 617 of file pi_cuda.cpp.

◆ piEventRetain()

pi_result piEventRetain ( pi_event  Event)

Definition at line 615 of file pi_cuda.cpp.

◆ 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 602 of file pi_cuda.cpp.

References pi2ur::piEventSetCallback().

◆ piEventSetStatus()

pi_result piEventSetStatus ( pi_event  Event,
pi_int32  ExecutionStatus 
)

Definition at line 611 of file pi_cuda.cpp.

◆ piEventsWait()

pi_result piEventsWait ( pi_uint32  NumEvents,
const pi_event EventList 
)

Definition at line 598 of file pi_cuda.cpp.

◆ 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 400 of file pi_cuda.cpp.

◆ 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 1204 of file pi_cuda.cpp.

◆ 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 1068 of file pi_cuda.cpp.

◆ 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 1184 of file pi_cuda.cpp.

◆ 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 1083 of file pi_cuda.cpp.

◆ 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 1108 of file pi_cuda.cpp.

◆ 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 1118 of file pi_cuda.cpp.

◆ 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 1174 of file pi_cuda.cpp.

◆ 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 1130 of file pi_cuda.cpp.

◆ 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 1139 of file pi_cuda.cpp.

◆ 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 1152 of file pi_cuda.cpp.

◆ 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 1161 of file pi_cuda.cpp.

◆ 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 1099 of file pi_cuda.cpp.

◆ 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 1087 of file pi_cuda.cpp.

◆ 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 1195 of file pi_cuda.cpp.

◆ 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 1079 of file pi_cuda.cpp.

◆ 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 1234 of file pi_cuda.cpp.

◆ 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 1075 of file pi_cuda.cpp.

◆ 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 1229 of file pi_cuda.cpp.

◆ 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 1222 of file pi_cuda.cpp.

◆ 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 143 of file pi_cuda.cpp.

◆ 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 138 of file pi_cuda.cpp.

◆ piextContextSetExtendedDeleter()

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

Definition at line 132 of file pi_cuda.cpp.

◆ 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 487 of file pi_cuda.cpp.

◆ 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 106 of file pi_cuda.cpp.

◆ 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 100 of file pi_cuda.cpp.

◆ 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 93 of file pi_cuda.cpp.

◆ piextDisablePeerAccess()

pi_result piextDisablePeerAccess ( pi_device  command_device,
pi_device  peer_device 
)

Definition at line 1258 of file pi_cuda.cpp.

◆ piextEnablePeerAccess()

pi_result piextEnablePeerAccess ( pi_device  command_device,
pi_device  peer_device 
)

Definition at line 1252 of file pi_cuda.cpp.

◆ 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 1213 of file pi_cuda.cpp.

◆ piextEnqueueCooperativeKernelLaunch()

pi_result piextEnqueueCooperativeKernelLaunch ( pi_queue  Queue,
pi_kernel  Kernel,
pi_uint32  WorkDim,
const size_t *  GlobalWorkOffset,
const size_t *  GlobalWorkSize,
const size_t *  LocalWorkSize,
pi_uint32  NumEventsInWaitList,
const pi_event EventWaitList,
pi_event OutEvent 
)

Definition at line 547 of file pi_cuda.cpp.

◆ piextEnqueueDeviceGlobalVariableRead()

pi_result piextEnqueueDeviceGlobalVariableRead ( pi_queue  queue,
pi_program  program,
const char *  name,
pi_bool  blocking_read,
size_t  count,
size_t  offset,
void *  dst,
pi_uint32  num_events_in_wait_list,
const pi_event event_wait_list,
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
blocking_readis true if the read should block
nameis the unique identifier for the device global variable
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
num_events_in_wait_listis a number of events in the wait list
event_wait_listis the wait list
eventis the resulting event

Definition at line 1002 of file pi_cuda.cpp.

◆ piextEnqueueDeviceGlobalVariableWrite()

pi_result piextEnqueueDeviceGlobalVariableWrite ( pi_queue  queue,
pi_program  program,
const char *  name,
pi_bool  blocking_write,
size_t  count,
size_t  offset,
const void *  src,
pi_uint32  num_events_in_wait_list,
const pi_event event_wait_list,
pi_event event 
)

Device global variable.

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

Parameters
queueis the queue
programis the program containing the device global variable
blocking_writeis true if the write should block
nameis the unique identifier for the device global variable
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
num_events_in_wait_listis a number of events in the wait list
event_wait_listis the wait list
eventis the resulting event

Definition at line 993 of file pi_cuda.cpp.

◆ piextEnqueueReadHostPipe()

pi_result piextEnqueueReadHostPipe ( pi_queue  queue,
pi_program  program,
const char *  pipe_symbol,
pi_bool  blocking,
void *  ptr,
size_t  size,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
pi_event event 
)

Plugin.

Read from pipe of a given name

Parameters
queuea valid host command-queue in which the read / write command will be queued. command_queue and program must be created with the same OpenCL context.
programa program object with a successfully built executable.
pipe_symbolthe name of the program scope pipe global variable.
blockingindicate if the read and write operations are blocking or non-blocking
ptra pointer to buffer in host memory that will hold resulting data from pipe
sizesize of the memory region to read or write, in bytes.
num_events_in_waitlistnumber of events in the wait list.
events_waitlistspecify events that need to complete before this particular command can be executed.
eventreturns an event object that identifies this read / write command and can be used to query or queue a wait for this command to complete.

Definition at line 1013 of file pi_cuda.cpp.

◆ piextEnqueueWriteHostPipe()

pi_result piextEnqueueWriteHostPipe ( pi_queue  queue,
pi_program  program,
const char *  pipe_symbol,
pi_bool  blocking,
void *  ptr,
size_t  size,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
pi_event event 
)

Write to pipe of a given name.

Parameters
queuea valid host command-queue in which the read / write command will be queued. command_queue and program must be created with the same OpenCL context.
programa program object with a successfully built executable.
pipe_symbolthe name of the program scope pipe global variable.
blockingindicate if the read and write operations are blocking or non-blocking
ptra pointer to buffer in host memory that holds data to be written to host pipe.
sizesize of the memory region to read or write, in bytes.
num_events_in_waitlistnumber of events in the wait list.
events_waitlistspecify events that need to complete before this particular command can be executed.
eventreturns an event object that identifies this read / write command and can be used to query or queue a wait for this command to complete.

Definition at line 1033 of file pi_cuda.cpp.

◆ 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 627 of file pi_cuda.cpp.

◆ 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 621 of file pi_cuda.cpp.

◆ 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 844 of file pi_cuda.cpp.

◆ piextGetGlobalVariablePointer()

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

Definition at line 851 of file pi_cuda.cpp.

◆ 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 479 of file pi_cuda.cpp.

◆ 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 557 of file pi_cuda.cpp.

◆ piextKernelGetNativeHandle()

pi_result piextKernelGetNativeHandle ( pi_kernel  kernel,
pi_native_handle nativeHandle 
)

Gets the native handle of a PI kernel object.

Parameters
kernelis the PI kernel to get the native handle of.
nativeHandleis the native handle of kernel.

Definition at line 567 of file pi_cuda.cpp.

◆ piextKernelSetArgMemObj()

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

Definition at line 353 of file pi_cuda.cpp.

◆ 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 900 of file pi_cuda.cpp.

◆ piextKernelSetArgSampler()

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

Definition at line 360 of file pi_cuda.cpp.

◆ piextKernelSuggestMaxCooperativeGroupCount()

pi_result piextKernelSuggestMaxCooperativeGroupCount ( pi_kernel  kernel,
size_t  local_work_size,
size_t  dynamic_shared_memory_size,
pi_uint32 group_count_ret 
)

Gets the max work group count for a cooperative kernel.

Parameters
kernelis the PI kernel being queried.
local_work_sizeis the number of work items in a work group that will be used when the kernel is launched.
dynamic_shared_memory_sizeis the size of dynamic shared memory, for each work group, in bytes, that will be used when the kernel is launched."
group_count_retis a pointer to where the query result will be stored.

Definition at line 572 of file pi_cuda.cpp.

◆ 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 241 of file pi_cuda.cpp.

◆ 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 236 of file pi_cuda.cpp.

◆ 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 374 of file pi_cuda.cpp.

◆ 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 427 of file pi_cuda.cpp.

◆ 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 264 of file pi_cuda.cpp.

◆ 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 417 of file pi_cuda.cpp.

◆ 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 450 of file pi_cuda.cpp.

◆ 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 459 of file pi_cuda.cpp.

◆ 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 465 of file pi_cuda.cpp.

◆ 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 422 of file pi_cuda.cpp.

◆ 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 409 of file pi_cuda.cpp.

◆ 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 473 of file pi_cuda.cpp.

◆ 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 391 of file pi_cuda.cpp.

◆ 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 445 of file pi_cuda.cpp.

◆ 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 383 of file pi_cuda.cpp.

◆ 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 440 of file pi_cuda.cpp.

◆ piextPeerAccessGetInfo()

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

Definition at line 1264 of file pi_cuda.cpp.

◆ 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 47 of file pi_cuda.cpp.

◆ 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 42 of file pi_cuda.cpp.

◆ 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 1238 of file pi_cuda.cpp.

◆ 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 333 of file pi_cuda.cpp.

◆ 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 328 of file pi_cuda.cpp.

◆ 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 1060 of file pi_cuda.cpp.

◆ 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 167 of file pi_cuda.cpp.

Referenced by piQueueCreate().

◆ 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 198 of file pi_cuda.cpp.

◆ 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 190 of file pi_cuda.cpp.

◆ 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 500 of file pi_cuda.cpp.

◆ 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 860 of file pi_cuda.cpp.

◆ piextUSMEnqueueFill2D()

pi_result piextUSMEnqueueFill2D ( pi_queue  queue,
void *  ptr,
size_t  pitch,
size_t  pattern_size,
const void *  pattern,
size_t  width,
size_t  height,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
pi_event event 
)

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 941 of file pi_cuda.cpp.

◆ piextUSMEnqueueMemAdvise()

pi_result piextUSMEnqueueMemAdvise ( pi_queue  queue,
const void *  ptr,
size_t  length,
pi_mem_advice  advice,
pi_event event 
)

USM Memadvise API.

Parameters
queueis the queue to submit to
ptris the data to be advised
lengthis the size in bytes of the memory to advise
adviceis device specific advice
eventis the event that represents this operation

Definition at line 934 of file pi_cuda.cpp.

◆ 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 913 of file pi_cuda.cpp.

◆ piextUSMEnqueueMemcpy2D()

pi_result piextUSMEnqueueMemcpy2D ( pi_queue  queue,
pi_bool  blocking,
void *  dst_ptr,
size_t  dst_pitch,
const void *  src_ptr,
size_t  src_pitch,
size_t  width,
size_t  height,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
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
src_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 966 of file pi_cuda.cpp.

◆ piextUSMEnqueueMemset()

pi_result piextUSMEnqueueMemset ( pi_queue  queue,
void *  ptr,
pi_int32  value,
size_t  count,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
pi_event event 
)

USM Memset API.

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
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 905 of file pi_cuda.cpp.

◆ piextUSMEnqueueMemset2D()

pi_result piextUSMEnqueueMemset2D ( pi_queue  queue,
void *  ptr,
size_t  pitch,
int  value,
size_t  width,
size_t  height,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
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
valuethe value to fill into the region in
ptr
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 954 of file pi_cuda.cpp.

◆ piextUSMEnqueuePrefetch()

pi_result piextUSMEnqueuePrefetch ( pi_queue  queue,
const void *  ptr,
size_t  size,
pi_usm_migration_flags  flags,
pi_uint32  num_events_in_waitlist,
const pi_event events_waitlist,
pi_event event 
)

Hint to migrate memory to the device.

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
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 924 of file pi_cuda.cpp.

◆ 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 895 of file pi_cuda.cpp.

◆ piextUSMGetMemAllocInfo()

pi_result piextUSMGetMemAllocInfo ( pi_context  context,
const void *  ptr,
pi_mem_alloc_info  param_name,
size_t  param_value_size,
void *  param_value,
size_t *  param_value_size_ret 
)

API to query information about USM allocated pointers Valid Queries: PI_MEM_ALLOC_TYPE returns host/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.

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
param_nameis the type of query to perform
param_value_sizeis the size of the result in bytes
param_valueis the result
param_value_size_retis how many bytes were written

Definition at line 977 of file pi_cuda.cpp.

◆ 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 888 of file pi_cuda.cpp.

◆ 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 985 of file pi_cuda.cpp.

◆ 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 878 of file pi_cuda.cpp.

◆ 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 989 of file pi_cuda.cpp.

◆ 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 869 of file pi_cuda.cpp.

◆ 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 492 of file pi_cuda.cpp.

◆ 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 1247 of file pi_cuda.cpp.

◆ piKernelCreate()

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

Definition at line 341 of file pi_cuda.cpp.

◆ piKernelGetGroupInfo()

pi_result piKernelGetGroupInfo ( pi_kernel  Kernel,
pi_device  Device,
pi_kernel_group_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

Definition at line 508 of file pi_cuda.cpp.

◆ piKernelGetInfo()

pi_result piKernelGetInfo ( pi_kernel  Kernel,
pi_kernel_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

Definition at line 366 of file pi_cuda.cpp.

◆ 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 516 of file pi_cuda.cpp.

◆ piKernelRelease()

pi_result piKernelRelease ( pi_kernel  Kernel)

Definition at line 531 of file pi_cuda.cpp.

◆ piKernelRetain()

pi_result piKernelRetain ( pi_kernel  Kernel)

Definition at line 526 of file pi_cuda.cpp.

◆ piKernelSetArg()

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

Definition at line 347 of file pi_cuda.cpp.

◆ 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 1053 of file pi_cuda.cpp.

◆ piMemBufferCreate()

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

Definition at line 210 of file pi_cuda.cpp.

◆ piMemBufferPartition()

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

Definition at line 836 of file pi_cuda.cpp.

◆ piMemGetInfo()

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

Definition at line 217 of file pi_cuda.cpp.

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

Definition at line 227 of file pi_cuda.cpp.

◆ piMemImageGetInfo()

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

Definition at line 781 of file pi_cuda.cpp.

◆ piMemRelease()

pi_result piMemRelease ( pi_mem  Mem)

Definition at line 225 of file pi_cuda.cpp.

◆ piMemRetain()

pi_result piMemRetain ( pi_mem  Mem)

Definition at line 223 of file pi_cuda.cpp.

◆ piPlatformGetInfo()

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

Definition at line 35 of file pi_cuda.cpp.

◆ piPlatformsGet()

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

Definition at line 30 of file pi_cuda.cpp.

◆ 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 56 of file pi_cuda.cpp.

◆ piPluginGetLastError()

pi_result piPluginGetLastError ( char **  message)

API to get Plugin specific warning and error messages.

Parameters
messageis a returned address to the first element in the message the plugin owns the error message string. The string is thread-local. As a result, different threads may return different errors. A message is overwritten by the following error or warning that is produced within the given thread. The memory is cleaned up at the end of the thread's lifetime.
Returns
PI_SUCCESS if plugin is indicating non-fatal warning. Any other error code indicates that plugin considers this to be a fatal error and the Returns the global timestamp from
Parameters
device,andsyncronized host timestamp

Definition at line 52 of file pi_cuda.cpp.

◆ piPluginInit()

pi_result piPluginInit ( pi_plugin PluginInit)

Definition at line 1275 of file pi_cuda.cpp.

◆ 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 302 of file pi_cuda.cpp.

References pi2ur::piProgramBuild().

◆ 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 291 of file pi_cuda.cpp.

References pi2ur::piProgramCompile().

◆ piProgramCreate()

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

Definition at line 248 of file pi_cuda.cpp.

◆ 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 253 of file pi_cuda.cpp.

◆ piProgramGetBuildInfo()

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

Definition at line 310 of file pi_cuda.cpp.

◆ piProgramGetInfo()

pi_result piProgramGetInfo ( pi_program  Program,
pi_program_info  ParamName,
size_t  ParamValueSize,
void *  ParamValue,
size_t *  ParamValueSizeRet 
)

Definition at line 272 of file pi_cuda.cpp.

◆ 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 280 of file pi_cuda.cpp.

References pi2ur::piProgramLink().

◆ piProgramRelease()

pi_result piProgramRelease ( pi_program  Program)

Definition at line 324 of file pi_cuda.cpp.

◆ piProgramRetain()

pi_result piProgramRetain ( pi_program  Program)

Definition at line 320 of file pi_cuda.cpp.

◆ piQueueCreate()

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

Definition at line 161 of file pi_cuda.cpp.

◆ piQueueFinish()

pi_result piQueueFinish ( pi_queue  Queue)

Definition at line 186 of file pi_cuda.cpp.

◆ piQueueFlush()

pi_result piQueueFlush ( pi_queue  Queue)

Definition at line 188 of file pi_cuda.cpp.

◆ piQueueGetInfo()

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

Definition at line 172 of file pi_cuda.cpp.

◆ piQueueRelease()

pi_result piQueueRelease ( pi_queue  Queue)

Definition at line 182 of file pi_cuda.cpp.

◆ piQueueRetain()

pi_result piQueueRetain ( pi_queue  Queue)

Definition at line 180 of file pi_cuda.cpp.

◆ piSamplerCreate()

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

Definition at line 635 of file pi_cuda.cpp.

◆ piSamplerGetInfo()

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

Definition at line 641 of file pi_cuda.cpp.

◆ piSamplerRelease()

pi_result piSamplerRelease ( pi_sampler  Sampler)

Definition at line 653 of file pi_cuda.cpp.

◆ piSamplerRetain()

pi_result piSamplerRetain ( pi_sampler  Sampler)

Definition at line 649 of file pi_cuda.cpp.

◆ 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 1243 of file pi_cuda.cpp.

Variable Documentation

◆ SupportedVersion

const char SupportedVersion[] = _PI_CUDA_PLUGIN_VERSION_STRING

Definition at line 1273 of file pi_cuda.cpp.

Referenced by piPluginInit().