Gromacs  2025.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
device_event_sycl.h File Reference
#include <algorithm>
#include <vector>
#include "gromacs/gpu_utils/device_stream.h"
#include "gromacs/gpu_utils/gmxsycl.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
+ Include dependency graph for device_event_sycl.h:

Description

Implements a GpuEventSynchronizer class for SYCL.

There is no way to do this efficiently within the SYCL standard. With DPC++, this implementation relies on SYCL_EXT_ONEAPI_ENQUEUE_BARRIER extension, which directly enqueues a CUDA-like barrier event. With AdaptiveCpp, it relies on ACPP_EXT_ENQUEUE_CUSTOM_OPERATION extension to submit an empty operation (that can have dependencies and returns an event).

Author
Erik Lindahl erik..nosp@m.lind.nosp@m.ahl@g.nosp@m.mail.nosp@m..com
Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com