Gromacs
2025.0-dev-20241011-013a99c
|
Implements non-bonded pair interaction functionality for NxM atom clusters.
This module provides methods to, very efficiently, compute non-bonded pair interactions on CPUs as well as accelerators. It also provides a method to construct the NxM atom-cluster pair-list required for computing these non-bonded iteractions.
Files | |
file | atomdata.h |
Functionality for per-atom data in the nbnxm module. | |
file | bench_coords.h |
This file defines a box with 1000 SPC/E water molecules for use in benchmarks. | |
file | bench_setup.cpp |
This file defines functions for setting up kernel benchmarks. | |
file | bench_setup.h |
This file declares functions for setting up kernel benchmarks. | |
file | bench_system.cpp |
This file defines functions for setting up a benchmark system. | |
file | bench_system.h |
This file declares functions for setting up a benchmark system. | |
file | boundingbox.h |
Declares and defines the BoundingBox class. | |
file | boundingbox_simd.h |
Declares sizes and boolean macros for bouding boxes handled with SIMD code. | |
file | boundingboxdistance.h |
Declares and defines functions for computing distances between bounding boxes. | |
file | clusterdistancekerneltype.h |
Declares the ClusterDistanceKernelType enum. | |
file | nbnxm_cuda.h |
Declares nbnxn cuda cache and texture helper functions. | |
file | nbnxm_cuda_types.h |
Data types used internally in the nbnxn_cuda module. | |
file | exclusionchecker.cpp |
This file defines functions to reduce and check exclusion counts. | |
file | exclusionchecker.h |
This file declares functionality for checking whether all exclusions are present in the pairlist. | |
file | freeenergydispatch.h |
Declares the free-energy kernel dispatch class. | |
file | gpu_common.h |
Common functions for the different NBNXN GPU implementations. | |
file | gpu_common_utils.h |
Implements common util routines for different NBNXN GPU implementations. | |
file | gpu_data_mgmt.h |
Declare interface for GPU data transfer for NBNXN module. | |
file | gpu_jit_support.h |
Declares functions that support JIT compilation (e.g. for OpenCL) | |
file | gpu_types_common.h |
Implements common internal types for different NBNXN GPU implementations. | |
file | grid.cpp |
Implements the Grid class. | |
file | grid.h |
Declares the Grid class. | |
file | gridset.cpp |
Implements the GridSet class. | |
file | gridset.h |
Declares the GridSet class. | |
file | gridsetdata.h |
Declares the GridSetData struct which holds grid data that is shared over all grids. | |
file | nbnxm_hip.cpp |
Data management and kernel launch functions for nbnxm hip. | |
file | nbnxm_hip_kernel.cpp |
NBNXM HIP kernels. | |
file | nbnxm_hip_kernel.h |
Declares nbnxn hip helper functions. | |
file | nbnxm_hip_kernel_body.h |
NBNXM HIP kernels. | |
file | nbnxm_hip_kernel_body_f_noprune.cpp |
Explicitly instantiate NBNXM HIP kernels, F-only, no pruning. | |
file | nbnxm_hip_kernel_body_f_prune.cpp |
Explicitly instantiate NBNXM HIP kernels, F-only, with pruning. | |
file | nbnxm_hip_kernel_body_fv_noprune.cpp |
Explicitly instantiate NBNXM HIP kernels, F+V, no pruning. | |
file | nbnxm_hip_kernel_body_fv_prune.cpp |
Explicitly instantiate NBNXM HIP kernels, F+V, with pruning. | |
file | nbnxm_hip_kernel_pruneonly.cpp |
NBNXM HIP prune only kernels. | |
file | nbnxm_hip_kernel_pruneonly.h |
Declares nbnxn hip helper functions. | |
file | nbnxm_hip_kernel_sci_sort.cpp |
Explicitly instantiate NBNXM HIP kernel for sci sorting. | |
file | nbnxm_hip_kernel_sci_sort.h |
HIP bucket sci sort kernel. | |
file | nbnxm_hip_kernel_utils.h |
Utility constant and function declaration for the HIP non-bonded kernels. This header should be included once at the top level, just before the kernels are included (has to be preceded by nbnxn_hip_types.h). | |
file | nbnxm_hip_types.h |
Data types used internally in the nbnxn_hip module. | |
file | kernel_common.cpp |
Implements utility functions used by all nbnxm CPU kernels. | |
file | kernel_common.h |
Declares the nbnxm pair interaction kernel function types and kind counts, also declares utility functions used in nbnxm_kernel.cpp. | |
file | kernel_gpu_ref.h |
Declares GPU reference kernel. | |
file | kernel_ref_1x1.h |
Declares CPU reference kernels. | |
file | kernel_ref_4x4.h |
Declares CPU reference kernels. | |
file | kernel_ref_prune.h |
Declares the C reference pruning only kernel. | |
file | nbnxm.cpp |
Implements the Nbnxm class. | |
file | nbnxm.h |
This file contains the public interface of the nbnxm module that implements the NxM atom cluster non-bonded algorithm to efficiently compute pair forces. | |
file | nbnxm_enums.h |
Nbnxm internal enumerations. | |
file | nbnxm_geometry.h |
Declares the geometry-related functionality. | |
file | nbnxm_gpu.h |
Declare interface for GPU execution for NBNXN module. | |
file | nbnxm_gpu_buffer_ops.cpp |
Common code for GPU buffer operations, namely the coordinate layout conversion. | |
file | nbnxm_gpu_buffer_ops_internal.h |
Wrapper for the backend-specific coordinate layout conversion functionality. | |
file | nbnxm_gpu_data_mgmt.cpp |
Define common implementation of nbnxm_gpu_data_mgmt.h. | |
file | nbnxm_gpu_data_mgmt.h |
Declare common functions for NBNXM GPU data management. | |
file | nbnxm_setup.cpp |
Common functions for the different NBNXN GPU implementations. | |
file | nbnxm_simd.h |
Defines constants used to know which nbNxM kernel flavours (4xM or 2xMM) can be supported by the SIMD layer in use. | |
file | nbnxm_gpu_buffer_ops_internal_ocl.cpp |
Define OpenCL implementation for transforming position coordinates from rvec to nbnxm layout. | |
file | nbnxm_ocl.cpp |
Define OpenCL implementation of nbnxm_gpu.h. | |
file | nbnxm_ocl_consts.h |
Declares constants for OpenCL code. | |
file | nbnxm_ocl_data_mgmt.cpp |
Define OpenCL implementation of nbnxm_gpu_data_mgmt.h. | |
file | nbnxm_ocl_jit_support.cpp |
Defines functions that support JIT compilation (e.g. for OpenCL) | |
file | nbnxm_ocl_types.h |
Data types used internally in the nbnxm_ocl module. | |
file | pairlist_imask.h |
Declares and defines pairlist interaction mask generation functions. | |
file | pairlist_simd_kernel.cpp |
Defines the SIMD cluster pair distance kernel and helpers. | |
file | pairlist_simd_kernel.h |
Declares the SIMD cluster pair distance kernel and helpers. | |
file | pairlist_tuning.cpp |
Implements functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels. | |
file | pairlist_tuning.h |
Declares functions for tuning adjustable parameters for the nbnxn non-bonded search and interaction kernels. | |
file | pairlistparams.cpp |
Implements the PairlistParams constructor. | |
file | pairlistparams.h |
Declares the PairlistType enum and PairlistParams class. | |
file | pairlistset.cpp |
Implements functionality for PairlistSet. | |
file | pairlistset.h |
Declares the PairlistSet class. | |
file | pairlistsets.h |
Declares the PairlistSets class. | |
file | pairlistwork.cpp |
Implements constructors for NbnxnPairlistGpuWork. | |
file | pairlistwork.h |
Declares working data structures for the CPU and GPU pairlists. | |
file | pairsearch.cpp |
Implements the PairSearch class. | |
file | pairsearch.h |
Declares the PairSearch class and helper structs. | |
file | simd_kernel.h |
Declares and defines the NBNxM SIMD pair interaction kernel function. | |
file | simd_load_store_functions.h |
Defines functions to load data to and store data from SIMD registers for the SIMD 4xM and 2xMM kernels. | |
file | simd_prune_kernel.h |
Declares the NBNxM SIMD pruning only kernel. | |
file | nbnxm_gpu_buffer_ops_internal_sycl.cpp |
SYCL implementation of coordinate layout conversion kernel and its wrapper. | |
file | nbnxm_sycl.cpp |
Data management and kernel launch functions for nbnxm sycl. | |
file | nbnxm_sycl_data_mgmt.cpp |
Stubs of functions that must be defined by nbnxm sycl implementation. | |
file | nbnxm_sycl_kernel.cpp |
NBNXM SYCL kernels. | |
file | nbnxm_sycl_kernel.h |
Declares nbnxn sycl helper functions. | |
file | nbnxm_sycl_kernel_body.h |
NBNXM SYCL kernels. | |
file | nbnxm_sycl_kernel_body_f_noprune.cpp |
Explicitly instantiate NBNXM SYCL kernels, F-only, no pruning. | |
file | nbnxm_sycl_kernel_body_f_prune.cpp |
Explicitly instantiate NBNXM SYCL kernels, F-only, with pruning. | |
file | nbnxm_sycl_kernel_body_fv_noprune.cpp |
Explicitly instantiate NBNXM SYCL kernels, F+V, no pruning. | |
file | nbnxm_sycl_kernel_body_fv_prune.cpp |
Explicitly instantiate NBNXM SYCL kernels, F+V, with pruning. | |
file | nbnxm_sycl_kernel_pruneonly.cpp |
NBNXM SYCL kernels. | |
file | nbnxm_sycl_kernel_pruneonly.h |
Declares nbnxn sycl helper functions. | |
file | nbnxm_sycl_kernel_utils.h |
Helper functions and constants for SYCL NBNXM kernels. | |
file | nbnxm_sycl_types.h |
Data types used internally in the nbnxm_sycl module. | |
file | exclusions.cpp |
Tests for exclusions in the Nbnxm CPU pairlists. | |
file | kernel_test.cpp |
Tests for NBNxM pair kernel forces and energies. | |
file | kernelsetup.cpp |
Tests for Setup of kernels. | |
file | pairlist.cpp |
Tests for gpu pairlist datastructure memory handling. | |
file | simd_energy_accumulator.cpp |
Tests for the EnergyAccumulator class. | |
file | spc81_coords.h |
This file defines a box with 81 SPC/E water molecules, 243 atoms, for use in tests. | |
file | testsystem.cpp |
Implements the TestSystem class. | |
file | testsystem.h |
Declares the TestSystem class used for testing NBNxM functionality. | |