Gromacs  2022.2
 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/CUDA. 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: the device code needs dedicated sycl::buffer/accessor objects. But our prepareGpuKernelArguments and launchGpuKernel functions deal with that, so we can pass embedded buffers to them, which is what this constant actually controls.