Skip to content

[UR][Offload] Tracking issue for features missing in the offload UR adapter #18681

@RossBrunton

Description

@RossBrunton

This is an incomplete list of features that the Offload adapter needs to implement:

Entry Points:

  • [optional] All bindless image entry points
  • [optional] All command buffer entry points
  • [optional] All "physical mem" entry points
  • [optional] All "virtual mem" entry points
  • [optional] Get/Create with native handle for all modules
  • [optional] urAdapterGetLastError
  • [optional] urContextSetExtendedDeleter
  • [optional] urDeviceGetGlobalTimestamps
  • urEnqueueDeviceGlobalVariableRead
  • urEnqueueDeviceGlobalVariableWrite
  • urEnqueueEventsWait
  • urEnqueueEventsWaitWithBarrier
  • urEnqueueMemBufferCopy
  • urEnqueueMemBufferCopyRect
  • urEnqueueMemBufferFill
  • urEnqueueMemBufferReadRect
  • urEnqueueMemBufferWriteRect
  • urEnqueueMemImageCopy
  • urEnqueueMemImageRead
  • urEnqueueMemImageWrite
  • [optional] urEnqueueTimestampRecordingExp
  • [optional] urEnqueueNativeCommandExp
  • urEnqueueUSMFill
  • urEnqueueUSMAdvise
  • urEnqueueUSMMemcpy
  • urEnqueueUSMPrefetch
  • urEnqueueReadHostPipe
  • urEnqueueWriteHostPipe
  • [optional] urEnqueueUSMFill2D
  • [optional] urEnqueueUSMMemcpy2D
  • [optional] urEventGetProfilingInfo
  • urEventSetCallback
  • [optional] urKernelGetSubGroupInfo
  • urKernelSetArgLocal
  • urKernelSetArgMemObj
  • urKernelSetArgSampler
  • [optional] urKernelSetSpecializationConstants
  • [optional] urKernelGetSuggestedLocalWorkSize
  • urMemBufferPartition
  • urMemImageCreate
  • urMemImageGetInfo
  • urQueueFlush
  • [optional] urProgramBuildExp
  • [optional] urProgramCompileExp
  • urProgramGetBuildInfo
  • urProgramGetGlobalVariablePointer
  • urProgramLink
  • [optional] urProgramLinkExp
  • [optional] urProgramSetSpecializationConstants
  • urSamplerCreate
  • urSamplerGetInfo
  • urSamplerRelease
  • urSamplerRetain
  • urUSMGetMemAllocInfo
  • [optional] urUSMPitchedAllocExp
  • urUSMPoolCreate
  • urUSMPoolRetain
  • urUSMPoolRelease
  • urUSMPoolGetInfo

Info Queries:

  • Adapter
  • Context
  • Device
  • Event
    • UR_EVENT_INFO_COMMAND_EXECUTION_STATUS
  • Kernel
  • Platform
  • Program
  • Queue
    • UR_QUEUE_INFO_CONTEXT
    • UR_QUEUE_INFO_DEVICE
    • UR_QUEUE_INFO_DEVICE_DEFAULT
    • UR_QUEUE_INFO_SIZE
    • UR_QUEUE_INFO_EMPTY

Queue Flags:

  • UR_QUEUE_FLAG_DISCARD_EVENTS
  • UR_QUEUE_FLAG_LOW_POWER_EVENTS_SUPPORT_EXP
  • UR_QUEUE_FLAG_ON_DEVICE
  • UR_QUEUE_FLAG_ON_DEVICE_DEFAULT
  • UR_QUEUE_FLAG_OUT_OF_ORDER_EXEC_MODE_ENABLE
  • UR_QUEUE_FLAG_PRIORITY_HIGH
  • UR_QUEUE_FLAG_PRIORITY_LOW
  • UR_QUEUE_FLAG_PROFILING_ENABLE
  • UR_QUEUE_FLAG_SUBMISSION_BATCHED
  • UR_QUEUE_FLAG_SUBMISSION_IMMEDIATE
  • UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM
  • UR_QUEUE_FLAG_USE_DEFAULT_STREAM

Misc:

  • getInfo doesn't seem to verify the property size in all cases
  • workDims > 1 support for urEnqueueKernelLaunch
  • UR_DEVICE_INFO_USM_* should return correct capability flags
  • Ability to report support for different floating point types, sycl currently expects UR_DEVICE_INFO_*_VECTOR_WIDTH queries (currently implemented with placeholder values) and an extension string for this (pending [UR] Stop querying adapter fp16/fp64 support via extension. #15811)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions