@@ -138,6 +138,33 @@ ur_result_t urCommandBufferAppendKernelLaunchExp(
138138 return exceptionToResult (std::current_exception ());
139139}
140140
141+ ur_result_t urCommandBufferAppendUSMMemcpyExp (
142+ ur_exp_command_buffer_handle_t hCommandBuffer, void *pDst, const void *pSrc,
143+ size_t size, uint32_t numSyncPointsInWaitList,
144+ const ur_exp_command_buffer_sync_point_t *pSyncPointWaitList,
145+ uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
146+ ur_exp_command_buffer_sync_point_t *pSyncPoint, ur_event_handle_t *phEvent,
147+ ur_exp_command_buffer_command_handle_t *phCommand) try {
148+
149+ // the same issue as in urCommandBufferAppendKernelLaunchExp
150+ std::ignore = numEventsInWaitList;
151+ std::ignore = phEventWaitList;
152+ std::ignore = phEvent;
153+ // sync mechanic can be ignored, because all lists are in-order
154+ std::ignore = numSyncPointsInWaitList;
155+ std::ignore = pSyncPointWaitList;
156+ std::ignore = pSyncPoint;
157+
158+ std::ignore = phCommand;
159+ // Responsibility of UMD to offload to copy engine
160+ UR_CALL (hCommandBuffer->commandListManager .appendUSMMemcpy (
161+ false , pDst, pSrc, size, 0 , nullptr , nullptr ));
162+
163+ return UR_RESULT_SUCCESS;
164+ } catch (...) {
165+ return exceptionToResult (std::current_exception ());
166+ }
167+
141168ur_result_t
142169urCommandBufferGetInfoExp (ur_exp_command_buffer_handle_t hCommandBuffer,
143170 ur_exp_command_buffer_info_t propName,
0 commit comments