diff --git a/unified-runtime/source/adapters/offload/enqueue.cpp b/unified-runtime/source/adapters/offload/enqueue.cpp index 0a39aac6f9e34..269063c0640be 100644 --- a/unified-runtime/source/adapters/offload/enqueue.cpp +++ b/unified-runtime/source/adapters/offload/enqueue.cpp @@ -442,3 +442,30 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMMemcpy( return UR_RESULT_SUCCESS; } + +UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMAdvise( + ur_queue_handle_t hQueue, [[maybe_unused]] const void *pMem, + [[maybe_unused]] size_t size, [[maybe_unused]] ur_usm_advice_flags_t advice, + ur_event_handle_t *phEvent) { + // Currently not supported - do nothing + if (phEvent) { + *phEvent = + ur_event_handle_t_::createEmptyEvent(UR_COMMAND_USM_ADVISE, hQueue); + } + return UR_RESULT_SUCCESS; +} + +UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch( + ur_queue_handle_t hQueue, [[maybe_unused]] const void *pMem, + [[maybe_unused]] size_t size, + [[maybe_unused]] ur_usm_migration_flags_t flags, + uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList, + ur_event_handle_t *phEvent) { + // Currently not supported - do nothing + ol_queue_handle_t Queue; + OL_RETURN_ON_ERR(hQueue->nextQueue(Queue)); + OL_RETURN_ON_ERR(waitOnEvents(Queue, phEventWaitList, numEventsInWaitList)); + OL_RETURN_ON_ERR(makeEvent(UR_COMMAND_USM_PREFETCH, Queue, hQueue, phEvent)); + + return UR_RESULT_SUCCESS; +} diff --git a/unified-runtime/source/adapters/offload/ur_interface_loader.cpp b/unified-runtime/source/adapters/offload/ur_interface_loader.cpp index cc3afd36e0281..02f7fc5f3075a 100644 --- a/unified-runtime/source/adapters/offload/ur_interface_loader.cpp +++ b/unified-runtime/source/adapters/offload/ur_interface_loader.cpp @@ -187,10 +187,10 @@ UR_DLLEXPORT ur_result_t UR_APICALL urGetEnqueueProcAddrTable( pDdiTable->pfnMemUnmap = urEnqueueMemUnmap; pDdiTable->pfnUSMFill2D = urEnqueueUSMFill2D; pDdiTable->pfnUSMFill = urEnqueueUSMFill; - pDdiTable->pfnUSMAdvise = nullptr; + pDdiTable->pfnUSMAdvise = urEnqueueUSMAdvise; pDdiTable->pfnUSMMemcpy2D = urEnqueueUSMMemcpy2D; pDdiTable->pfnUSMMemcpy = urEnqueueUSMMemcpy; - pDdiTable->pfnUSMPrefetch = nullptr; + pDdiTable->pfnUSMPrefetch = urEnqueueUSMPrefetch; pDdiTable->pfnReadHostPipe = nullptr; pDdiTable->pfnWriteHostPipe = nullptr; return UR_RESULT_SUCCESS;