Gromacs  2025-dev-20241003-bd59e46
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Typedefs
gputraits_sycl.h File Reference
#include <cstddef>
#include "gromacs/gpu_utils/gmxsycl.h"
#include "gromacs/math/vectypes.h"
+ Include dependency graph for gputraits_sycl.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares the SYCL type traits.

Author
Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com

Classes

struct  KernelLaunchConfig
 GPU kernels scheduling description. This is same in OpenCL/HIP. Provides reasonable defaults, one typically only needs to set the GPU stream and non-1 work sizes. More...
 

Macros

#define c_canEmbedBuffers   true
 Sets whether device code can use arrays that are embedded in structs. More...
 

Typedefs

using DeviceTexture = void *
 Type of device texture object. In SYCL, that would be sycl::image, but it's not used.
 
using CommandEvent = void *
 Single GPU call timing event, not used with SYCL.
 
using Float4 = sycl::float4
 Convenience alias.
 
using Float3 = gmx::RVec
 Convenience alias. Not using sycl::float3 due to alignment issues.
 
using Float2 = sycl::float2
 Convenience alias for sycl::float2.
 

Macro Definition Documentation

#define c_canEmbedBuffers   true

Sets whether device code can use arrays that are embedded in structs.

That is not technically true for SYCL, since DeviceBuffer holds not only the memory pointer, but also the context.

But our prepareGpuKernelArguments and launchGpuKernel functions deal with that, so we can pass embedded buffers to them, which is what this constant actually controls.