Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros
pme_gpu_types.h File Reference
#include "gromacs/gpu_utils/devicebuffer.h"
+ Include dependency graph for pme_gpu_types.h:
+ This graph shows which files directly or indirectly include this file:

Description

Defines the PME GPU data structures (the GPU function parameters used both on host and device sides).

Author
Aleksei Iupinov a.yup.nosp@m.inov.nosp@m.@gmai.nosp@m.l.co.nosp@m.m

Classes

struct  PmeGpuConstParams
 A GPU data structure for storing the constant PME data. This only has to be initialized once. More...
 
struct  PmeGpuGridParams
 A GPU data structure for storing the PME data related to the grid sizes and cut-off. This only has to be updated at every DD step. More...
 
struct  PmeGpuAtomParams
 A GPU data structure for storing the PME data of the atoms, local to this process' domain partition. This only has to be updated every DD step. More...
 
struct  PmeGpuDynamicParams
 A GPU data structure for storing the PME data which might change for each new PME computation. More...
 
struct  PmeGpuKernelParamsBase
 A single structure encompassing almost all the PME data used in GPU kernels on device. This is inherited by the GPU framework-specific structure (PmeGpuCudaKernelParams in pme.cuh). This way, most code preparing the kernel parameters can be GPU-agnostic by casting the kernel parameter data pointer to PmeGpuKernelParamsBase. More...
 

Macros

#define HIDE_FROM_OPENCL_COMPILER(x)   x
 A workaround to hide DeviceBuffer template from OpenCL kernel compilation. More...
 

Macro Definition Documentation

#define HIDE_FROM_OPENCL_COMPILER (   x)    x

A workaround to hide DeviceBuffer template from OpenCL kernel compilation.

  • to turn it into a dummy of the same size as host implementation of device buffer. As we only care about 64-bit, 8 bytes is fine. TODO: what we should be doing is providing separate device-side views of the same structures - then there would be no need for macro.