Gromacs  2026.0-dev-20250519-bfab4c8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
device_stream_sycl.cpp File Reference
#include "gmxpre.h"
#include <cstdio>
#include "gromacs/gpu_utils/device_context.h"
#include "gromacs/gpu_utils/device_stream.h"
#include "gromacs/hardware/device_information.h"
+ Include dependency graph for device_stream_sycl.cpp:

Description

Implements the DeviceStream for SYCL builds.

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

Functions

template<typename... PropertyT>
static sycl::property_list makeQueuePropertyList (PropertyT...properties)
 Return a SYCL property list for an in-order queue, plus other supplied property values.
 
template<typename... PropertyT>
static sycl::property_list makeQueuePropertyList (const bool enableProfiling, PropertyT...properties)
 Return a SYCL property list for a queue with the requested properties.
 
static sycl::property_list makeQueuePropertyList (const bool enableProfiling, const DeviceStreamPriority priority)
 Return a SYCL property list for a queue with the requested properties, where supported.
 
void issueClFlushInStream (const DeviceStream &)
 Helper function to flush the commands in OpenCL. No-op in other backends. More...
 

Function Documentation

void issueClFlushInStream ( const DeviceStream deviceStream)

Helper function to flush the commands in OpenCL. No-op in other backends.

Based on the section 5.13 of the OpenCL 1.2 spec (section 5.15 in OpenCL 3.0 spec), a flush is needed in the stream after marking an event in it in order to be able to sync with the event from another stream.