Gromacs  2026.0-dev-20241204-d69d709
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Attributes
PmeGpuKernelParamsBase Struct Reference

#include <gromacs/ewald/pme_gpu_types.h>

+ Collaboration diagram for PmeGpuKernelParamsBase:

Description

A single structure encompassing all the PME data used in GPU kernels on device. To extend the list with platform-specific parameters, this can be inherited by the GPU framework-specific structure.

Public Attributes

struct PmeGpuConstParams constants
 Constant data that is set once.
 
struct PmeGpuGridParams grid
 Data dependent on the grid size/cutoff.
 
struct PmeGpuAtomParams atoms
 Data dependent on the DD and local atoms.
 
struct PmeGpuDynamicParams current
 Data that possibly changes for every new PME computation. This should be kept up-to-date by calling pme_gpu_prepare_computation(...) before launching spreading.
 
char usePipeline
 Whether pipelining with PP communications is active char rather than bool to avoid problem with OpenCL compiler.
 
int pipelineAtomStart
 Start atom for this stage of pipeline.
 
int pipelineAtomEnd
 End atom for this stage of pipeline.
 
int ppRanksInfoSize
 PpRanksSendFInfo struct total size.
 
DeviceBuffer< PpRanksSendFInfoppRanksInfo
 PpRanksSendFInfo struct containing each PP rank forces buffer offsets.
 
DeviceBuffer< unsigned int > lastProcessedBlockPerPpRank
 atomic counter used for tracking last processed block in pme gather kernel for each PP rank
 
DeviceBuffer< uint64_t > forcesReadyNvshmemFlags
 sync object used for NVSHMEM pme-pp force comm
 
uint64_t forcesReadyNvshmemFlagsCounter
 sync object counter used for nvshmem pme-pp force comm
 
int isVirialStep
 whether this is virial step
 
int useNvshmem
 whether to use NVSHMEM for GPU comm
 
DeviceTexture fractShiftsTableTexture
 Texture object for accessing grid.d_fractShiftsTable.
 
DeviceTexture gridlineIndicesTableTexture
 Texture object for accessing grid.d_gridlineIndicesTable.
 

The documentation for this struct was generated from the following file: