Gromacs  2018.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs
pme-gpu-types.h File Reference
#include "config.h"
#include <memory>
#include <vector>
#include "gromacs/ewald/pme.h"
#include "gromacs/gpu_utils/gpu_utils.h"
#include "gromacs/gpu_utils/hostallocator.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/utility/basedefinitions.h"
+ Include dependency graph for pme-gpu-types.h:
+ This graph shows which files directly or indirectly include this file:

Description

Defines the GPU-agnostic PME GPU data structures (the host-side PME GPU data, and the GPU function parameters).

Todo:
Due to Gerrit workflow and time constraints, some renaming/refactoring which does not impair the performance will be performed once most of the initial PME CUDA implementation is merged into the master branch (likely, after release 2017). This should include: – bringing the function names up to guidelines – PmeGpuSettings -> PmeGpuTasks – refining GPU notation application (#2053) – renaming coefficients to charges (?)
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...
 
struct  PmeGpuSettings
 The PME GPU settings structure, included in the main PME GPU structure by value. More...
 
struct  PmeGpuStaging
 The PME GPU intermediate buffers structure, included in the main PME GPU structure by value. Buffers are managed by the PME GPU module. More...
 
struct  PmeShared
 The PME GPU structure for all the data copied directly from the CPU PME structure. The copying is done when the CPU PME structure is already (re-)initialized (pme_gpu_reinit is called at the end of gmx_pme_init). All the variables here are named almost the same way as in gmx_pme_t. The types are different: pointers are replaced by vectors. TODO: use the shared data with the PME CPU. Included in the main PME GPU structure by value. More...
 
struct  PmeGpu
 The main PME GPU host structure, included in the PME CPU structure by pointer. More...
 

Typedefs

typedef PmeGpuCuda PmeGpuSpecific
 A typedef for including the GPU host data by pointer.
 
typedef PmeGpuCudaKernelParams PmeGpuKernelParams
 A typedef for including the GPU kernel arguments data by pointer.