diff --git a/sycl/plugins/cuda/pi_cuda.cpp b/sycl/plugins/cuda/pi_cuda.cpp index 6e5fdd5b891a4..505490edcbef5 100644 --- a/sycl/plugins/cuda/pi_cuda.cpp +++ b/sycl/plugins/cuda/pi_cuda.cpp @@ -3320,6 +3320,28 @@ pi_result cuda_piEnqueueEventsWait(pi_queue command_queue, } } +/// Enqueues a wait on the given CUstream for all specified events (See +/// \ref enqueueEventWait.) If the events list is empty, the enqueued wait will +/// wait on all previous events in the queue. +/// TODO: Implement this. +/// +/// \param[in] command_queue A valid PI queue. +/// \param[in] num_events_in_wait_list Number of events in event_wait_list. +/// \param[in] event_wait_list Events to wait on. +/// \param[out] event Event for when all events in event_wait_list have finished +/// or, if event_wait_list is empty, when all previous events in the queue have +/// finished. +/// +/// \return TBD +pi_result cuda_piEnqueueEventsWaitWithBarrier(pi_queue command_queue, + pi_uint32 num_events_in_wait_list, + const pi_event *event_wait_list, + pi_event *event) { + cl::sycl::detail::pi::die( + "cuda_piEnqueueEventsWaitWithBarrier not implemented"); + return {}; +} + /// Gets the native CUDA handle of a PI event object /// /// \param[in] event The PI event to get the native CUDA object of. @@ -4710,6 +4732,7 @@ pi_result piPluginInit(pi_plugin *PluginInit) { _PI_CL(piEnqueueKernelLaunch, cuda_piEnqueueKernelLaunch) _PI_CL(piEnqueueNativeKernel, cuda_piEnqueueNativeKernel) _PI_CL(piEnqueueEventsWait, cuda_piEnqueueEventsWait) + _PI_CL(piEnqueueEventsWaitWithBarrier, cuda_piEnqueueEventsWaitWithBarrier) _PI_CL(piEnqueueMemBufferRead, cuda_piEnqueueMemBufferRead) _PI_CL(piEnqueueMemBufferReadRect, cuda_piEnqueueMemBufferReadRect) _PI_CL(piEnqueueMemBufferWrite, cuda_piEnqueueMemBufferWrite)